diff options
author | djm@openbsd.org <djm@openbsd.org> | 2017-09-12 06:32:07 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2017-09-12 17:37:02 +1000 |
commit | dbee4119b502e3f8b6cd3282c69c537fd01d8e16 (patch) | |
tree | b8a3263a79e0920e8d08f188654f1ccb7c254406 /packet.h | |
parent | abd59663df37a42152e37980113ccaa405b9a282 (diff) |
upstream commit
refactor channels.c
Move static state to a "struct ssh_channels" that is allocated at
runtime and tracked as a member of struct ssh.
Explicitly pass "struct ssh" to all channels functions.
Replace use of the legacy packet APIs in channels.c.
Rework sshd_config PermitOpen handling: previously the configuration
parser would call directly into the channels layer. After the refactor
this is not possible, as the channels structures are allocated at
connection time and aren't available when the configuration is parsed.
The server config parser now tracks PermitOpen itself and explicitly
configures the channels code later.
ok markus@
Upstream-ID: 11828f161656b965cc306576422613614bea2d8f
Diffstat (limited to 'packet.h')
-rw-r--r-- | packet.h | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.h,v 1.81 2017/05/31 08:09:45 markus Exp $ */ | 1 | /* $OpenBSD: packet.h,v 1.82 2017/09/12 06:32:07 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -80,6 +80,9 @@ struct ssh { | |||
80 | /* Client/Server authentication context */ | 80 | /* Client/Server authentication context */ |
81 | void *authctxt; | 81 | void *authctxt; |
82 | 82 | ||
83 | /* Channels context */ | ||
84 | struct ssh_channels *chanctxt; | ||
85 | |||
83 | /* APP data */ | 86 | /* APP data */ |
84 | void *app_data; | 87 | void *app_data; |
85 | }; | 88 | }; |
@@ -143,7 +146,6 @@ int ssh_packet_not_very_much_data_to_write(struct ssh *); | |||
143 | 146 | ||
144 | int ssh_packet_connection_is_on_socket(struct ssh *); | 147 | int ssh_packet_connection_is_on_socket(struct ssh *); |
145 | int ssh_packet_remaining(struct ssh *); | 148 | int ssh_packet_remaining(struct ssh *); |
146 | void ssh_packet_send_ignore(struct ssh *, int); | ||
147 | 149 | ||
148 | void tty_make_modes(int, struct termios *); | 150 | void tty_make_modes(int, struct termios *); |
149 | void tty_parse_modes(int, int *); | 151 | void tty_parse_modes(int, int *); |
@@ -174,6 +176,7 @@ int sshpkt_disconnect(struct ssh *, const char *fmt, ...) | |||
174 | __attribute__((format(printf, 2, 3))); | 176 | __attribute__((format(printf, 2, 3))); |
175 | int sshpkt_add_padding(struct ssh *, u_char); | 177 | int sshpkt_add_padding(struct ssh *, u_char); |
176 | void sshpkt_fatal(struct ssh *ssh, const char *tag, int r); | 178 | void sshpkt_fatal(struct ssh *ssh, const char *tag, int r); |
179 | int sshpkt_msg_ignore(struct ssh *, u_int); | ||
177 | 180 | ||
178 | int sshpkt_put(struct ssh *ssh, const void *v, size_t len); | 181 | int sshpkt_put(struct ssh *ssh, const void *v, size_t len); |
179 | int sshpkt_putb(struct ssh *ssh, const struct sshbuf *b); | 182 | int sshpkt_putb(struct ssh *ssh, const struct sshbuf *b); |
@@ -192,6 +195,7 @@ int sshpkt_get_u32(struct ssh *ssh, u_int32_t *valp); | |||
192 | int sshpkt_get_u64(struct ssh *ssh, u_int64_t *valp); | 195 | int sshpkt_get_u64(struct ssh *ssh, u_int64_t *valp); |
193 | int sshpkt_get_string(struct ssh *ssh, u_char **valp, size_t *lenp); | 196 | int sshpkt_get_string(struct ssh *ssh, u_char **valp, size_t *lenp); |
194 | int sshpkt_get_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp); | 197 | int sshpkt_get_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp); |
198 | int sshpkt_peek_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp); | ||
195 | int sshpkt_get_cstring(struct ssh *ssh, char **valp, size_t *lenp); | 199 | int sshpkt_get_cstring(struct ssh *ssh, char **valp, size_t *lenp); |
196 | int sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g); | 200 | int sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g); |
197 | int sshpkt_get_bignum2(struct ssh *ssh, BIGNUM *v); | 201 | int sshpkt_get_bignum2(struct ssh *ssh, BIGNUM *v); |