ead: allow a longer timeout in the client for the prime number calculation (useful...
[openwrt/svn-archive/archive.git] / package / ead / src / ead-client.c
index 2592c8f15ef278deb65b5917bd874d1481618910..54d8b1343f63107bc661e6d62426f9f356962185 100644 (file)
@@ -62,6 +62,7 @@ static struct t_num *A, B;
 static struct t_preconf *tcp;
 static int auth_type = EAD_AUTH_DEFAULT;
 static int timeout = EAD_TIMEOUT;
+static uint16_t sid = 0;
 
 static void
 set_nonblock(int enable)
@@ -157,6 +158,7 @@ handle_pong(void)
        auth_type = ntohs(pong->auth_type);
        if (nid == 0xffff)
                printf("%04x: %s\n", ntohs(msg->nid), pong->name);
+       sid = msg->sid;
        return true;
 }
 
@@ -320,7 +322,7 @@ int main(int argc, char **argv)
        int ch;
 
        msg->magic = htonl(EAD_MAGIC);
-       msg->tid = 0;
+       msg->sid = 0;
 
        memset(&local, 0, sizeof(local));
        memset(&remote, 0, sizeof(remote));
@@ -405,12 +407,11 @@ int main(int argc, char **argv)
                fprintf(stderr, "Device did not accept user name\n");
                return 1;
        }
+       timeout = EAD_TIMEOUT_LONG;
        if (!get_prime()) {
                fprintf(stderr, "Failed to get user password info\n");
                return 1;
        }
-
-       timeout = EAD_TIMEOUT_LONG;
        if (!send_a()) {
                fprintf(stderr, "Failed to send local authentication data\n");
                return 1;