diff options
Diffstat (limited to 'channels.h')
-rw-r--r-- | channels.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/channels.h b/channels.h index 46cde0309..d4ac24a51 100644 --- a/channels.h +++ b/channels.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: channels.h,v 1.90 2008/05/08 12:02:23 djm Exp $ */ | 1 | /* $OpenBSD: channels.h,v 1.91 2008/05/09 04:55:56 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -75,6 +75,13 @@ struct channel_confirm { | |||
75 | }; | 75 | }; |
76 | TAILQ_HEAD(channel_confirms, channel_confirm); | 76 | TAILQ_HEAD(channel_confirms, channel_confirm); |
77 | 77 | ||
78 | /* Context for non-blocking connects */ | ||
79 | struct channel_connect { | ||
80 | char *host; | ||
81 | int port; | ||
82 | struct addrinfo *ai, *aitop; | ||
83 | }; | ||
84 | |||
78 | struct Channel { | 85 | struct Channel { |
79 | int type; /* channel type/state */ | 86 | int type; /* channel type/state */ |
80 | int self; /* my own channel identifier */ | 87 | int self; /* my own channel identifier */ |
@@ -125,7 +132,11 @@ struct Channel { | |||
125 | channel_infilter_fn *input_filter; | 132 | channel_infilter_fn *input_filter; |
126 | channel_outfilter_fn *output_filter; | 133 | channel_outfilter_fn *output_filter; |
127 | 134 | ||
128 | int datagram; /* keep boundaries */ | 135 | /* keep boundaries */ |
136 | int datagram; | ||
137 | |||
138 | /* non-blocking connect */ | ||
139 | struct channel_connect connect_ctx; | ||
129 | }; | 140 | }; |
130 | 141 | ||
131 | #define CHAN_EXTENDED_IGNORE 0 | 142 | #define CHAN_EXTENDED_IGNORE 0 |
@@ -225,8 +236,8 @@ int channel_add_adm_permitted_opens(char *, int); | |||
225 | void channel_clear_permitted_opens(void); | 236 | void channel_clear_permitted_opens(void); |
226 | void channel_clear_adm_permitted_opens(void); | 237 | void channel_clear_adm_permitted_opens(void); |
227 | int channel_input_port_forward_request(int, int); | 238 | int channel_input_port_forward_request(int, int); |
228 | int channel_connect_to(const char *, u_short); | 239 | Channel *channel_connect_to(const char *, u_short, char *, char *); |
229 | int channel_connect_by_listen_address(u_short); | 240 | Channel *channel_connect_by_listen_address(u_short, char *, char *); |
230 | int channel_request_remote_forwarding(const char *, u_short, | 241 | int channel_request_remote_forwarding(const char *, u_short, |
231 | const char *, u_short); | 242 | const char *, u_short); |
232 | int channel_setup_local_fwd_listener(const char *, u_short, | 243 | int channel_setup_local_fwd_listener(const char *, u_short, |
@@ -241,7 +252,7 @@ int x11_connect_display(void); | |||
241 | int x11_create_display_inet(int, int, int, u_int *, int **); | 252 | int x11_create_display_inet(int, int, int, u_int *, int **); |
242 | void x11_input_open(int, u_int32_t, void *); | 253 | void x11_input_open(int, u_int32_t, void *); |
243 | void x11_request_forwarding_with_spoofing(int, const char *, const char *, | 254 | void x11_request_forwarding_with_spoofing(int, const char *, const char *, |
244 | const char *); | 255 | const char *); |
245 | void deny_input_open(int, u_int32_t, void *); | 256 | void deny_input_open(int, u_int32_t, void *); |
246 | 257 | ||
247 | /* agent forwarding */ | 258 | /* agent forwarding */ |