]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fix birdcl async message handling
authorTomas Hlavacek <tmshlvck@gmail.com>
Sat, 6 Apr 2013 20:07:32 +0000 (22:07 +0200)
committerTomas Hlavacek <tmshlvck@gmail.com>
Sat, 6 Apr 2013 20:07:32 +0000 (22:07 +0200)
Fix handling of async messafe in the bird light client. The async message
may occure at the any moment so we need the client to liste for the
message from server when it waits for user input.

client/birdcl/client.c

index 21b632706319c7c31c4eb4f73b32f1dcf846d055..1e920ce8b611dd0e42e989f10804550a11f84087 100644 (file)
@@ -36,7 +36,7 @@ static int once;
 extern char *server_path;
 extern int server_fd;
 
-extern int nstate;
+extern int cstate;
 extern int num_lines, skip_input, interactive;
 
 static int term_lns=25;
@@ -123,7 +123,7 @@ run_init_cmd(void)
       return;
     }
 
-  if (!init_cmd && once && (nstate == STATE_CMD_USER))
+  if (!init_cmd && once && (cstate == STATE_PROMPT))
     {
       /* Initial command is finished and we want to exit */
       cleanup();
@@ -332,7 +332,7 @@ server_got_reply(char *x)
 
       if (x[4] == ' ')
       {
-        nstate = STATE_CMD_USER;
+        cstate = STATE_PROMPT;
         skip_input = 0;
         return;
       }
@@ -362,10 +362,10 @@ select_loop(void)
     {
       FD_ZERO(&select_fds);
 
-      if (nstate != STATE_CMD_USER)
+      if (cstate != STATE_CMD_USER)
         FD_SET(server_fd, &select_fds);
 
-      if (nstate != STATE_CMD_SERVER)
+      if (cstate != STATE_CMD_SERVER)
         {
           FD_SET(0, &select_fds);
           if (interactive)