]> andersk Git - openssh.git/blobdiff - clientloop.c
- (bal) Missed msg.[ch] in merge. Required for ssh-keysign.
[openssh.git] / clientloop.c
index 7259959ee73d8ffa50d874ba606ed2bc7215e8d0..15945a80d0b48019aae8af445a332543c7b16cf9 100644 (file)
@@ -59,7 +59,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: clientloop.c,v 1.97 2002/03/21 15:17:26 jakob Exp $");
+RCSID("$OpenBSD: clientloop.c,v 1.100 2002/04/22 21:04:52 markus Exp $");
 
 #include "ssh.h"
 #include "ssh1.h"
@@ -472,40 +472,33 @@ client_process_net_input(fd_set * readset)
 }
 
 static void
-process_cmdline(Buffer *bin, Buffer *bout, Buffer *berr)
+process_cmdline(void)
 {
-       char string[1024];
        void (*handler)(int);
        char *s, *cmd;
        u_short fwd_port, fwd_host_port;
        char buf[1024], sfwd_port[6], sfwd_host_port[6];
        int local = 0;
-       int n;
 
        leave_raw_mode();
        handler = signal(SIGINT, SIG_IGN);
-       s = read_passphrase("\r\nssh> ", RP_ECHO);
+       cmd = s = read_passphrase("\r\nssh> ", RP_ECHO);
        if (s == NULL)
                goto out;
-       cmd = s;
-
        while (*s && isspace(*s))
                s++;
-
        if (*s == 0)
                goto out;
-
        if (strlen(s) < 2 || s[0] != '-' || !(s[1] == 'L' || s[1] == 'R')) {
-               log("Invalid command");
+               log("Invalid command.");
                goto out;
        }
        if (s[1] == 'L')
                local = 1;
        if (!local && !compat20) {
-               log("Not supported for SSH protocol version 1");
+               log("Not supported for SSH protocol version 1.");
                goto out;
        }
-
        s += 2;
        while (*s && isspace(*s))
                s++;
@@ -514,25 +507,24 @@ process_cmdline(Buffer *bin, Buffer *bout, Buffer *berr)
            sfwd_port, buf, sfwd_host_port) != 3 &&
            sscanf(s, "%5[0-9]/%255[^/]/%5[0-9]",
            sfwd_port, buf, sfwd_host_port) != 3) {
-               log("Bad forwarding specification");
+               log("Bad forwarding specification.");
                goto out;
        }
        if ((fwd_port = a2port(sfwd_port)) == 0 ||
            (fwd_host_port = a2port(sfwd_host_port)) == 0) {
-               log("Bad forwarding port(s)");
+               log("Bad forwarding port(s).");
                goto out;
        }
        if (local) {
-               n = channel_setup_local_fwd_listener(fwd_port, buf,
-                   fwd_host_port, options.gateway_ports);
-               if (n <= 0) {
-                       log("Port forwarding failed");
+               if (channel_setup_local_fwd_listener(fwd_port, buf,
+                   fwd_host_port, options.gateway_ports) < 0) {
+                       log("Port forwarding failed.");
                        goto out;
                }
        } else
                channel_request_remote_forwarding(fwd_port, buf,
                    fwd_host_port);
-       log("Forwarding port");
+       log("Forwarding port.");
 out:
        signal(SIGINT, handler);
        enter_raw_mode();
@@ -665,7 +657,7 @@ Supported escape sequences:\r\n\
                                continue;
 
                        case 'C':
-                               process_cmdline(bin, bout, berr);
+                               process_cmdline();
                                continue;
 
                        default:
@@ -1322,6 +1314,7 @@ static void
 client_init_dispatch_20(void)
 {
        dispatch_init(&dispatch_protocol_error);
+
        dispatch_set(SSH2_MSG_CHANNEL_CLOSE, &channel_input_oclose);
        dispatch_set(SSH2_MSG_CHANNEL_DATA, &channel_input_data);
        dispatch_set(SSH2_MSG_CHANNEL_EOF, &channel_input_ieof);
@@ -1335,6 +1328,10 @@ client_init_dispatch_20(void)
 
        /* rekeying */
        dispatch_set(SSH2_MSG_KEXINIT, &kex_input_kexinit);
+
+       /* global request reply messages */
+       dispatch_set(SSH2_MSG_REQUEST_FAILURE, &client_global_request_reply);
+       dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &client_global_request_reply);
 }
 static void
 client_init_dispatch_13(void)
This page took 0.149016 seconds and 4 git commands to generate.