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

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

?? rdesktop.c

?? LInux 下的遠程桌面工具 Rdesktop
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* -*- c-basic-offset: 8 -*-   rdesktop: A Remote Desktop Protocol client.   Entrypoint and utility functions   Copyright (C) Matthew Chapman 1999-2008   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 <stdarg.h>		/* va_list va_start va_end */#include <unistd.h>		/* read close getuid getgid getpid getppid gethostname */#include <fcntl.h>		/* open */#include <pwd.h>		/* getpwuid */#include <termios.h>		/* tcgetattr tcsetattr */#include <sys/stat.h>		/* stat */#include <sys/time.h>		/* gettimeofday */#include <sys/times.h>		/* times */#include <ctype.h>		/* toupper */#include <errno.h>#include "rdesktop.h"#ifdef HAVE_LOCALE_H#include <locale.h>#endif#ifdef HAVE_ICONV#ifdef HAVE_LANGINFO_H#include <langinfo.h>#endif#endif#ifdef EGD_SOCKET#include <sys/types.h>#include <sys/socket.h>		/* socket connect */#include <sys/un.h>		/* sockaddr_un */#endif#include "ssl.h"char g_title[64] = "";char g_username[64];char g_hostname[16];char g_keymapname[PATH_MAX] = "";unsigned int g_keylayout = 0x409;	/* Defaults to US keyboard layout */int g_keyboard_type = 0x4;	/* Defaults to US keyboard layout */int g_keyboard_subtype = 0x0;	/* Defaults to US keyboard layout */int g_keyboard_functionkeys = 0xc;	/* Defaults to US keyboard layout */int g_width = 800;		/* width is special: If 0, the				   geometry will be fetched from				   _NET_WORKAREA. If negative,				   absolute value specifies the				   percent of the whole screen. */int g_height = 600;int g_xpos = 0;int g_ypos = 0;int g_pos = 0;			/* 0 position unspecified,				   1 specified,				   2 xpos neg,				   4 ypos neg  */extern int g_tcp_port_rdp;int g_server_depth = -1;int g_win_button_size = 0;	/* If zero, disable single app mode */RD_BOOL g_bitmap_compression = True;RD_BOOL g_sendmotion = True;RD_BOOL g_bitmap_cache = True;RD_BOOL g_bitmap_cache_persist_enable = False;RD_BOOL g_bitmap_cache_precache = True;RD_BOOL g_encryption = True;RD_BOOL g_packet_encryption = True;RD_BOOL g_desktop_save = True;	/* desktop save order */RD_BOOL g_polygon_ellipse_orders = True;	/* polygon / ellipse orders */RD_BOOL g_fullscreen = False;RD_BOOL g_grab_keyboard = True;RD_BOOL g_hide_decorations = False;RD_BOOL g_use_rdp5 = True;RD_BOOL g_rdpclip = True;RD_BOOL g_console_session = False;RD_BOOL g_numlock_sync = False;RD_BOOL g_lspci_enabled = False;RD_BOOL g_owncolmap = False;RD_BOOL g_ownbackstore = True;	/* We can't rely on external BackingStore */RD_BOOL g_seamless_rdp = False;uint32 g_embed_wnd;uint32 g_rdp5_performanceflags =	RDP5_NO_WALLPAPER | RDP5_NO_FULLWINDOWDRAG | RDP5_NO_MENUANIMATIONS;/* Session Directory redirection */RD_BOOL g_redirect = False;char g_redirect_server[64];char g_redirect_domain[16];char g_redirect_password[64];char g_redirect_username[64];char g_redirect_cookie[128];uint32 g_redirect_flags = 0;#ifdef WITH_RDPSNDRD_BOOL g_rdpsnd = False;#endif#ifdef HAVE_ICONVchar g_codepage[16] = "";#endifextern RDPDR_DEVICE g_rdpdr_device[];extern uint32 g_num_devices;extern char *g_rdpdr_clientname;#ifdef RDP2VNCextern int rfb_port;extern int defer_time;voidrdp2vnc_connect(char *server, uint32 flags, char *domain, char *password,		char *shell, char *directory);#endif/* Display usage information */static voidusage(char *program){	fprintf(stderr, "rdesktop: A Remote Desktop Protocol client.\n");	fprintf(stderr, "Version " VERSION ". Copyright (C) 1999-2008 Matthew Chapman.\n");	fprintf(stderr, "See http://www.rdesktop.org/ for more information.\n\n");	fprintf(stderr, "Usage: %s [options] server[:port]\n", program);#ifdef RDP2VNC	fprintf(stderr, "   -V: vnc port\n");	fprintf(stderr, "   -Q: defer time (ms)\n");#endif	fprintf(stderr, "   -u: user name\n");	fprintf(stderr, "   -d: domain\n");	fprintf(stderr, "   -s: shell\n");	fprintf(stderr, "   -c: working directory\n");	fprintf(stderr, "   -p: password (- to prompt)\n");	fprintf(stderr, "   -n: client hostname\n");	fprintf(stderr, "   -k: keyboard layout on server (en-us, de, sv, etc.)\n");	fprintf(stderr, "   -g: desktop geometry (WxH)\n");	fprintf(stderr, "   -f: full-screen mode\n");	fprintf(stderr, "   -b: force bitmap updates\n");#ifdef HAVE_ICONV	fprintf(stderr, "   -L: local codepage\n");#endif	fprintf(stderr, "   -A: enable SeamlessRDP mode\n");	fprintf(stderr, "   -B: use BackingStore of X-server (if available)\n");	fprintf(stderr, "   -e: disable encryption (French TS)\n");	fprintf(stderr, "   -E: disable encryption from client to server\n");	fprintf(stderr, "   -m: do not send motion events\n");	fprintf(stderr, "   -C: use private colour map\n");	fprintf(stderr, "   -D: hide window manager decorations\n");	fprintf(stderr, "   -K: keep window manager key bindings\n");	fprintf(stderr, "   -S: caption button size (single application mode)\n");	fprintf(stderr, "   -T: window title\n");	fprintf(stderr, "   -N: enable numlock syncronization\n");	fprintf(stderr, "   -X: embed into another window with a given id.\n");	fprintf(stderr, "   -a: connection colour depth\n");	fprintf(stderr, "   -z: enable rdp compression\n");	fprintf(stderr, "   -x: RDP5 experience (m[odem 28.8], b[roadband], l[an] or hex nr.)\n");	fprintf(stderr, "   -P: use persistent bitmap caching\n");	fprintf(stderr, "   -r: enable specified device redirection (this flag can be repeated)\n");	fprintf(stderr,		"         '-r comport:COM1=/dev/ttyS0': enable serial redirection of /dev/ttyS0 to COM1\n");	fprintf(stderr, "             or      COM1=/dev/ttyS0,COM2=/dev/ttyS1\n");	fprintf(stderr,		"         '-r disk:floppy=/mnt/floppy': enable redirection of /mnt/floppy to 'floppy' share\n");	fprintf(stderr, "             or   'floppy=/mnt/floppy,cdrom=/mnt/cdrom'\n");	fprintf(stderr, "         '-r clientname=<client name>': Set the client name displayed\n");	fprintf(stderr, "             for redirected disks\n");	fprintf(stderr,		"         '-r lptport:LPT1=/dev/lp0': enable parallel redirection of /dev/lp0 to LPT1\n");	fprintf(stderr, "             or      LPT1=/dev/lp0,LPT2=/dev/lp1\n");	fprintf(stderr, "         '-r printer:mydeskjet': enable printer redirection\n");	fprintf(stderr,		"             or      mydeskjet=\"HP LaserJet IIIP\" to enter server driver as well\n");#ifdef WITH_RDPSND	fprintf(stderr,		"         '-r sound:[local[:driver[:device]]|off|remote]': enable sound redirection\n");	fprintf(stderr, "                     remote would leave sound on server\n");	fprintf(stderr, "                     available drivers for 'local':\n");	rdpsnd_show_help();#endif	fprintf(stderr,		"         '-r clipboard:[off|PRIMARYCLIPBOARD|CLIPBOARD]': enable clipboard\n");	fprintf(stderr, "                      redirection.\n");	fprintf(stderr,		"                      'PRIMARYCLIPBOARD' looks at both PRIMARY and CLIPBOARD\n");	fprintf(stderr, "                      when sending data to server.\n");	fprintf(stderr, "                      'CLIPBOARD' looks at only CLIPBOARD.\n");#ifdef WITH_SCARD	fprintf(stderr, "         '-r scard[:\"Scard Name\"=\"Alias Name[;Vendor Name]\"[,...]]\n");	fprintf(stderr, "          example: -r scard:\"eToken PRO 00 00\"=\"AKS ifdh 0\"\n");	fprintf(stderr,		"                   \"eToken PRO 00 00\" -> Device in Linux/Unix enviroment\n");	fprintf(stderr,		"                   \"AKS ifdh 0\"       -> Device shown in Windows enviroment \n");	fprintf(stderr, "          example: -r scard:\"eToken PRO 00 00\"=\"AKS ifdh 0;AKS\"\n");	fprintf(stderr,		"                   \"eToken PRO 00 00\" -> Device in Linux/Unix enviroment\n");	fprintf(stderr,		"                   \"AKS ifdh 0\"       -> Device shown in Windows enviroment \n");	fprintf(stderr,		"                   \"AKS\"              -> Device vendor name                 \n");#endif	fprintf(stderr, "   -0: attach to console\n");	fprintf(stderr, "   -4: use RDP version 4\n");	fprintf(stderr, "   -5: use RDP version 5 (default)\n");}static voidprint_disconnect_reason(uint16 reason){	char *text;	switch (reason)	{		case exDiscReasonNoInfo:			text = "No information available";			break;		case exDiscReasonAPIInitiatedDisconnect:			text = "Server initiated disconnect";			break;		case exDiscReasonAPIInitiatedLogoff:			text = "Server initiated logoff";			break;		case exDiscReasonServerIdleTimeout:			text = "Server idle timeout reached";			break;		case exDiscReasonServerLogonTimeout:			text = "Server logon timeout reached";			break;		case exDiscReasonReplacedByOtherConnection:			text = "The session was replaced";			break;		case exDiscReasonOutOfMemory:			text = "The server is out of memory";			break;		case exDiscReasonServerDeniedConnection:			text = "The server denied the connection";			break;		case exDiscReasonServerDeniedConnectionFips:			text = "The server denied the connection for security reason";			break;		case exDiscReasonLicenseInternal:			text = "Internal licensing error";			break;		case exDiscReasonLicenseNoLicenseServer:			text = "No license server available";			break;		case exDiscReasonLicenseNoLicense:			text = "No valid license available";			break;		case exDiscReasonLicenseErrClientMsg:			text = "Invalid licensing message";			break;		case exDiscReasonLicenseHwidDoesntMatchLicense:			text = "Hardware id doesn't match software license";			break;		case exDiscReasonLicenseErrClientLicense:			text = "Client license error";			break;		case exDiscReasonLicenseCantFinishProtocol:			text = "Network error during licensing protocol";			break;		case exDiscReasonLicenseClientEndedProtocol:			text = "Licensing protocol was not completed";			break;		case exDiscReasonLicenseErrClientEncryption:			text = "Incorrect client license enryption";			break;		case exDiscReasonLicenseCantUpgradeLicense:			text = "Can't upgrade license";			break;		case exDiscReasonLicenseNoRemoteConnections:			text = "The server is not licensed to accept remote connections";			break;		default:			if (reason > 0x1000 && reason < 0x7fff)			{				text = "Internal protocol error";			}			else			{				text = "Unknown reason";			}	}	fprintf(stderr, "disconnect: %s.\n", text);}static voidrdesktop_reset_state(void){	rdp_reset_state();}static RD_BOOLread_password(char *password, int size){	struct termios tios;	RD_BOOL ret = False;	int istty = 0;	char *p;	if (tcgetattr(STDIN_FILENO, &tios) == 0)	{		fprintf(stderr, "Password: ");		tios.c_lflag &= ~ECHO;		tcsetattr(STDIN_FILENO, TCSANOW, &tios);		istty = 1;	}	if (fgets(password, size, stdin) != NULL)	{		ret = True;		/* strip final newline */		p = strchr(password, '\n');		if (p != NULL)			*p = 0;	}	if (istty)	{		tios.c_lflag |= ECHO;		tcsetattr(STDIN_FILENO, TCSANOW, &tios);		fprintf(stderr, "\n");	}	return ret;}static voidparse_server_and_port(char *server){	char *p;#ifdef IPv6	int addr_colons;#endif#ifdef IPv6	p = server;	addr_colons = 0;	while (*p)		if (*p++ == ':')			addr_colons++;	if (addr_colons >= 2)	{		/* numeric IPv6 style address format - [1:2:3::4]:port */		p = strchr(server, ']');		if (*server == '[' && p != NULL)		{			if (*(p + 1) == ':' && *(p + 2) != '\0')				g_tcp_port_rdp = strtol(p + 2, NULL, 10);			/* remove the port number and brackets from the address */			*p = '\0';			strncpy(server, server + 1, strlen(server));		}	}	else	{		/* dns name or IPv4 style address format - server.example.com:port or 1.2.3.4:port */		p = strchr(server, ':');		if (p != NULL)		{			g_tcp_port_rdp = strtol(p + 1, NULL, 10);			*p = 0;		}	}#else /* no IPv6 support */	p = strchr(server, ':');	if (p != NULL)	{		g_tcp_port_rdp = strtol(p + 1, NULL, 10);		*p = 0;	}#endif /* IPv6 */}/* Client program */intmain(int argc, char *argv[]){	char server[64];	char fullhostname[64];	char domain[16];	char password[64];	char shell[256];	char directory[256];	RD_BOOL prompt_password, deactivated;	struct passwd *pw;	uint32 flags, ext_disc_reason = 0;	char *p;	int c;	char *locale = NULL;	int username_option = 0;	RD_BOOL geometry_option = False;	int run_count = 0;	/* Session Directory support */	RD_BOOL continue_connect = True;	/* Session Directory support */#ifdef WITH_RDPSND	char *rdpsnd_optarg = NULL;#endif#ifdef HAVE_LOCALE_H	/* Set locale according to environment */	locale = setlocale(LC_ALL, "");	if (locale)	{		locale = xstrdup(locale);	}#endif	flags = RDP_LOGON_NORMAL;	prompt_password = False;	domain[0] = password[0] = shell[0] = directory[0] = 0;	g_embed_wnd = 0;	g_num_devices = 0;#ifdef RDP2VNC#define VNCOPT "V:Q:"#else#define VNCOPT#endif	while ((c = getopt(argc, argv,			   VNCOPT "Au:L:d:s:c:p:n:k:g:fbBeEmzCDKS:T:NX:a:x:Pr:045h?")) != -1)	{		switch (c)		{#ifdef RDP2VNC			case 'V':				rfb_port = strtol(optarg, NULL, 10);				if (rfb_port < 100)					rfb_port += 5900;				break;			case 'Q':				defer_time = strtol(optarg, NULL, 10);				if (defer_time < 0)					defer_time = 0;				break;#endif			case 'A':				g_seamless_rdp = True;				break;			case 'u':				STRNCPY(g_username, optarg, sizeof(g_username));				username_option = 1;				break;			case 'L':#ifdef HAVE_ICONV				STRNCPY(g_codepage, optarg, sizeof(g_codepage));#else				error("iconv support not available\n");#endif				break;			case 'd':				STRNCPY(domain, optarg, sizeof(domain));				break;			case 's':				STRNCPY(shell, optarg, sizeof(shell));				break;			case 'c':				STRNCPY(directory, optarg, sizeof(directory));				break;			case 'p':				if ((optarg[0] == '-') && (optarg[1] == 0))				{					prompt_password = True;					break;				}				STRNCPY(password, optarg, sizeof(password));				flags |= RDP_LOGON_AUTO;				/* try to overwrite argument so it won't appear in ps */				p = optarg;				while (*p)					*(p++) = 'X';				break;			case 'n':				STRNCPY(g_hostname, optarg, sizeof(g_hostname));				break;			case 'k':				STRNCPY(g_keymapname, optarg, sizeof(g_keymapname));				break;			case 'g':				geometry_option = True;				g_fullscreen = False;				if (!strcmp(optarg, "workarea"))				{					g_width = g_height = 0;					break;				}				g_width = strtol(optarg, &p, 10);				if (g_width <= 0)				{					error("invalid geometry\n");					return 1;				}				if (*p == 'x')					g_height = strtol(p + 1, &p, 10);				if (g_height <= 0)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美系列一区二区| 亚洲麻豆国产自偷在线| 一区二区三区高清| 久久精品国产亚洲a| 色婷婷亚洲综合| 久久婷婷久久一区二区三区| 亚洲国产日韩在线一区模特| 风间由美一区二区av101| 欧美老女人第四色| 一区二区国产视频| 成人免费毛片嘿嘿连载视频| 日韩午夜在线播放| 亚洲成人av电影| 91免费国产在线| 国产欧美精品在线观看| 精品一区二区三区免费播放| 欧美精品丝袜中出| 亚洲国产精品久久久久秋霞影院| 91美女在线看| 国产精品久久99| 国产999精品久久| 精品国产在天天线2019| 日本va欧美va瓶| 91精品国产高清一区二区三区蜜臀| 亚洲女女做受ⅹxx高潮| av不卡在线播放| 亚洲欧洲国产日韩| eeuss鲁片一区二区三区| 国产精品久久看| 成人精品在线视频观看| 国产日产欧美一区二区三区| 国产福利91精品| 久久精品男人的天堂| 国产一区二区三区在线观看免费 | 久久综合久久99| 免费一区二区视频| 日韩精品一区二区在线| 国产一区二区三区黄视频| 精品国产伦一区二区三区观看体验 | 一区二区三区91| 日本韩国欧美一区| 亚洲小少妇裸体bbw| 欧美久久久久久蜜桃| 日韩电影在线观看网站| 精品国产免费人成电影在线观看四季 | 懂色av一区二区三区免费观看| 国产欧美日韩在线观看| 99久久国产综合精品女不卡| 亚洲精品视频免费看| 欧美专区在线观看一区| 视频在线观看一区二区三区| 欧美一区二区三区男人的天堂| 亚洲成人免费在线观看| 欧美巨大另类极品videosbest| 视频一区视频二区中文| 精品久久久久久最新网址| 丰满少妇在线播放bd日韩电影| 亚洲欧洲av另类| 欧美日韩精品久久久| 久久99精品国产.久久久久久| 国产网红主播福利一区二区| 色综合久久综合网| 日本aⅴ免费视频一区二区三区| 亚洲123区在线观看| 亚洲欧洲日韩av| 亚洲天堂a在线| 91浏览器入口在线观看| 午夜激情久久久| 久久综合成人精品亚洲另类欧美 | 91麻豆精品视频| 水蜜桃久久夜色精品一区的特点| 久久亚洲精精品中文字幕早川悠里 | 色综合久久中文综合久久97 | 亚洲激情男女视频| 制服丝袜一区二区三区| 成a人片亚洲日本久久| 亚洲成人自拍偷拍| 中文天堂在线一区| 日韩女优电影在线观看| 色偷偷成人一区二区三区91 | 天堂久久一区二区三区| 日本一区二区三级电影在线观看| 欧美久久久久久蜜桃| 97久久久精品综合88久久| 国产在线视频精品一区| 亚洲一区免费观看| 欧美国产丝袜视频| 欧美电影免费观看高清完整版在线观看 | 国产曰批免费观看久久久| 亚洲精品欧美在线| 国产精品天美传媒沈樵| 欧美成人国产一区二区| 欧美日韩国产bt| 在线免费观看日韩欧美| www.99精品| 国产电影精品久久禁18| 极品销魂美女一区二区三区| 中文一区二区在线观看| 欧美日韩和欧美的一区二区| av在线一区二区| 国产精品一区二区你懂的| 久久精品免费观看| 天堂va蜜桃一区二区三区| 亚洲老司机在线| 亚洲欧美日韩久久| 国产精品久久影院| 国产欧美一区视频| 久久久www成人免费毛片麻豆 | 91丨porny丨国产入口| 成人午夜视频网站| 国产大陆精品国产| 成人午夜私人影院| 99综合影院在线| 91免费看`日韩一区二区| 99精品视频免费在线观看| 成人av先锋影音| 成人免费看视频| 97久久精品人人做人人爽50路| 国产xxx精品视频大全| 国产成人精品一区二区三区四区| 国产一区二三区| 国产精品99久| 成人一级片网址| 91蜜桃网址入口| 欧美写真视频网站| 欧美日韩在线播放一区| 6080国产精品一区二区| 日韩欧美一二三区| 久久精品亚洲精品国产欧美| 国产日韩欧美不卡在线| 国产精品传媒视频| 怡红院av一区二区三区| 天天影视涩香欲综合网| 九九国产精品视频| 成人一区二区视频| 在线观看av不卡| 日韩一区二区三区视频在线| 日韩写真欧美这视频| 中文字幕va一区二区三区| 一区二区中文视频| 亚洲香肠在线观看| 精品无人区卡一卡二卡三乱码免费卡| 国产米奇在线777精品观看| 国产成人av一区| 欧美三区在线视频| 久久婷婷综合激情| 亚洲综合无码一区二区| 久久国产福利国产秒拍| 成人av片在线观看| 欧美日韩亚洲综合一区二区三区| 欧美电影免费观看高清完整版| 国产精品三级av| 日韩高清一区在线| 不卡的电影网站| 91精品国产乱码| 亚洲欧美一区二区视频| 日韩精品一级二级| 9人人澡人人爽人人精品| 欧美肥妇bbw| 国产精品美日韩| 欧美a级一区二区| 99re热这里只有精品免费视频| 日韩一级大片在线| 亚洲欧美日韩国产一区二区三区| 乱一区二区av| 欧美色综合网站| 国产精品美女一区二区| 人人狠狠综合久久亚洲| 91麻豆精品一区二区三区| 久久久国产精华| 日韩国产精品久久久| 色综合亚洲欧洲| 国产清纯白嫩初高生在线观看91 | 欧美美女直播网站| 亚洲欧美一区二区视频| 国产一区二区不卡在线| 91.xcao| 亚洲国产精品自拍| 91影院在线免费观看| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美精品久久99| 亚洲免费看黄网站| 成人国产在线观看| 久久久久久久久久看片| 六月丁香婷婷色狠狠久久| 欧美夫妻性生活| 图片区小说区国产精品视频| 色88888久久久久久影院野外 | 久久综合九色综合欧美98| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩国产大片| 亚洲成人一区在线| 欧美性受xxxx| 亚洲国产欧美另类丝袜| 欧美性生活影院| 亚洲国产另类av| 欧美日韩电影在线播放| 亚洲成av人在线观看| 欧美色图在线观看| 性欧美大战久久久久久久久|