diff options
author | jsorg71 <jsorg71> | 2005-06-28 03:11:35 +0000 |
---|---|---|
committer | jsorg71 <jsorg71> | 2005-06-28 03:11:35 +0000 |
commit | 992dbfa7b3fa568ee480aa3fe3242084d33c518f (patch) | |
tree | c46af888c75e214fa2c1f18606c4d21ef83526e5 /libxrdp/libxrdp.h | |
parent | 41df89c7f2da57650948967a78afa352a3dfc4b6 (diff) | |
download | xrdp-proprietary-992dbfa7b3fa568ee480aa3fe3242084d33c518f.tar.gz xrdp-proprietary-992dbfa7b3fa568ee480aa3fe3242084d33c518f.zip |
moved a bunch of files around
Diffstat (limited to 'libxrdp/libxrdp.h')
-rw-r--r-- | libxrdp/libxrdp.h | 342 |
1 files changed, 342 insertions, 0 deletions
diff --git a/libxrdp/libxrdp.h b/libxrdp/libxrdp.h new file mode 100644 index 00000000..29c2bdb6 --- /dev/null +++ b/libxrdp/libxrdp.h @@ -0,0 +1,342 @@ +/* + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + xrdp: A Remote Desktop Protocol server. + Copyright (C) Jay Sorg 2004-2005 + + libxrdp header + +*/ + +#if !defined(LIBXRDP_H) +#define LIBXRDP_H + +#include "arch.h" +#include "parse.h" +#include "xrdp_constants.h" +#include "defines.h" +#include "os_calls.h" +#include "ssl_calls.h" +#include "list.h" +#include "file.h" +#include "libxrdpinc.h" + +/* tcp */ +struct xrdp_tcp +{ + int sck; + int sck_closed; + struct xrdp_iso* iso_layer; /* owner */ +}; + +/* iso */ +struct xrdp_iso +{ + struct xrdp_mcs* mcs_layer; /* owner */ + struct xrdp_tcp* tcp_layer; +}; + +/* mcs */ +struct xrdp_mcs +{ + struct xrdp_sec* sec_layer; /* owner */ + struct xrdp_iso* iso_layer; + int userid; + int chanid; + struct stream* client_mcs_data; + struct stream* server_mcs_data; +}; + +/* sec */ +struct xrdp_sec +{ + struct xrdp_rdp* rdp_layer; /* owner */ + struct xrdp_mcs* mcs_layer; + char server_random[32]; + char client_random[64]; + char client_crypt_random[72]; + struct stream client_mcs_data; + struct stream server_mcs_data; + int decrypt_use_count; + int encrypt_use_count; + char decrypt_key[16]; + char encrypt_key[16]; + char decrypt_update_key[16]; + char encrypt_update_key[16]; + int rc4_key_size; + int rc4_key_len; + char sign_key[16]; + void* decrypt_rc4_info; + void* encrypt_rc4_info; +}; + +/* rdp */ +struct xrdp_rdp +{ + struct xrdp_session* session; + struct xrdp_sec* sec_layer; + int share_id; + int mcs_channel; + struct xrdp_client_info client_info; +}; + +/* orders */ +struct xrdp_orders +{ + struct stream* out_s; + struct xrdp_rdp* rdp_layer; + struct xrdp_session* session; + struct xrdp_wm* wm; + + char* order_count_ptr; /* pointer to count, set when sending */ + int order_count; + int order_level; /* inc for every call to xrdp_orders_init */ + + int last_order; /* last order sent */ + + int clip_left; /* RDP_ORDER_BOUNDS, RDP_ORDER_LASTBOUNDS */ + int clip_top; + int clip_right; + int clip_bottom; + + int rect_x; /* RDP_ORDER_RECT */ + int rect_y; + int rect_cx; + int rect_cy; + int rect_color; + + int scr_blt_x; /* RDP_ORDER_SCREENBLT */ + int scr_blt_y; + int scr_blt_cx; + int scr_blt_cy; + int scr_blt_rop; + int scr_blt_srcx; + int scr_blt_srcy; + + int pat_blt_x; /* RDP_ORDER_PATBLT */ + int pat_blt_y; + int pat_blt_cx; + int pat_blt_cy; + int pat_blt_rop; + int pat_blt_bg_color; + int pat_blt_fg_color; + struct xrdp_brush pat_blt_brush; + + int dest_blt_x; /* RDP_ORDER_DESTBLT */ + int dest_blt_y; + int dest_blt_cx; + int dest_blt_cy; + int dest_blt_rop; + + int line_mix_mode; /* RDP_ORDER_LINE */ + int line_startx; + int line_starty; + int line_endx; + int line_endy; + int line_bg_color; + int line_rop; + struct xrdp_pen line_pen; + + int mem_blt_color_table; /* RDP_ORDER_MEMBLT */ + int mem_blt_cache_id; + int mem_blt_x; + int mem_blt_y; + int mem_blt_cx; + int mem_blt_cy; + int mem_blt_rop; + int mem_blt_srcx; + int mem_blt_srcy; + int mem_blt_cache_idx; + + int text_font; /* RDP_ORDER_TEXT2 */ + int text_flags; + int text_unknown; + int text_mixmode; + int text_fg_color; + int text_bg_color; + int text_clip_left; + int text_clip_top; + int text_clip_right; + int text_clip_bottom; + int text_box_left; + int text_box_top; + int text_box_right; + int text_box_bottom; + int text_x; + int text_y; + int text_len; + char* text_data; +}; + +/* xrdp_tcp.c */ +struct xrdp_tcp* APP_CC +xrdp_tcp_create(struct xrdp_iso* owner, int sck); +void APP_CC +xrdp_tcp_delete(struct xrdp_tcp* self); +int APP_CC +xrdp_tcp_init(struct xrdp_tcp* self, struct stream* s); +int APP_CC +xrdp_tcp_recv(struct xrdp_tcp* self, struct stream* s, int len); +int APP_CC +xrdp_tcp_send(struct xrdp_tcp* self, struct stream* s); + +/* xrdp_iso.c */ +struct xrdp_iso* APP_CC +xrdp_iso_create(struct xrdp_mcs* owner, int sck); +void APP_CC +xrdp_iso_delete(struct xrdp_iso* self); +int APP_CC +xrdp_iso_init(struct xrdp_iso* self, struct stream* s); +int APP_CC +xrdp_iso_recv(struct xrdp_iso* self, struct stream* s); +int APP_CC +xrdp_iso_send(struct xrdp_iso* self, struct stream* s); +int APP_CC +xrdp_iso_incoming(struct xrdp_iso* self); + +/* xrdp_mcs.c */ +struct xrdp_mcs* APP_CC +xrdp_mcs_create(struct xrdp_sec* owner, int sck, + struct stream* client_mcs_data, + struct stream* server_mcs_data); +void APP_CC +xrdp_mcs_delete(struct xrdp_mcs* self); +int APP_CC +xrdp_mcs_init(struct xrdp_mcs* self, struct stream* s); +int APP_CC +xrdp_mcs_recv(struct xrdp_mcs* self, struct stream* s, int* chan); +int APP_CC +xrdp_mcs_send(struct xrdp_mcs* self, struct stream* s); +int APP_CC +xrdp_mcs_incoming(struct xrdp_mcs* self); +int APP_CC +xrdp_mcs_disconnect(struct xrdp_mcs* self); + +/* xrdp_sec.c */ +struct xrdp_sec* APP_CC +xrdp_sec_create(struct xrdp_rdp* owner, int sck); +void APP_CC +xrdp_sec_delete(struct xrdp_sec* self); +int APP_CC +xrdp_sec_init(struct xrdp_sec* self, struct stream* s); +int APP_CC +xrdp_sec_recv(struct xrdp_sec* self, struct stream* s, int* chan); +int APP_CC +xrdp_sec_send(struct xrdp_sec* self, struct stream* s, int flags); +int APP_CC +xrdp_sec_incoming(struct xrdp_sec* self); +int APP_CC +xrdp_sec_disconnect(struct xrdp_sec* self); + +/* xrdp_rdp.c */ +struct xrdp_rdp* APP_CC +xrdp_rdp_create(struct xrdp_session* session, int sck); +void APP_CC +xrdp_rdp_delete(struct xrdp_rdp* self); +int APP_CC +xrdp_rdp_init(struct xrdp_rdp* self, struct stream* s); +int APP_CC +xrdp_rdp_init_data(struct xrdp_rdp* self, struct stream* s); +int APP_CC +xrdp_rdp_recv(struct xrdp_rdp* self, struct stream* s, int* code); +int APP_CC +xrdp_rdp_send(struct xrdp_rdp* self, struct stream* s, int pdu_type); +int APP_CC +xrdp_rdp_send_data(struct xrdp_rdp* self, struct stream* s, + int data_pdu_type); +int APP_CC +xrdp_rdp_incoming(struct xrdp_rdp* self); +int APP_CC +xrdp_rdp_send_demand_active(struct xrdp_rdp* self); +int APP_CC +xrdp_rdp_process_confirm_active(struct xrdp_rdp* self, struct stream* s); +int APP_CC +xrdp_rdp_process_data(struct xrdp_rdp* self, struct stream* s); +int APP_CC +xrdp_rdp_disconnect(struct xrdp_rdp* self); + +/* xrdp_orders.c */ +struct xrdp_orders* APP_CC +xrdp_orders_create(struct xrdp_session* session, + struct xrdp_rdp* rdp_layer); +void APP_CC +xrdp_orders_delete(struct xrdp_orders* self); +int APP_CC +xrdp_orders_init(struct xrdp_orders* self); +int APP_CC +xrdp_orders_send(struct xrdp_orders* self); +int APP_CC +xrdp_orders_force_send(struct xrdp_orders* self); +int APP_CC +xrdp_orders_rect(struct xrdp_orders* self, int x, int y, int cx, int cy, + int color, struct xrdp_rect* rect); +int APP_CC +xrdp_orders_screen_blt(struct xrdp_orders* self, int x, int y, + int cx, int cy, int srcx, int srcy, + int rop, struct xrdp_rect* rect); +int APP_CC +xrdp_orders_pat_blt(struct xrdp_orders* self, int x, int y, + int cx, int cy, int rop, int bg_color, + int fg_color, struct xrdp_brush* brush, + struct xrdp_rect* rect); +int APP_CC +xrdp_orders_dest_blt(struct xrdp_orders* self, int x, int y, + int cx, int cy, int rop, + struct xrdp_rect* rect); +int APP_CC +xrdp_orders_line(struct xrdp_orders* self, int mix_mode, + int startx, int starty, + int endx, int endy, int rop, int bg_color, + struct xrdp_pen* pen, + struct xrdp_rect* rect); +int APP_CC +xrdp_orders_mem_blt(struct xrdp_orders* self, int cache_id, + int color_table, int x, int y, int cx, int cy, + int rop, int srcx, int srcy, + int cache_idx, struct xrdp_rect* rect); +int APP_CC +xrdp_orders_text(struct xrdp_orders* self, + int font, int flags, int mixmode, + int fg_color, int bg_color, + int clip_left, int clip_top, + int clip_right, int clip_bottom, + int box_left, int box_top, + int box_right, int box_bottom, + int x, int y, char* data, int data_len, + struct xrdp_rect* rect); +int APP_CC +xrdp_orders_send_palette(struct xrdp_orders* self, int* palette, + int cache_id); +int APP_CC +xrdp_orders_send_raw_bitmap(struct xrdp_orders* self, + int width, int height, int bpp, char* data, + int cache_id, int cache_idx); +int APP_CC +xrdp_orders_send_bitmap(struct xrdp_orders* self, + int width, int height, int bpp, char* data, + int cache_id, int cache_idx); +int APP_CC +xrdp_orders_send_font(struct xrdp_orders* self, + struct xrdp_font_char* font_char, + int font_index, int char_index); + +/* xrdp_bitmap_compress.c */ +int APP_CC +xrdp_bitmap_compress(char* in_data, int width, int height, + struct stream* s, int bpp, int byte_limit, + int start_line, struct stream* temp, + int e); + +#endif |