version 1.31, 2001/04/13 22:46:53 |
version 1.32, 2001/05/04 23:47:33 |
|
|
#include "buffer.h" |
#include "buffer.h" |
|
|
/* Definitions for channel types. */ |
/* Definitions for channel types. */ |
#define SSH_CHANNEL_FREE 0 /* This channel is free (unused). */ |
|
#define SSH_CHANNEL_X11_LISTENER 1 /* Listening for inet X11 conn. */ |
#define SSH_CHANNEL_X11_LISTENER 1 /* Listening for inet X11 conn. */ |
#define SSH_CHANNEL_PORT_LISTENER 2 /* Listening on a port. */ |
#define SSH_CHANNEL_PORT_LISTENER 2 /* Listening on a port. */ |
#define SSH_CHANNEL_OPENING 3 /* waiting for confirmation */ |
#define SSH_CHANNEL_OPENING 3 /* waiting for confirmation */ |
|
|
#define SSH_CHANNEL_DYNAMIC 13 |
#define SSH_CHANNEL_DYNAMIC 13 |
#define SSH_CHANNEL_MAX_TYPE 14 |
#define SSH_CHANNEL_MAX_TYPE 14 |
|
|
|
#define SSH_CHANNEL_PATH_LEN 30 |
|
|
/* |
/* |
* Data structure for channel data. This is iniailized in channel_allocate |
* Data structure for channel data. This is initialized in channel_new |
* and cleared in channel_free. |
* and cleared in channel_free. |
*/ |
*/ |
struct Channel; |
struct Channel; |
|
|
Buffer output; /* data received over encrypted connection for |
Buffer output; /* data received over encrypted connection for |
* send on socket */ |
* send on socket */ |
Buffer extended; |
Buffer extended; |
char path[200]; /* path for unix domain sockets, or host name |
char path[SSH_CHANNEL_PATH_LEN]; |
* for forwards */ |
/* path for unix domain sockets, or host name for forwards */ |
int listening_port; /* port being listened for forwards */ |
int listening_port; /* port being listened for forwards */ |
int host_port; /* remote port to connect for forwards */ |
int host_port; /* remote port to connect for forwards */ |
char *remote_name; /* remote hostname */ |
char *remote_name; /* remote hostname */ |
|
|
void channel_cancel_cleanup(int id); |
void channel_cancel_cleanup(int id); |
Channel *channel_lookup(int id); |
Channel *channel_lookup(int id); |
|
|
int |
|
channel_new(char *ctype, int type, int rfd, int wfd, int efd, |
|
int window, int maxpack, int extended_usage, char *remote_name, |
|
int nonblock); |
|
void |
void |
channel_set_fds(int id, int rfd, int wfd, int efd, |
channel_set_fds(int id, int rfd, int wfd, int efd, |
int extusage, int nonblock); |
int extusage, int nonblock); |
|
|
* must have been allocated with xmalloc; this will free it when the channel |
* must have been allocated with xmalloc; this will free it when the channel |
* is freed. |
* is freed. |
*/ |
*/ |
int channel_allocate(int type, int sock, char *remote_name); |
Channel * |
|
channel_new(char *ctype, int type, int rfd, int wfd, int efd, |
|
int window, int maxpack, int extended_usage, char *remote_name, |
|
int nonblock); |
|
|
/* Free the channel and close its socket. */ |
/* Free the channel and close its socket. */ |
void channel_free(int channel); |
void channel_free(Channel *c); |
|
|
/* |
/* |
* Allocate/update select bitmasks and add any bits relevant to channels in |
* Allocate/update select bitmasks and add any bits relevant to channels in |