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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iso.c

?? ReactOS是一些高手根據Windows XP的內核編寫出的類XP。內核實現機理和API函數調用幾乎相同。甚至可以兼容XP的程序。喜歡研究系統內核的人可以看一看。
?? C
字號:
/* -*- c-basic-offset: 8 -*-
   rdesktop: A Remote Desktop Protocol client.
   Protocol services - ISO layer
   Copyright (C) Matthew Chapman 1999-2005
   
   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"

/* Send a self-contained ISO PDU */
static BOOL
iso_send_msg(RDPCLIENT * This, uint8 code)
{
	STREAM s;

	s = tcp_init(This, 11);

	if(s == NULL)
		return False;

	out_uint8(s, 3);	/* version */
	out_uint8(s, 0);	/* reserved */
	out_uint16_be(s, 11);	/* length */

	out_uint8(s, 6);	/* hdrlen */
	out_uint8(s, code);
	out_uint16(s, 0);	/* dst_ref */
	out_uint16(s, 0);	/* src_ref */
	out_uint8(s, 0);	/* class */

	s_mark_end(s);
	return tcp_send(This, s);
}

static BOOL
iso_send_connection_request(RDPCLIENT * This, char *cookie)
{
	STREAM s;
	int cookielen = (int)strlen(cookie);
	int length = 11 + cookielen;

	s = tcp_init(This, length);

	if(s == NULL)
		return False;

	out_uint8(s, 3);	/* version */
	out_uint8(s, 0);	/* reserved */
	out_uint16_be(s, length);	/* length */

	out_uint8(s, length - 5);	/* hdrlen */
	out_uint8(s, ISO_PDU_CR);
	out_uint16(s, 0);	/* dst_ref */
	out_uint16(s, 0);	/* src_ref */
	out_uint8(s, 0);	/* class */

	out_uint8p(s, cookie, cookielen);

	s_mark_end(s);
	return tcp_send(This, s);
}

/* Receive a message on the ISO layer, return code */
static STREAM
iso_recv_msg(RDPCLIENT * This, uint8 * code, uint8 * rdpver)
{
	STREAM s;
	uint16 length;
	uint8 version;

	s = tcp_recv(This, NULL, 4);
	if (s == NULL)
		return NULL;
	in_uint8(s, version);
	if (rdpver != NULL)
		*rdpver = version;
	if (version == 3)
	{
		in_uint8s(s, 1);	/* pad */
		in_uint16_be(s, length);
	}
	else
	{
		in_uint8(s, length);
		if (length & 0x80)
		{
			length &= ~0x80;
			next_be(s, length);
		}
	}
	s = tcp_recv(This, s, length - 4);
	if (s == NULL)
		return NULL;
	if (version != 3)
		return s;
	in_uint8s(s, 1);	/* hdrlen */
	in_uint8(s, *code);
	if (*code == ISO_PDU_DT)
	{
		in_uint8s(s, 1);	/* eot */
		return s;
	}
	in_uint8s(s, 5);	/* dst_ref, src_ref, class */
	return s;
}

/* Initialise ISO transport data packet */
STREAM
iso_init(RDPCLIENT * This, int length)
{
	STREAM s;

	s = tcp_init(This, length + 7);

	if(s == NULL)
		return NULL;

	s_push_layer(s, iso_hdr, 7);

	return s;
}

/* Send an ISO data PDU */
BOOL
iso_send(RDPCLIENT * This, STREAM s)
{
	uint16 length;

	s_pop_layer(s, iso_hdr);
	length = (uint16)(s->end - s->p);

	out_uint8(s, 3);	/* version */
	out_uint8(s, 0);	/* reserved */
	out_uint16_be(s, length);

	out_uint8(s, 2);	/* hdrlen */
	out_uint8(s, ISO_PDU_DT);	/* code */
	out_uint8(s, 0x80);	/* eot */

	return tcp_send(This, s);
}

/* Receive ISO transport data packet */
STREAM
iso_recv(RDPCLIENT * This, uint8 * rdpver)
{
	STREAM s;
	uint8 code = 0;

	s = iso_recv_msg(This, &code, rdpver);
	if (s == NULL)
		return NULL;
	if (rdpver != NULL)
		if (*rdpver != 3)
			return s;
	if (code != ISO_PDU_DT)
	{
		error("expected DT, got 0x%x\n", code);
		return NULL;
	}
	return s;
}

