亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rdp.c

?? LinuxTools一書隨書源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*   rdesktop: A Remote Desktop Protocol client.   Protocol services - RDP layer   Copyright (C) Matthew Chapman 1999-2002      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.*/#include "rdesktop.h"extern uint16 mcs_userid;extern char username[16];extern BOOL bitmap_compression;extern BOOL orders;extern BOOL encryption;extern BOOL desktop_save;uint8 *next_packet;uint32 rdp_shareid;/* Initialise an RDP packet */static STREAMrdp_init(int maxlen){	STREAM s;	s = sec_init(encryption ? SEC_ENCRYPT : 0, maxlen + 6);	s_push_layer(s, rdp_hdr, 6);	return s;}/* Send an RDP packet */static voidrdp_send(STREAM s, uint8 pdu_type){	uint16 length;	s_pop_layer(s, rdp_hdr);	length = s->end - s->p;	out_uint16_le(s, length);	out_uint16_le(s, (pdu_type | 0x10));	/* Version 1 */	out_uint16_le(s, (mcs_userid + 1001));	sec_send(s, encryption ? SEC_ENCRYPT : 0);}/* Receive an RDP packet */static STREAMrdp_recv(uint8 * type){	static STREAM rdp_s;	uint16 length, pdu_type;	if ((rdp_s == NULL) || (next_packet >= rdp_s->end))	{		rdp_s = sec_recv();		if (rdp_s == NULL)			return NULL;		next_packet = rdp_s->p;	}	else	{		rdp_s->p = next_packet;	}	in_uint16_le(rdp_s, length);	/* 32k packets are really 8, keepalive fix */	if (length == 0x8000)	{		next_packet += 8;		*type = 0;		return rdp_s;	}	in_uint16_le(rdp_s, pdu_type);	in_uint8s(rdp_s, 2);	/* userid */	*type = pdu_type & 0xf;#if WITH_DEBUG	DEBUG(("RDP packet (type %x):\n", *type));	hexdump(next_packet, length);#endif /*  */	next_packet += length;	return rdp_s;}/* Initialise an RDP data packet */static STREAMrdp_init_data(int maxlen){	STREAM s;	s = sec_init(encryption ? SEC_ENCRYPT : 0, maxlen + 18);	s_push_layer(s, rdp_hdr, 18);	return s;}/* Send an RDP data packet */static voidrdp_send_data(STREAM s, uint8 data_pdu_type){	uint16 length;	s_pop_layer(s, rdp_hdr);	length = s->end - s->p;	out_uint16_le(s, length);	out_uint16_le(s, (RDP_PDU_DATA | 0x10));	out_uint16_le(s, (mcs_userid + 1001));	out_uint32_le(s, rdp_shareid);	out_uint8(s, 0);	/* pad */	out_uint8(s, 1);	/* streamid */	out_uint16_le(s, (length - 14));	out_uint8(s, data_pdu_type);	out_uint8(s, 0);	/* compress_type */	out_uint16(s, 0);	/* compress_len */	sec_send(s, encryption ? SEC_ENCRYPT : 0);}/* Output a string in Unicode */voidrdp_out_unistr(STREAM s, char *string, int len){	int i = 0, j = 0;	len += 2;	while (i < len)	{		s->p[i++] = string[j++];		s->p[i++] = 0;	}	s->p += len;}/* Parse a logon info packet */static voidrdp_send_logon_info(uint32 flags, char *domain, char *user,		    char *password, char *program, char *directory){	int len_domain = 2 * strlen(domain);	int len_user = 2 * strlen(user);	int len_password = 2 * strlen(password);	int len_program = 2 * strlen(program);	int len_directory = 2 * strlen(directory);	uint32 sec_flags = encryption ? (SEC_LOGON_INFO | SEC_ENCRYPT) : SEC_LOGON_INFO;	STREAM s;	s = sec_init(sec_flags, 18 + len_domain + len_user + len_password		     + len_program + len_directory + 10);	out_uint32(s, 0);	out_uint32_le(s, flags);	out_uint16_le(s, len_domain);	out_uint16_le(s, len_user);	out_uint16_le(s, len_password);	out_uint16_le(s, len_program);	out_uint16_le(s, len_directory);	rdp_out_unistr(s, domain, len_domain);	rdp_out_unistr(s, user, len_user);	rdp_out_unistr(s, password, len_password);	rdp_out_unistr(s, program, len_program);	rdp_out_unistr(s, directory, len_directory);	s_mark_end(s);	sec_send(s, sec_flags);}/* Send a control PDU */static voidrdp_send_control(uint16 action){	STREAM s;	s = rdp_init_data(8);	out_uint16_le(s, action);	out_uint16(s, 0);	/* userid */	out_uint32(s, 0);	/* control id */	s_mark_end(s);	rdp_send_data(s, RDP_DATA_PDU_CONTROL);}/* Send a synchronisation PDU */static voidrdp_send_synchronise(void){	STREAM s;	s = rdp_init_data(4);	out_uint16_le(s, 1);	/* type */	out_uint16_le(s, 1002);	s_mark_end(s);	rdp_send_data(s, RDP_DATA_PDU_SYNCHRONISE);}/* Send a single input event */voidrdp_send_input(uint32 time, uint16 message_type, uint16 device_flags, uint16 param1, uint16 param2){	STREAM s;	s = rdp_init_data(16);	out_uint16_le(s, 1);	/* number of events */	out_uint16(s, 0);	/* pad */	out_uint32_le(s, time);	out_uint16_le(s, message_type);	out_uint16_le(s, device_flags);	out_uint16_le(s, param1);	out_uint16_le(s, param2);	s_mark_end(s);	rdp_send_data(s, RDP_DATA_PDU_INPUT);}/* Send an (empty) font information PDU */static voidrdp_send_fonts(uint16 seq){	STREAM s;	s = rdp_init_data(8);	out_uint16(s, 0);	/* number of fonts */	out_uint16_le(s, 0x3e);	/* unknown */	out_uint16_le(s, seq);	/* unknown */	out_uint16_le(s, 0x32);	/* entry size */	s_mark_end(s);	rdp_send_data(s, RDP_DATA_PDU_FONT2);}/* Output general capability set */static voidrdp_out_general_caps(STREAM s){	out_uint16_le(s, RDP_CAPSET_GENERAL);	out_uint16_le(s, RDP_CAPLEN_GENERAL);	out_uint16_le(s, 1);	/* OS major type */	out_uint16_le(s, 3);	/* OS minor type */	out_uint16_le(s, 0x200);	/* Protocol version */	out_uint16(s, 0);	/* Pad */	out_uint16(s, 0);	/* Compression types */	out_uint16(s, 0);	/* Pad */	out_uint16(s, 0);	/* Update capability */	out_uint16(s, 0);	/* Remote unshare capability */	out_uint16(s, 0);	/* Compression level */	out_uint16(s, 0);	/* Pad */}/* Output bitmap capability set */static voidrdp_out_bitmap_caps(STREAM s){	out_uint16_le(s, RDP_CAPSET_BITMAP);	out_uint16_le(s, RDP_CAPLEN_BITMAP);	out_uint16_le(s, 8);	/* Preferred BPP */	out_uint16_le(s, 1);	/* Receive 1 BPP */	out_uint16_le(s, 1);	/* Receive 4 BPP */	out_uint16_le(s, 1);	/* Receive 8 BPP */	out_uint16_le(s, 800);	/* Desktop width */	out_uint16_le(s, 600);	/* Desktop height */	out_uint16(s, 0);	/* Pad */	out_uint16(s, 0);	/* Allow resize */	out_uint16_le(s, bitmap_compression ? 1 : 0);	/* Support compression */	out_uint16(s, 0);	/* Unknown */	out_uint16_le(s, 1);	/* Unknown */	out_uint16(s, 0);	/* Pad */}/* Output order capability set */static voidrdp_out_order_caps(STREAM s){	uint8 order_caps[32];	memset(order_caps, 0, 32);	order_caps[0] = 1;	/* dest blt */	order_caps[1] = 1;	/* pat blt */	order_caps[2] = 1;	/* screen blt */	order_caps[3] = 1;	/* required for memblt? */	order_caps[8] = 1;	/* line */	order_caps[9] = 1;	/* line */	order_caps[10] = 1;	/* rect */	order_caps[11] = (desktop_save == False ? 0 : 1);	/* desksave */	order_caps[13] = 1;	/* memblt */	order_caps[14] = 1;	/* triblt */	order_caps[22] = 1;	/* polyline */	order_caps[27] = 1;	/* text2 */	out_uint16_le(s, RDP_CAPSET_ORDER);	out_uint16_le(s, RDP_CAPLEN_ORDER);	out_uint8s(s, 20);	/* Terminal desc, pad */	out_uint16_le(s, 1);	/* Cache X granularity */	out_uint16_le(s, 20);	/* Cache Y granularity */	out_uint16(s, 0);	/* Pad */	out_uint16_le(s, 1);	/* Max order level */	out_uint16_le(s, 0x147);	/* Number of fonts */	out_uint16_le(s, 0x2a);	/* Capability flags */	out_uint8p(s, order_caps, 32);	/* Orders supported */	out_uint16_le(s, 0x6a1);	/* Text capability flags */	out_uint8s(s, 6);	/* Pad */	out_uint32_le(s, desktop_save == False ? 0 : 0x38400);	/* Desktop cache size */	out_uint32(s, 0);	/* Unknown */	out_uint32_le(s, 0x4e4);	/* Unknown */}/* Output bitmap cache capability set */static voidrdp_out_bmpcache_caps(STREAM s){	out_uint16_le(s, RDP_CAPSET_BMPCACHE);	out_uint16_le(s, RDP_CAPLEN_BMPCACHE);	out_uint8s(s, 24);	/* unused */	out_uint16_le(s, 0x258);	/* entries */	out_uint16_le(s, 0x100);	/* max cell size */	out_uint16_le(s, 0x12c);	/* entries */	out_uint16_le(s, 0x400);	/* max cell size */	out_uint16_le(s, 0x106);	/* entries */	out_uint16_le(s, 0x1000);	/* max cell size */}/* Output control capability set */static voidrdp_out_control_caps(STREAM s){	out_uint16_le(s, RDP_CAPSET_CONTROL);	out_uint16_le(s, RDP_CAPLEN_CONTROL);	out_uint16(s, 0);	/* Control capabilities */	out_uint16(s, 0);	/* Remote detach */	out_uint16_le(s, 2);	/* Control interest */	out_uint16_le(s, 2);	/* Detach interest */}/* Output activation capability set */static voidrdp_out_activate_caps(STREAM s){	out_uint16_le(s, RDP_CAPSET_ACTIVATE);	out_uint16_le(s, RDP_CAPLEN_ACTIVATE);	out_uint16(s, 0);	/* Help key */	out_uint16(s, 0);	/* Help index key */	out_uint16(s, 0);	/* Extended help key */	out_uint16(s, 0);	/* Window activate */}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草91视频| 日韩欧美一二三| 欧美麻豆精品久久久久久| 国产目拍亚洲精品99久久精品| 中文字幕一区在线观看视频| 久久66热re国产| 欧美视频精品在线观看| 亚洲欧美一区二区不卡| av不卡在线播放| 精品日韩在线观看| 石原莉奈在线亚洲三区| 日本丶国产丶欧美色综合| 亚洲欧美日韩综合aⅴ视频| 成人妖精视频yjsp地址| 国产日韩欧美精品综合| 国产乱码精品1区2区3区| 国产性天天综合网| 成人毛片在线观看| 亚洲视频综合在线| 一本久久a久久精品亚洲| 午夜一区二区三区视频| 欧美午夜精品一区二区三区 | 免费久久精品视频| 欧美mv和日韩mv国产网站| 国产精品1区2区| 欧美激情一区二区三区不卡 | 日韩主播视频在线| 宅男噜噜噜66一区二区66| 久久成人av少妇免费| 国产色产综合色产在线视频| 成人一区二区三区视频在线观看 | 国产精品少妇自拍| 91国产精品成人| 奇米亚洲午夜久久精品| 精品欧美乱码久久久久久| 高清av一区二区| 午夜免费欧美电影| 国产精品久久毛片| 91精品视频网| 99视频有精品| 免费黄网站欧美| 一区二区三区在线播| 久久久国产精品午夜一区ai换脸| 欧美视频一区二区三区四区| 综合色中文字幕| 日韩精品中文字幕一区二区三区 | 国产成人在线免费| 免费在线观看日韩欧美| 日本一不卡视频| 日本系列欧美系列| 久久精品国产成人一区二区三区 | 99久久99久久精品免费观看| 国产成人aaa| 99精品视频一区二区| 99久久精品一区二区| 一本色道综合亚洲| 欧美日韩一本到| 久久综合色天天久久综合图片| 91污在线观看| 欧美在线三级电影| 欧美成人一区二区三区在线观看 | 欧美久久久影院| 日韩午夜av一区| 国产欧美一区二区三区鸳鸯浴 | 五月婷婷久久丁香| 日本色综合中文字幕| 免费亚洲电影在线| 国产成人av一区| 欧美在线视频日韩| 欧美tickling网站挠脚心| 国产精品入口麻豆九色| 亚洲一区二区五区| 国产乱码一区二区三区| 日本道精品一区二区三区| 欧美r级电影在线观看| 中文字幕免费一区| 麻豆精品一区二区av白丝在线| 懂色av一区二区在线播放| 欧美精品aⅴ在线视频| 国产视频一区二区在线| 日本va欧美va瓶| 欧美一级高清片| 亚洲品质自拍视频| 国产精品99久久久久久有的能看| 国产精品自拍网站| 91视频一区二区三区| 日韩精品中文字幕一区| 丝袜亚洲另类丝袜在线| 在线观看www91| 中文字幕av在线一区二区三区| 日本成人在线电影网| 91久久精品一区二区三| 国产日韩成人精品| 国产一二三精品| 欧美绝品在线观看成人午夜影视| 亚洲人成网站影音先锋播放| 成人性色生活片免费看爆迷你毛片| 欧美成人一级视频| 美女被吸乳得到大胸91| 日韩一区二区三区视频在线观看| 亚洲成av人片| 欧美高清精品3d| 日本欧美一区二区在线观看| 欧美狂野另类xxxxoooo| 日韩专区一卡二卡| 久久尤物电影视频在线观看| 久久福利视频一区二区| 国产亚洲午夜高清国产拍精品 | 日本精品视频一区二区| ww亚洲ww在线观看国产| 久久aⅴ国产欧美74aaa| 久久香蕉国产线看观看99| 国产一区二区三区综合| 中文字幕一区在线观看视频| 色先锋久久av资源部| 亚洲一区视频在线| 国产麻豆一精品一av一免费| 亚洲国产成人一区二区三区| 欧美性色黄大片| 精品一区二区三区日韩| 亚洲同性同志一二三专区| 欧美在线视频全部完| 九色porny丨国产精品| 一区二区三区在线影院| 精品卡一卡二卡三卡四在线| 9i看片成人免费高清| 久久精品国产亚洲高清剧情介绍 | 成人综合婷婷国产精品久久蜜臀 | 亚洲免费成人av| 久久久久成人黄色影片| 欧美日韩一本到| 91丨九色丨国产丨porny| 日韩激情视频在线观看| 亚洲天堂av老司机| 国产农村妇女毛片精品久久麻豆 | 亚洲精品国产a| 亚洲久本草在线中文字幕| 精品国产免费一区二区三区香蕉| 欧美色综合久久| 91片黄在线观看| 成人黄色综合网站| 国产成人高清视频| 久久99精品久久久久久| 日本va欧美va精品发布| 亚洲香肠在线观看| 亚洲电影第三页| 亚洲影视资源网| 亚洲国产一区二区视频| 亚洲精品福利视频网站| 亚洲激情一二三区| 亚洲va天堂va国产va久| 亚洲成人先锋电影| 天天综合色天天综合| 麻豆91精品91久久久的内涵| 麻豆一区二区三| 狠狠色丁香九九婷婷综合五月| 久久国产精品色婷婷| 国内精品伊人久久久久av影院| 国内成+人亚洲+欧美+综合在线| 国产一区二区三区四区五区入口| 精品一区二区三区视频| 99精品欧美一区二区三区综合在线| 99天天综合性| 91精品国产一区二区人妖| 亚洲精品一区二区三区福利| 欧美韩日一区二区三区| 亚洲国产综合色| 久久狠狠亚洲综合| 99久久夜色精品国产网站| 91久久免费观看| 久久综合色婷婷| 亚洲主播在线播放| 国产高清精品久久久久| 91捆绑美女网站| 欧美精品一区二区精品网| 亚洲女女做受ⅹxx高潮| 国产剧情一区在线| 精品久久人人做人人爱| 国产精品不卡一区二区三区| 日韩高清国产一区在线| 本田岬高潮一区二区三区| 欧美大片国产精品| 一区二区三区在线免费播放| 成人看片黄a免费看在线| 日韩一本二本av| 肉丝袜脚交视频一区二区| 91国内精品野花午夜精品| 亚洲国产成人午夜在线一区| 国内外成人在线| 欧美变态tickle挠乳网站| 久久精品久久精品| 日韩一二三区不卡| 黑人巨大精品欧美一区| 日韩欧美中文一区二区| 老司机免费视频一区二区三区| 欧美亚洲愉拍一区二区| 亚洲一二三级电影| 91精品国产综合久久精品app| 日韩av在线发布| 欧美成人艳星乳罩|