diff options
author | jsorg71 <jsorg71> | 2006-12-30 05:04:13 +0000 |
---|---|---|
committer | jsorg71 <jsorg71> | 2006-12-30 05:04:13 +0000 |
commit | 4b3b83044a29e89d958c3bf0ea2660b978e3c027 (patch) | |
tree | 0bbc878fef02fd1a4192eb45a9c032984f196253 /xrdp | |
parent | 0dc679e2dc3ddf71735585cf53c4b717ab5b11a9 (diff) | |
download | xrdp-proprietary-4b3b83044a29e89d958c3bf0ea2660b978e3c027.tar.gz xrdp-proprietary-4b3b83044a29e89d958c3bf0ea2660b978e3c027.zip |
more work on channel support
Diffstat (limited to 'xrdp')
-rw-r--r-- | xrdp/xrdp.h | 8 | ||||
-rw-r--r-- | xrdp/xrdp_interface.c | 33 | ||||
-rw-r--r-- | xrdp/xrdp_login_wnd.c | 3 | ||||
-rw-r--r-- | xrdp/xrdp_types.h | 11 |
4 files changed, 55 insertions, 0 deletions
diff --git a/xrdp/xrdp.h b/xrdp/xrdp.h index 22501954..225a0f85 100644 --- a/xrdp/xrdp.h +++ b/xrdp/xrdp.h @@ -365,3 +365,11 @@ server_draw_text(struct xrdp_mod* mod, int font, int x, int y, char* data, int data_len); int DEFAULT_CC server_reset(struct xrdp_mod* mod, int width, int height, int bpp); +int DEFAULT_CC +server_query_channel(struct xrdp_mod* mod, int index, char* channel_name, + int* channel_flags); +int DEFAULT_CC +server_get_channel_id(struct xrdp_mod* mod, char* name); +int DEFAULT_CC +server_send_to_channel(struct xrdp_mod* mod, int channel_id, + char* data, int data_len); diff --git a/xrdp/xrdp_interface.c b/xrdp/xrdp_interface.c index 1bf1a8f4..c4c54c69 100644 --- a/xrdp/xrdp_interface.c +++ b/xrdp/xrdp_interface.c @@ -411,3 +411,36 @@ server_reset(struct xrdp_mod* mod, int width, int height, int bpp) xrdp_wm_load_static_pointers(wm); return 0; } + +/*****************************************************************************/ +int DEFAULT_CC +server_query_channel(struct xrdp_mod* mod, int index, char* channel_name, + int* channel_flags) +{ + struct xrdp_wm* wm; + + wm = (struct xrdp_wm*)mod->wm; + return libxrdp_query_channel(wm->session, index, channel_name, + channel_flags); +} + +/*****************************************************************************/ +int DEFAULT_CC +server_get_channel_id(struct xrdp_mod* mod, char* name) +{ + struct xrdp_wm* wm; + + wm = (struct xrdp_wm*)mod->wm; + return libxrdp_get_channel_id(wm->session, name); +} + +/*****************************************************************************/ +int DEFAULT_CC +server_send_to_channel(struct xrdp_mod* mod, int channel_id, + char* data, int data_len) +{ + struct xrdp_wm* wm; + + wm = (struct xrdp_wm*)mod->wm; + return libxrdp_send_to_channel(wm->session, channel_id, data, data_len); +} diff --git a/xrdp/xrdp_login_wnd.c b/xrdp/xrdp_login_wnd.c index 9481d355..f2f3dce6 100644 --- a/xrdp/xrdp_login_wnd.c +++ b/xrdp/xrdp_login_wnd.c @@ -174,6 +174,9 @@ xrdp_wm_setup_mod1(struct xrdp_wm* self, self->mod->server_add_char = server_add_char; self->mod->server_draw_text = server_draw_text; self->mod->server_reset = server_reset; + self->mod->server_query_channel = server_query_channel; + self->mod->server_get_channel_id = server_get_channel_id; + self->mod->server_send_to_channel = server_send_to_channel; } } /* id self->mod is null, there must be a problem */ diff --git a/xrdp/xrdp_types.h b/xrdp/xrdp_types.h index e296bc53..f65b0c06 100644 --- a/xrdp/xrdp_types.h +++ b/xrdp/xrdp_types.h @@ -24,6 +24,7 @@ struct xrdp_mod { int size; /* size of this struct */ + int version; /* internal version */ /* client functions */ int (*mod_start)(struct xrdp_mod* v, int w, int h, int bpp); int (*mod_connect)(struct xrdp_mod* v); @@ -32,6 +33,8 @@ struct xrdp_mod int (*mod_signal)(struct xrdp_mod* v); int (*mod_end)(struct xrdp_mod* v); int (*mod_set_param)(struct xrdp_mod* v, char* name, char* value); + long mod_dumby[100 - 6]; /* align, 100 minus the number of mod + functions above */ /* server functions */ int (*server_begin_update)(struct xrdp_mod* v); int (*server_end_update)(struct xrdp_mod* v); @@ -65,6 +68,14 @@ struct xrdp_mod int box_right, int box_bottom, int x, int y, char* data, int data_len); int (*server_reset)(struct xrdp_mod* v, int width, int height, int bpp); + int (*server_query_channel)(struct xrdp_mod* v, int index, + char* channel_name, + int* channel_flags); + int (*server_get_channel_id)(struct xrdp_mod* v, char* name); + int (*server_send_to_channel)(struct xrdp_mod* v, int channel_id, + char* data, int data_len); + long server_dumby[100 - 24]; /* align, 100 minus the number of server + functions above */ /* common */ long handle; /* pointer to self as int */ long wm; /* struct xrdp_wm* */ |