diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | channels.c | 18 | ||||
-rw-r--r-- | channels.h | 8 | ||||
-rw-r--r-- | ssh.c | 6 |
4 files changed, 18 insertions, 21 deletions
@@ -64,6 +64,11 @@ | |||
64 | - markus@cvs.openbsd.org 2002/02/03 17:55:55 | 64 | - markus@cvs.openbsd.org 2002/02/03 17:55:55 |
65 | [channels.c channels.h] | 65 | [channels.c channels.h] |
66 | remove unused channel_input_channel_request | 66 | remove unused channel_input_channel_request |
67 | - markus@cvs.openbsd.org 2002/02/03 17:58:21 | ||
68 | [channels.c channels.h ssh.c] | ||
69 | generic callbacks are not really used, remove and | ||
70 | add a callback for msg of type SSH2_MSG_CHANNEL_OPEN_CONFIRMATION | ||
71 | ok djm@ | ||
67 | 72 | ||
68 | 20020130 | 73 | 20020130 |
69 | - (djm) Delay PRNG seeding until we need it in ssh-keygen, from markus@ | 74 | - (djm) Delay PRNG seeding until we need it in ssh-keygen, from markus@ |
@@ -7466,4 +7471,4 @@ | |||
7466 | - Wrote replacements for strlcpy and mkdtemp | 7471 | - Wrote replacements for strlcpy and mkdtemp |
7467 | - Released 1.0pre1 | 7472 | - Released 1.0pre1 |
7468 | 7473 | ||
7469 | $Id: ChangeLog,v 1.1816 2002/02/05 01:22:08 djm Exp $ | 7474 | $Id: ChangeLog,v 1.1817 2002/02/05 01:23:08 djm Exp $ |
diff --git a/channels.c b/channels.c index 568779dff..e5f910ed7 100644 --- a/channels.c +++ b/channels.c | |||
@@ -39,7 +39,7 @@ | |||
39 | */ | 39 | */ |
40 | 40 | ||
41 | #include "includes.h" | 41 | #include "includes.h" |
42 | RCSID("$OpenBSD: channels.c,v 1.164 2002/02/03 17:55:55 markus Exp $"); | 42 | RCSID("$OpenBSD: channels.c,v 1.165 2002/02/03 17:58:21 markus Exp $"); |
43 | 43 | ||
44 | #include "ssh.h" | 44 | #include "ssh.h" |
45 | #include "ssh1.h" | 45 | #include "ssh1.h" |
@@ -260,12 +260,10 @@ channel_new(char *ctype, int type, int rfd, int wfd, int efd, | |||
260 | c->remote_name = remote_name; | 260 | c->remote_name = remote_name; |
261 | c->remote_window = 0; | 261 | c->remote_window = 0; |
262 | c->remote_maxpacket = 0; | 262 | c->remote_maxpacket = 0; |
263 | c->cb_fn = NULL; | ||
264 | c->cb_arg = NULL; | ||
265 | c->cb_event = 0; | ||
266 | c->force_drain = 0; | 263 | c->force_drain = 0; |
267 | c->single_connection = 0; | 264 | c->single_connection = 0; |
268 | c->detach_user = NULL; | 265 | c->detach_user = NULL; |
266 | c->confirm = NULL; | ||
269 | c->input_filter = NULL; | 267 | c->input_filter = NULL; |
270 | debug("channel %d: new [%s]", found, remote_name); | 268 | debug("channel %d: new [%s]", found, remote_name); |
271 | return c; | 269 | return c; |
@@ -610,16 +608,14 @@ channel_request_start(int id, char *service, int wantconfirm) | |||
610 | packet_put_char(wantconfirm); | 608 | packet_put_char(wantconfirm); |
611 | } | 609 | } |
612 | void | 610 | void |
613 | channel_register_callback(int id, int mtype, channel_callback_fn *fn, void *arg) | 611 | channel_register_confirm(int id, channel_callback_fn *fn) |
614 | { | 612 | { |
615 | Channel *c = channel_lookup(id); | 613 | Channel *c = channel_lookup(id); |
616 | if (c == NULL) { | 614 | if (c == NULL) { |
617 | log("channel_register_callback: %d: bad id", id); | 615 | log("channel_register_comfirm: %d: bad id", id); |
618 | return; | 616 | return; |
619 | } | 617 | } |
620 | c->cb_event = mtype; | 618 | c->confirm = fn; |
621 | c->cb_fn = fn; | ||
622 | c->cb_arg = arg; | ||
623 | } | 619 | } |
624 | void | 620 | void |
625 | channel_register_cleanup(int id, channel_callback_fn *fn) | 621 | channel_register_cleanup(int id, channel_callback_fn *fn) |
@@ -1882,9 +1878,9 @@ channel_input_open_confirmation(int type, u_int32_t seq, void *ctxt) | |||
1882 | if (compat20) { | 1878 | if (compat20) { |
1883 | c->remote_window = packet_get_int(); | 1879 | c->remote_window = packet_get_int(); |
1884 | c->remote_maxpacket = packet_get_int(); | 1880 | c->remote_maxpacket = packet_get_int(); |
1885 | if (c->cb_fn != NULL && c->cb_event == type) { | 1881 | if (c->confirm) { |
1886 | debug2("callback start"); | 1882 | debug2("callback start"); |
1887 | c->cb_fn(c->self, c->cb_arg); | 1883 | c->confirm(c->self, NULL); |
1888 | debug2("callback done"); | 1884 | debug2("callback done"); |
1889 | } | 1885 | } |
1890 | debug("channel %d: open confirm rwindow %d rmax %d", c->self, | 1886 | debug("channel %d: open confirm rwindow %d rmax %d", c->self, |
diff --git a/channels.h b/channels.h index fa43b8ea6..781c49d47 100644 --- a/channels.h +++ b/channels.h | |||
@@ -32,7 +32,7 @@ | |||
32 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 32 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
33 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 33 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
34 | */ | 34 | */ |
35 | /* RCSID("$OpenBSD: channels.h,v 1.61 2002/02/03 17:55:55 markus Exp $"); */ | 35 | /* RCSID("$OpenBSD: channels.h,v 1.62 2002/02/03 17:58:21 markus Exp $"); */ |
36 | 36 | ||
37 | #ifndef CHANNEL_H | 37 | #ifndef CHANNEL_H |
38 | #define CHANNEL_H | 38 | #define CHANNEL_H |
@@ -101,9 +101,7 @@ struct Channel { | |||
101 | char *ctype; /* type */ | 101 | char *ctype; /* type */ |
102 | 102 | ||
103 | /* callback */ | 103 | /* callback */ |
104 | channel_callback_fn *cb_fn; | 104 | channel_callback_fn *confirm; |
105 | void *cb_arg; | ||
106 | int cb_event; | ||
107 | channel_callback_fn *detach_user; | 105 | channel_callback_fn *detach_user; |
108 | 106 | ||
109 | /* filter */ | 107 | /* filter */ |
@@ -149,8 +147,8 @@ void channel_stop_listening(void); | |||
149 | void channel_send_open(int); | 147 | void channel_send_open(int); |
150 | void channel_request(int, char *, int); | 148 | void channel_request(int, char *, int); |
151 | void channel_request_start(int, char *, int); | 149 | void channel_request_start(int, char *, int); |
152 | void channel_register_callback(int, int mtype, channel_callback_fn *, void *); | ||
153 | void channel_register_cleanup(int, channel_callback_fn *); | 150 | void channel_register_cleanup(int, channel_callback_fn *); |
151 | void channel_register_confirm(int, channel_callback_fn *); | ||
154 | void channel_register_filter(int, channel_filter_fn *); | 152 | void channel_register_filter(int, channel_filter_fn *); |
155 | void channel_cancel_cleanup(int); | 153 | void channel_cancel_cleanup(int); |
156 | int channel_close_fd(int *); | 154 | int channel_close_fd(int *); |
@@ -39,7 +39,7 @@ | |||
39 | */ | 39 | */ |
40 | 40 | ||
41 | #include "includes.h" | 41 | #include "includes.h" |
42 | RCSID("$OpenBSD: ssh.c,v 1.159 2002/01/27 18:08:17 stevesk Exp $"); | 42 | RCSID("$OpenBSD: ssh.c,v 1.160 2002/02/03 17:58:21 markus Exp $"); |
43 | 43 | ||
44 | #include <openssl/evp.h> | 44 | #include <openssl/evp.h> |
45 | #include <openssl/err.h> | 45 | #include <openssl/err.h> |
@@ -1161,9 +1161,7 @@ ssh_session2_open(void) | |||
1161 | 1161 | ||
1162 | channel_send_open(c->self); | 1162 | channel_send_open(c->self); |
1163 | if (!no_shell_flag) | 1163 | if (!no_shell_flag) |
1164 | channel_register_callback(c->self, | 1164 | channel_register_confirm(c->self, ssh_session2_setup); |
1165 | SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, | ||
1166 | ssh_session2_setup, (void *)0); | ||
1167 | 1165 | ||
1168 | return c->self; | 1166 | return c->self; |
1169 | } | 1167 | } |