=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/session.c,v retrieving revision 1.180.2.2 retrieving revision 1.181 diff -u -r1.180.2.2 -r1.181 --- src/usr.bin/ssh/session.c 2005/09/02 03:45:00 1.180.2.2 +++ src/usr.bin/ssh/session.c 2004/12/23 17:35:48 1.181 @@ -33,7 +33,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: session.c,v 1.180.2.2 2005/09/02 03:45:00 brad Exp $"); +RCSID("$OpenBSD: session.c,v 1.181 2004/12/23 17:35:48 markus Exp $"); #include "ssh.h" #include "ssh1.h" @@ -56,7 +56,6 @@ #include "serverloop.h" #include "canohost.h" #include "session.h" -#include "kex.h" #include "monitor_wrap.h" #ifdef KRB5 @@ -194,11 +193,11 @@ static void display_loginmsg(void) { - if (buffer_len(&loginmsg) > 0) { - buffer_append(&loginmsg, "\0", 1); - printf("%s", (char *)buffer_ptr(&loginmsg)); - buffer_clear(&loginmsg); - } + if (buffer_len(&loginmsg) > 0) { + buffer_append(&loginmsg, "\0", 1); + printf("%s", (char *)buffer_ptr(&loginmsg)); + buffer_clear(&loginmsg); + } } void @@ -270,7 +269,7 @@ compression_level); break; } - if (options.compression == COMP_NONE) { + if (!options.compression) { debug2("compression disabled"); break; } @@ -1174,7 +1173,7 @@ */ if (options.kerberos_get_afs_token && k_hasafs() && - (s->authctxt->krb5_ctx != NULL)) { + (s->authctxt->krb5_ctx != NULL)) { char cell[64]; debug("Getting AFS token"); @@ -1278,7 +1277,6 @@ s->ttyfd = -1; s->used = 1; s->self = i; - s->x11_chanids = NULL; debug("session_new: session %d", i); return s; } @@ -1352,29 +1350,6 @@ } static Session * -session_by_x11_channel(int id) -{ - int i, j; - - for (i = 0; i < MAX_SESSIONS; i++) { - Session *s = &sessions[i]; - - if (s->x11_chanids == NULL || !s->used) - continue; - for (j = 0; s->x11_chanids[j] != -1; j++) { - if (s->x11_chanids[j] == id) { - debug("session_by_x11_channel: session %d " - "channel %d", s->self, id); - return s; - } - } - } - debug("session_by_x11_channel: unknown channel %d", id); - session_dump(); - return NULL; -} - -static Session * session_by_pid(pid_t pid) { int i; @@ -1469,7 +1444,7 @@ u_int len; int success = 0; char *cmd, *subsys = packet_get_string(&len); - u_int i; + int i; packet_check_eom(); logit("subsystem request for %.100s", subsys); @@ -1503,11 +1478,6 @@ { int success; - if (s->auth_proto != NULL || s->auth_data != NULL) { - error("session_x11_req: session %d: " - "x11 fowarding already active", s->self); - return 0; - } s->single_connection = packet_get_char(); s->auth_proto = packet_get_string(NULL); s->auth_data = packet_get_string(NULL); @@ -1733,66 +1703,9 @@ } static void -session_close_x11(int id) -{ - Channel *c; - - if ((c = channel_lookup(id)) == NULL) { - debug("session_close_x11: x11 channel %d missing", id); - } else { - /* Detach X11 listener */ - debug("session_close_x11: detach x11 channel %d", id); - channel_cancel_cleanup(id); - if (c->ostate != CHAN_OUTPUT_CLOSED) - chan_mark_dead(c); - } -} - -static void -session_close_single_x11(int id, void *arg) -{ - Session *s; - u_int i; - - debug3("session_close_single_x11: channel %d", id); - channel_cancel_cleanup(id); - if ((s = session_by_x11_channel(id)) == NULL) - fatal("session_close_single_x11: no x11 channel %d", id); - for (i = 0; s->x11_chanids[i] != -1; i++) { - debug("session_close_single_x11: session %d: " - "closing channel %d", s->self, s->x11_chanids[i]); - /* - * The channel "id" is already closing, but make sure we - * close all of its siblings. - */ - if (s->x11_chanids[i] != id) - session_close_x11(s->x11_chanids[i]); - } - xfree(s->x11_chanids); - s->x11_chanids = NULL; - if (s->display) { - xfree(s->display); - s->display = NULL; - } - if (s->auth_proto) { - xfree(s->auth_proto); - s->auth_proto = NULL; - } - if (s->auth_data) { - xfree(s->auth_data); - s->auth_data = NULL; - } - if (s->auth_display) { - xfree(s->auth_display); - s->auth_display = NULL; - } -} - -static void session_exit_message(Session *s, int status) { Channel *c; - u_int i; if ((c = channel_lookup(s->chanid)) == NULL) fatal("session_exit_message: session %d: no channel %d", @@ -1828,20 +1741,12 @@ if (c->ostate != CHAN_OUTPUT_CLOSED) chan_write_failed(c); s->chanid = -1; - - /* Close any X11 listeners associated with this session */ - if (s->x11_chanids != NULL) { - for (i = 0; s->x11_chanids[i] != -1; i++) { - session_close_x11(s->x11_chanids[i]); - s->x11_chanids[i] = -1; - } - } } void session_close(Session *s) { - u_int i; + int i; debug("session_close: session %d pid %ld", s->self, (long)s->pid); if (s->ttyfd != -1) @@ -1850,8 +1755,6 @@ xfree(s->term); if (s->display) xfree(s->display); - if (s->x11_chanids) - xfree(s->x11_chanids); if (s->auth_display) xfree(s->auth_display); if (s->auth_data) @@ -1890,7 +1793,6 @@ session_close_by_channel(int id, void *arg) { Session *s = session_by_channel(id); - if (s == NULL) { debug("session_close_by_channel: no session for id %d", id); return; @@ -1962,7 +1864,6 @@ struct stat st; char display[512], auth_display[512]; char hostname[MAXHOSTNAMELEN]; - u_int i; if (no_x11_forwarding_flag) { packet_send_debug("X11 forwarding disabled in user configuration file."); @@ -1988,13 +1889,9 @@ } if (x11_create_display_inet(options.x11_display_offset, options.x11_use_localhost, s->single_connection, - &s->display_number, &s->x11_chanids) == -1) { + &s->display_number) == -1) { debug("x11_create_display_inet failed."); return 0; - } - for (i = 0; s->x11_chanids[i] != -1; i++) { - channel_register_cleanup(s->x11_chanids[i], - session_close_single_x11); } /* Set up a suitable value for the DISPLAY variable. */