/* Establish a connection up to the ISO layer */
BOOL
iso_connect(RDPCLIENT * This, char *server, char *cookie)
{
	uint8 code = 0;

	if (!tcp_connect(This, server))
		return False;

	if (!iso_send_connection_request(This, cookie))
		return False;

	if (iso_recv_msg(This, &code, NULL) == NULL)
		return False;

	if (code != ISO_PDU_CC)
	{
		error("expected CC, got 0x%x\n", code);
		tcp_disconnect(This);
		return False;
	}

	return True;
}

/* Establish a reconnection up to the ISO layer */
BOOL
iso_reconnect(RDPCLIENT * This, char *server, char *cookie)
{
	uint8 code = 0;

	if (!tcp_connect(This, server))
		return False;

	if (!iso_send_connection_request(This, cookie)) // BUGBUG should we really pass the cookie here?
		return False;

	if (iso_recv_msg(This, &code, NULL) == NULL)
		return False;

	if (code != ISO_PDU_CC)
	{
		error("expected CC, got 0x%x\n", code);
		tcp_disconnect(This);
		return False;
	}

	return True;
}

/* Disconnect from the ISO layer */
BOOL
iso_disconnect(RDPCLIENT * This)
{
	iso_send_msg(This, ISO_PDU_DR);
	return tcp_disconnect(This);
}

