diff options
Diffstat (limited to 'libxrdp/libxrdp.h')
-rw-r--r-- | libxrdp/libxrdp.h | 615 |
1 files changed, 330 insertions, 285 deletions
diff --git a/libxrdp/libxrdp.h b/libxrdp/libxrdp.h index d9e5e6d1..0bda9f45 100644 --- a/libxrdp/libxrdp.h +++ b/libxrdp/libxrdp.h @@ -37,33 +37,46 @@ #include "file_loc.h" #include "xrdp_client_info.h" + /* iso */ struct xrdp_iso { - struct xrdp_mcs* mcs_layer; /* owner */ - int requestedProtocol; - int selectedProtocol; - struct trans* trans; + struct xrdp_mcs *mcs_layer; /* owner */ + int rdpNegData; /* bool */ + int requestedProtocol; + int selectedProtocol; + int failureCode; + struct trans *trans; }; /* used in mcs */ struct mcs_channel_item { - char name[16]; - int flags; - int chanid; + char name[16]; + int flags; + int chanid; }; /* 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; - struct list* channel_list; + 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; + struct list *channel_list; +}; + +/* fastpath */ +struct xrdp_fastpath +{ + struct xrdp_sec *sec_layer; /* owner */ + struct trans *trans; + struct xrdp_session *session; + int numEvents; + int secFlags; }; /* Encryption Methods */ @@ -80,177 +93,181 @@ struct xrdp_mcs #define CRYPT_LEVEL_HIGH 0x00000003 #define CRYPT_LEVEL_FIPS 0x00000004 + /* sec */ struct xrdp_sec { - struct xrdp_rdp* rdp_layer; /* owner */ - struct xrdp_mcs* mcs_layer; - struct xrdp_channel* chan_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 crypt_method; - int rc4_key_len; /* 8 = 40 bit, 16 = 128 bit */ - int crypt_level; - char sign_key[16]; - void* decrypt_rc4_info; - void* encrypt_rc4_info; - char pub_exp[4]; - char pub_mod[64]; - char pub_sig[64]; - char pri_exp[64]; - int channel_code; - int multimon; - char fips_encrypt_key[24]; - char fips_decrypt_key[24]; - char fips_sign_key[20]; - void* encrypt_fips_info; - void* decrypt_fips_info; - void* sign_fips_info; + struct xrdp_rdp *rdp_layer; /* owner */ + struct xrdp_mcs *mcs_layer; + struct xrdp_fastpath *fastpath_layer; + struct xrdp_channel *chan_layer; + char server_random[32]; + char client_random[256]; + char client_crypt_random[256 + 8]; /* 64 + 8, 256 + 8 */ + 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 crypt_method; + int rc4_key_len; /* 8 = 40 bit, 16 = 128 bit */ + int crypt_level; + char sign_key[16]; + void *decrypt_rc4_info; + void *encrypt_rc4_info; + char pub_exp[4]; + char pub_mod[256]; + char pub_sig[64]; + char pri_exp[256]; + int rsa_key_bytes; /* 64 or 256 , 0 = no rdp security */ + char fips_encrypt_key[24]; + char fips_decrypt_key[24]; + char fips_sign_key[20]; + void *encrypt_fips_info; + void *decrypt_fips_info; + void *sign_fips_info; }; /* channel */ struct xrdp_channel { - struct xrdp_sec* sec_layer; - struct xrdp_mcs* mcs_layer; + struct xrdp_sec *sec_layer; + struct xrdp_mcs *mcs_layer; }; /* 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; - struct xrdp_mppc_enc* mppc_enc; - void* rfx_enc; + struct xrdp_session *session; + struct xrdp_sec *sec_layer; + int share_id; + int mcs_channel; + struct xrdp_client_info client_info; + struct xrdp_mppc_enc *mppc_enc; + void *rfx_enc; }; /* state */ struct xrdp_orders_state { - 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; - - int com_blt_srcidx; /* RDP_ORDER_COMPOSITE */ /* 2 */ - int com_blt_srcformat; /* 2 */ - int com_blt_srcwidth; /* 2 */ - int com_blt_srcrepeat; /* 1 */ - int com_blt_srctransform[10]; /* 40 */ - int com_blt_mskflags; /* 1 */ - int com_blt_mskidx; /* 2 */ - int com_blt_mskformat; /* 2 */ - int com_blt_mskwidth; /* 2 */ - int com_blt_mskrepeat; /* 1 */ - int com_blt_op; /* 1 */ - int com_blt_srcx; /* 2 */ - int com_blt_srcy; /* 2 */ - int com_blt_mskx; /* 2 */ - int com_blt_msky; /* 2 */ - int com_blt_dstx; /* 2 */ - int com_blt_dsty; /* 2 */ - int com_blt_width; /* 2 */ - int com_blt_height; /* 2 */ - int com_blt_dstformat; /* 2 */ + 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; + + int com_blt_srcidx; /* RDP_ORDER_COMPOSITE */ /* 2 */ + int com_blt_srcformat; /* 2 */ + int com_blt_srcwidth; /* 2 */ + int com_blt_srcrepeat; /* 1 */ + int com_blt_srctransform[10]; /* 40 */ + int com_blt_mskflags; /* 1 */ + int com_blt_mskidx; /* 2 */ + int com_blt_mskformat; /* 2 */ + int com_blt_mskwidth; /* 2 */ + int com_blt_mskrepeat; /* 1 */ + int com_blt_op; /* 1 */ + int com_blt_srcx; /* 2 */ + int com_blt_srcy; /* 2 */ + int com_blt_mskx; /* 2 */ + int com_blt_msky; /* 2 */ + int com_blt_dstx; /* 2 */ + int com_blt_dsty; /* 2 */ + int com_blt_width; /* 2 */ + int com_blt_height; /* 2 */ + int com_blt_dstformat; /* 2 */ }; /* 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 */ - struct xrdp_orders_state orders_state; - void* jpeg_han; - int rfx_min_pixel; + 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 */ + struct xrdp_orders_state orders_state; + void *jpeg_han; + int rfx_min_pixel; + /* shared */ + struct stream *s; + struct stream *temp_s; }; #define PROTO_RDP_40 1 @@ -258,19 +275,20 @@ struct xrdp_orders struct xrdp_mppc_enc { - int protocol_type; /* PROTO_RDP_40, PROTO_RDP_50 etc */ - char *historyBuffer; /* contains uncompressed data */ - char *outputBuffer; /* contains compressed data */ - char *outputBufferPlus; - int historyOffset; /* next free slot in historyBuffer */ - int buf_len; /* length of historyBuffer, protocol dependant */ - int bytes_in_opb; /* compressed bytes available in outputBuffer */ - int flags; /* PACKET_COMPRESSED, PACKET_AT_FRONT, PACKET_FLUSHED etc */ - int flagsHold; - int first_pkt; /* this is the first pkt passing through enc */ - tui16 *hash_table; + int protocol_type; /* PROTO_RDP_40, PROTO_RDP_50 etc */ + char *historyBuffer; /* contains uncompressed data */ + char *outputBuffer; /* contains compressed data */ + char *outputBufferPlus; + int historyOffset; /* next free slot in historyBuffer */ + int buf_len; /* length of historyBuffer, protocol dependant */ + int bytes_in_opb; /* compressed bytes available in outputBuffer */ + int flags; /* PACKET_COMPRESSED, PACKET_AT_FRONT, PACKET_FLUSHED etc */ + int flagsHold; + int first_pkt; /* this is the first pkt passing through enc */ + tui16 *hash_table; }; + int APP_CC compress_rdp(struct xrdp_mppc_enc *enc, tui8 *srcData, int len); struct xrdp_mppc_enc * APP_CC @@ -279,217 +297,225 @@ void APP_CC mppc_enc_free(struct xrdp_mppc_enc *enc); /* xrdp_tcp.c */ -struct xrdp_tcp* APP_CC -xrdp_tcp_create(struct xrdp_iso* owner, struct trans* trans); +struct xrdp_tcp * APP_CC +xrdp_tcp_create(struct xrdp_iso *owner, struct trans *trans); void APP_CC -xrdp_tcp_delete(struct xrdp_tcp* self); +xrdp_tcp_delete(struct xrdp_tcp *self); int APP_CC -xrdp_tcp_init(struct xrdp_tcp* self, struct stream* s); +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); +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_tcp_send(struct xrdp_tcp *self, struct stream *s); /* xrdp_iso.c */ -struct xrdp_iso* APP_CC -xrdp_iso_create(struct xrdp_mcs* owner, struct trans* trans); +struct xrdp_iso * APP_CC +xrdp_iso_create(struct xrdp_mcs *owner, struct trans *trans); void APP_CC -xrdp_iso_delete(struct xrdp_iso* self); +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_init(struct xrdp_iso* self, struct stream* s); +xrdp_iso_recv(struct xrdp_iso *self, struct stream *s); int APP_CC -xrdp_iso_recv(struct xrdp_iso* self, struct stream* s); +xrdp_iso_send(struct xrdp_iso *self, struct stream *s); int APP_CC -xrdp_iso_send(struct xrdp_iso* self, struct stream* s); +xrdp_iso_incoming(struct xrdp_iso *self); int APP_CC -xrdp_iso_incoming(struct xrdp_iso* self); +xrdp_iso_detect_tpkt(struct xrdp_iso *self, struct stream *s); /* xrdp_mcs.c */ -struct xrdp_mcs* APP_CC -xrdp_mcs_create(struct xrdp_sec* owner, struct trans* trans, - struct stream* client_mcs_data, - struct stream* server_mcs_data); +struct xrdp_mcs * APP_CC +xrdp_mcs_create(struct xrdp_sec *owner, struct trans *trans, + struct stream *client_mcs_data, + struct stream *server_mcs_data); void APP_CC -xrdp_mcs_delete(struct xrdp_mcs* self); +xrdp_mcs_delete(struct xrdp_mcs *self); int APP_CC -xrdp_mcs_init(struct xrdp_mcs* self, struct stream* s); +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); +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 chan); +xrdp_mcs_send(struct xrdp_mcs *self, struct stream *s, int chan); int APP_CC -xrdp_mcs_incoming(struct xrdp_mcs* self); +xrdp_mcs_incoming(struct xrdp_mcs *self); int APP_CC -xrdp_mcs_disconnect(struct xrdp_mcs* self); +xrdp_mcs_disconnect(struct xrdp_mcs *self); /* xrdp_sec.c */ -struct xrdp_sec* APP_CC -xrdp_sec_create(struct xrdp_rdp* owner, struct trans* trans, int crypt_level, - int channel_code, int multimon); +struct xrdp_sec *APP_CC +xrdp_sec_create(struct xrdp_rdp *owner, struct trans *trans); void APP_CC -xrdp_sec_delete(struct xrdp_sec* self); +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_get_fastpath_bytes(struct xrdp_sec *self); +int APP_CC +xrdp_sec_init_fastpath(struct xrdp_sec *self, struct stream *s); int APP_CC -xrdp_sec_init(struct xrdp_sec* self, struct stream* s); +xrdp_sec_send_fastpath(struct xrdp_sec *self, struct stream *s); int APP_CC -xrdp_sec_recv(struct xrdp_sec* self, struct stream* s, int* chan); +xrdp_sec_recv_fastpath(struct xrdp_sec *self, struct stream *s); int APP_CC -xrdp_sec_send(struct xrdp_sec* self, struct stream* s, int chan); +xrdp_sec_recv(struct xrdp_sec *self, struct stream *s, int *chan); int APP_CC -xrdp_sec_process_mcs_data(struct xrdp_sec* self); +xrdp_sec_send(struct xrdp_sec *self, struct stream *s, int chan); int APP_CC -xrdp_sec_out_mcs_data(struct xrdp_sec* self); +xrdp_sec_process_mcs_data(struct xrdp_sec *self); int APP_CC -xrdp_sec_incoming(struct xrdp_sec* self); +xrdp_sec_incoming(struct xrdp_sec *self); int APP_CC -xrdp_sec_disconnect(struct xrdp_sec* self); +xrdp_sec_disconnect(struct xrdp_sec *self); /* xrdp_rdp.c */ -struct xrdp_rdp* APP_CC -xrdp_rdp_create(struct xrdp_session* session, struct trans* trans); +struct xrdp_rdp * APP_CC +xrdp_rdp_create(struct xrdp_session *session, struct trans *trans); void APP_CC -xrdp_rdp_delete(struct xrdp_rdp* self); +xrdp_rdp_delete(struct xrdp_rdp *self); int APP_CC -xrdp_rdp_init(struct xrdp_rdp* self, struct stream* s); +xrdp_rdp_init(struct xrdp_rdp *self, struct stream *s); int APP_CC -xrdp_rdp_init_data(struct xrdp_rdp* self, struct stream* s); +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); +xrdp_rdp_get_fastpath_bytes(struct xrdp_rdp *self); int APP_CC -xrdp_rdp_send(struct xrdp_rdp* self, struct stream* s, int pdu_type); +xrdp_rdp_init_fastpath(struct xrdp_rdp *self, struct stream *s); int APP_CC -xrdp_rdp_send_data(struct xrdp_rdp* self, struct stream* s, - int data_pdu_type); +xrdp_rdp_recv(struct xrdp_rdp *self, struct stream *s, int *code); int APP_CC -xrdp_rdp_send_data_update_sync(struct xrdp_rdp* self); +xrdp_rdp_send(struct xrdp_rdp *self, struct stream *s, int pdu_type); int APP_CC -xrdp_rdp_incoming(struct xrdp_rdp* self); +xrdp_rdp_send_data(struct xrdp_rdp *self, struct stream *s, + int data_pdu_type); int APP_CC -xrdp_rdp_send_demand_active(struct xrdp_rdp* self); +xrdp_rdp_send_fastpath(struct xrdp_rdp *self, struct stream *s, + int data_pdu_type); int APP_CC -xrdp_rdp_send_monitorlayout(struct xrdp_rdp* self); +xrdp_rdp_send_data_update_sync(struct xrdp_rdp *self); int APP_CC -xrdp_rdp_process_confirm_active(struct xrdp_rdp* self, struct stream* s); +xrdp_rdp_incoming(struct xrdp_rdp *self); int APP_CC -xrdp_rdp_process_data(struct xrdp_rdp* self, struct stream* s); +xrdp_rdp_process_data(struct xrdp_rdp *self, struct stream *s); int APP_CC -xrdp_rdp_disconnect(struct xrdp_rdp* self); +xrdp_rdp_disconnect(struct xrdp_rdp *self); int APP_CC -xrdp_rdp_send_deactive(struct xrdp_rdp* self); +xrdp_rdp_send_deactive(struct xrdp_rdp *self); /* xrdp_orders.c */ -struct xrdp_orders* APP_CC -xrdp_orders_create(struct xrdp_session* session, - struct xrdp_rdp* rdp_layer); +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); +xrdp_orders_delete(struct xrdp_orders *self); int APP_CC -xrdp_orders_reset(struct xrdp_orders* self); +xrdp_orders_reset(struct xrdp_orders *self); int APP_CC -xrdp_orders_init(struct xrdp_orders* self); +xrdp_orders_init(struct xrdp_orders *self); int APP_CC -xrdp_orders_send(struct xrdp_orders* self); +xrdp_orders_send(struct xrdp_orders *self); int APP_CC -xrdp_orders_force_send(struct xrdp_orders* self); +xrdp_orders_force_send(struct xrdp_orders *self); int APP_CC -xrdp_orders_check(struct xrdp_orders* self, int max_size); +xrdp_orders_check(struct xrdp_orders *self, int max_size); int APP_CC -xrdp_orders_rect(struct xrdp_orders* self, int x, int y, int cx, int cy, - int color, struct xrdp_rect* rect); +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, +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 rop, struct xrdp_rect *rect); int APP_CC -xrdp_orders_pat_blt(struct xrdp_orders* self, int x, int y, +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 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, +xrdp_orders_dest_blt(struct xrdp_orders *self, int x, int y, int cx, int cy, int rop, - struct xrdp_rect* rect); + struct xrdp_rect *rect); int APP_CC -xrdp_orders_line(struct xrdp_orders* self, int mix_mode, +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); + struct xrdp_pen *pen, + struct xrdp_rect *rect); int APP_CC -xrdp_orders_mem_blt(struct xrdp_orders* self, int cache_id, +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 cache_idx, struct xrdp_rect *rect); int APP_CC -xrdp_orders_composite_blt(struct xrdp_orders* self, int srcidx, +xrdp_orders_composite_blt(struct xrdp_orders *self, int srcidx, int srcformat, int srcwidth, - int srcrepeat, int* srctransform, int mskflags, + int srcrepeat, int *srctransform, int mskflags, int mskidx, int mskformat, int mskwidth, int mskrepeat, int op, int srcx, int srcy, int mskx, int msky, int dstx, int dsty, int width, int height, int dstformat, - struct xrdp_rect* rect); + struct xrdp_rect *rect); int APP_CC -xrdp_orders_text(struct xrdp_orders* self, +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 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, +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, +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, +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, +xrdp_orders_send_font(struct xrdp_orders *self, + struct xrdp_font_char *font_char, int font_index, int char_index); int APP_CC -xrdp_orders_send_raw_bitmap2(struct xrdp_orders* self, - int width, int height, int bpp, char* data, +xrdp_orders_send_raw_bitmap2(struct xrdp_orders *self, + int width, int height, int bpp, char *data, int cache_id, int cache_idx); int APP_CC -xrdp_orders_send_bitmap2(struct xrdp_orders* self, - int width, int height, int bpp, char* data, +xrdp_orders_send_bitmap2(struct xrdp_orders *self, + int width, int height, int bpp, char *data, int cache_id, int cache_idx, int hints); int APP_CC -xrdp_orders_send_bitmap3(struct xrdp_orders* self, - int width, int height, int bpp, char* data, +xrdp_orders_send_bitmap3(struct xrdp_orders *self, + int width, int height, int bpp, char *data, int cache_id, int cache_idx, int hints); int APP_CC -xrdp_orders_send_brush(struct xrdp_orders* self, int width, int height, - int bpp, int type, int size, char* data, int cache_id); +xrdp_orders_send_brush(struct xrdp_orders *self, int width, int height, + int bpp, int type, int size, char *data, int cache_id); int APP_CC -xrdp_orders_send_create_os_surface(struct xrdp_orders* self, int id, +xrdp_orders_send_create_os_surface(struct xrdp_orders *self, int id, int width, int height, - struct list* del_list); + struct list *del_list); int APP_CC -xrdp_orders_send_switch_os_surface(struct xrdp_orders* self, int id); +xrdp_orders_send_switch_os_surface(struct xrdp_orders *self, int id); /* 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_s, +xrdp_bitmap_compress(char *in_data, int width, int height, + struct stream *s, int bpp, int byte_limit, + int start_line, struct stream *temp_s, int e); int APP_CC -xrdp_bitmap32_compress(char* in_data, int width, int height, - struct stream* s, int bpp, int byte_limit, - int start_line, struct stream* temp_s, - int e); +xrdp_bitmap32_compress(char *in_data, int width, int height, + struct stream *s, int bpp, int byte_limit, + int start_line, struct stream *temp_s, + int e, int flags); int APP_CC -xrdp_jpeg_compress(void *handle, char* in_data, int width, int height, - struct stream* s, int bpp, int byte_limit, - int start_line, struct stream* temp_s, +xrdp_jpeg_compress(void *handle, char *in_data, int width, int height, + struct stream *s, int bpp, int byte_limit, + int start_line, struct stream *temp_s, int e, int quality); int APP_CC @@ -516,16 +542,35 @@ xrdp_jpeg_deinit(void *handle); /* xrdp_channel.c */ struct xrdp_channel* APP_CC -xrdp_channel_create(struct xrdp_sec* owner, struct xrdp_mcs* mcs_layer); +xrdp_channel_create(struct xrdp_sec *owner, struct xrdp_mcs *mcs_layer); void APP_CC -xrdp_channel_delete(struct xrdp_channel* self); +xrdp_channel_delete(struct xrdp_channel *self); int APP_CC -xrdp_channel_init(struct xrdp_channel* self, struct stream* s); +xrdp_channel_init(struct xrdp_channel *self, struct stream *s); int APP_CC -xrdp_channel_send(struct xrdp_channel* self, struct stream* s, int channel_id, +xrdp_channel_send(struct xrdp_channel *self, struct stream *s, int channel_id, int total_data_len, int flags); int APP_CC -xrdp_channel_process(struct xrdp_channel* self, struct stream* s, +xrdp_channel_process(struct xrdp_channel *self, struct stream *s, int chanid); +/* xrdp_fastpath.c */ +struct xrdp_fastpath *APP_CC +xrdp_fastpath_create(struct xrdp_sec *owner, struct trans *trans); +void APP_CC +xrdp_fastpath_delete(struct xrdp_fastpath *self); +int APP_CC +xrdp_fastpath_recv(struct xrdp_fastpath *self, struct stream *s); +int APP_CC +xrdp_fastpath_process_input_event(struct xrdp_fastpath *self, struct stream *s); +int APP_CC +xrdp_fastpath_init(struct xrdp_fastpath *self, struct stream *s); +int APP_CC +xrdp_fastpath_send(struct xrdp_fastpath *self, struct stream *s); + +/* xrdp_caps.c */ +int APP_CC +xrdp_caps_send_demand_active(struct xrdp_rdp *self); +int APP_CC +xrdp_caps_process_confirm_active(struct xrdp_rdp *self, struct stream *s); #endif |