1 |
< |
/* $OpenBSD: channels.h,v 1.118 2015/07/01 02:26:31 djm Exp $ */ |
1 |
> |
/* $OpenBSD: channels.h,v 1.121 2017/02/01 02:59:09 dtucker Exp $ */ |
2 |
|
|
3 |
|
/* |
4 |
|
* Author: Tatu Ylonen <ylo@cs.hut.fi> |
58 |
|
#define SSH_CHANNEL_ABANDONED 17 /* Abandoned session, eg mux */ |
59 |
|
#define SSH_CHANNEL_UNIX_LISTENER 18 /* Listening on a domain socket. */ |
60 |
|
#define SSH_CHANNEL_RUNIX_LISTENER 19 /* Listening to a R-style domain socket. */ |
61 |
< |
#define SSH_CHANNEL_MAX_TYPE 20 |
61 |
> |
#define SSH_CHANNEL_MUX_PROXY 20 /* proxy channel for mux-slave */ |
62 |
> |
#define SSH_CHANNEL_MAX_TYPE 21 |
63 |
|
|
64 |
|
#define CHANNEL_CANCEL_PORT_STATIC -1 |
65 |
|
|
163 |
|
mux_callback_fn *mux_rcb; |
164 |
|
void *mux_ctx; |
165 |
|
int mux_pause; |
166 |
+ |
int mux_downstream_id; |
167 |
|
}; |
168 |
|
|
169 |
|
#define CHAN_EXTENDED_IGNORE 0 |
211 |
|
/* channel management */ |
212 |
|
|
213 |
|
Channel *channel_by_id(int); |
214 |
+ |
Channel *channel_by_remote_id(int); |
215 |
|
Channel *channel_lookup(int); |
216 |
|
Channel *channel_new(char *, int, int, int, int, u_int, u_int, int, char *, int); |
217 |
|
void channel_set_fds(int, int, int, int, int, int, int, u_int); |
231 |
|
int channel_close_fd(int *); |
232 |
|
void channel_send_window_changes(void); |
233 |
|
|
234 |
+ |
/* mux proxy support */ |
235 |
+ |
|
236 |
+ |
int channel_proxy_downstream(Channel *mc); |
237 |
+ |
int channel_proxy_upstream(Channel *, int, u_int32_t, void *); |
238 |
+ |
|
239 |
|
/* protocol handler */ |
240 |
|
|
241 |
|
int channel_input_close(int, u_int32_t, void *); |
275 |
|
void channel_clear_permitted_opens(void); |
276 |
|
void channel_clear_adm_permitted_opens(void); |
277 |
|
void channel_print_adm_permitted_opens(void); |
278 |
< |
int channel_input_port_forward_request(int, struct ForwardOptions *); |
279 |
< |
Channel *channel_connect_to_port(const char *, u_short, char *, char *); |
278 |
> |
Channel *channel_connect_to_port(const char *, u_short, char *, char *, int *, |
279 |
> |
const char **); |
280 |
|
Channel *channel_connect_to_path(const char *, char *, char *); |
281 |
|
Channel *channel_connect_stdio_fwd(const char*, u_short, int, int); |
282 |
|
Channel *channel_connect_by_listen_address(const char *, u_short, |