/* reset the state to support reconnecting */
void
iso_reset_state(RDPCLIENT * This)
{
	tcp_reset_state(This);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人激情免费网| 日韩精品在线看片z| 国产成人精品影视| 麻豆精品新av中文字幕| 一区二区不卡在线播放 | 色噜噜狠狠一区二区三区果冻| 日本道色综合久久| 91久久精品国产91性色tv| 成人免费av在线| 麻豆成人在线观看| 秋霞影院一区二区| 日韩高清不卡在线| 性感美女极品91精品| 午夜国产精品一区| 人人精品人人爱| 久久电影网站中文字幕| 秋霞午夜av一区二区三区| 图片区小说区区亚洲影院| 喷白浆一区二区| 国产乱子伦视频一区二区三区 | 亚洲日本护士毛茸茸| 国产欧美日韩综合| 国产精品国产a| 一区二区三区四区乱视频| 香蕉影视欧美成人| 国产剧情一区二区| 99亚偷拍自图区亚洲| 国产精品久久久久久久久免费樱桃 | 日韩精品91亚洲二区在线观看 | 色久综合一二码| 欧美日本免费一区二区三区| 日韩欧美国产综合一区 | 粉嫩13p一区二区三区| 欧洲色大大久久| 精品噜噜噜噜久久久久久久久试看| 国产色综合久久| 午夜久久久影院| 成人av在线播放网址| 日韩欧美在线网站| 亚洲乱码国产乱码精品精可以看| 水野朝阳av一区二区三区| 成人的网站免费观看| 制服丝袜亚洲精品中文字幕| 国产精品国产三级国产aⅴ原创 | 欧美精品aⅴ在线视频| 成人欧美一区二区三区| 一区二区国产盗摄色噜噜| 自拍偷拍亚洲激情| 国产精品一区免费在线观看| 久久久久久99久久久精品网站| 亚洲少妇30p| 国产资源在线一区| 欧美三级中文字| 久久久99久久| 免费观看久久久4p| 96av麻豆蜜桃一区二区| 日韩视频免费观看高清完整版| 国产精品蜜臀在线观看| 色婷婷精品久久二区二区蜜臂av| 日韩欧美国产系列| 久久国产精品99精品国产| 2017欧美狠狠色| 国产精品综合网| 国产午夜精品美女毛片视频| 精品一区二区三区香蕉蜜桃| 91精品国产综合久久精品图片 | 亚洲精品成人天堂一二三| 成人精品电影在线观看| 久久久久久久综合日本| 国产成人精品免费在线| 欧美极品aⅴ影院| 日韩午夜激情免费电影| 日本一区二区高清| 国产剧情一区二区三区| 亚洲国产成人av| 中文字幕在线观看不卡视频| 色综合中文字幕国产| 一区二区免费看| 久久新电视剧免费观看| 粉嫩嫩av羞羞动漫久久久 | 久久精品国产**网站演员| 精品国产网站在线观看| 国产精品一品二品| 国产精品美女久久久久久2018| 在线观看91视频| 国产主播一区二区| 亚洲色图在线看| 欧美一区二区三区视频在线| 国产一区二区三区四区五区美女| 国产精品色眯眯| 日韩欧美国产综合一区 | 51精品视频一区二区三区| 久久99久久精品欧美| 亚洲天堂av一区| 久久综合九色综合97_久久久| 成人激情免费视频| 麻豆成人91精品二区三区| 亚洲国产精品成人综合色在线婷婷| 在线看国产一区| 成人a区在线观看| 国产综合久久久久影院| 日本特黄久久久高潮| 亚洲一二三专区| 亚洲午夜久久久久久久久久久| 亚洲欧美乱综合| 午夜影视日本亚洲欧洲精品| 精品日韩99亚洲| 欧美一区二区三区小说| 欧美在线免费播放| 欧美最新大片在线看| 国产精品亚洲专一区二区三区| 石原莉奈在线亚洲三区| 亚洲va欧美va国产va天堂影院| 一区二区三区中文字幕精品精品| 中文字幕乱码亚洲精品一区| 国产精品污污网站在线观看 | 中文字幕av一区二区三区高| 国产三级三级三级精品8ⅰ区| 精品乱人伦一区二区三区| 日韩视频一区二区三区| 日韩欧美一区二区不卡| 日韩一本二本av| 久久精品亚洲麻豆av一区二区| 久久看人人爽人人| 国产视频在线观看一区二区三区| 国产日产欧美一区二区三区| 国产精品久久久久久亚洲伦| 亚洲欧美日韩系列| 日韩av成人高清| 国产一区二区三区在线观看免费 | 成人激情开心网| 欧美性色综合网| 91精品国产免费| 国产亚洲短视频| 亚洲情趣在线观看| 日本视频免费一区| 国产精品一区二区久激情瑜伽| 成人性视频网站| 欧美丝袜第三区| 国产欧美日韩精品一区| 亚洲第一狼人社区| 国产黄色91视频| 欧美激情一区二区三区四区| 一区二区三区精品在线观看| 黑人精品欧美一区二区蜜桃| 欧美精品日韩一区| 欧美精品一区二区三区四区 | 欧美亚洲自拍偷拍| 欧美激情一区二区三区四区| 亚洲最大成人综合| 国产精品亚洲а∨天堂免在线| 欧美三级一区二区| 亚洲欧洲精品天堂一级| 久久99精品国产.久久久久| 欧美午夜电影网| 亚洲欧美综合色| 国产精品原创巨作av| 欧美大片在线观看一区| 午夜久久久久久| 欧美亚男人的天堂| 中文字幕中文在线不卡住| 国产高清无密码一区二区三区| 欧美丰满少妇xxxxx高潮对白| 亚洲图片欧美一区| 欧美中文字幕一二三区视频| 中文字幕亚洲综合久久菠萝蜜| 国产成人精品免费在线| 中文字幕不卡的av| 北岛玲一区二区三区四区| 国产女同性恋一区二区| 成人一区二区三区视频在线观看 | 国产精品亚洲成人| 欧美极品美女视频| 成人黄色在线网站| 亚洲天堂av老司机| 91麻豆精品久久久久蜜臀| 日韩电影在线观看电影| 精品国产三级电影在线观看| 国产精品亚洲午夜一区二区三区| 国产偷国产偷精品高清尤物| 丁香六月综合激情| 一区二区三区欧美日| 日韩欧美在线影院| 成人av免费网站| 五月天激情综合| 国产亚洲欧美一区在线观看| 99re8在线精品视频免费播放| 五月婷婷欧美视频| 国产日韩欧美不卡| 在线观看免费亚洲| 国产一区二区三区不卡在线观看 | 国产在线精品一区二区不卡了| 国产精品美女一区二区三区| 91超碰这里只有精品国产| 九九**精品视频免费播放| 欧美国产乱子伦 | 中文字幕一区二区三区蜜月| 色婷婷国产精品久久包臀 | 国产精品乱码一区二区三区软件| 色狠狠色狠狠综合|