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

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

?? util.c

?? linux 上端口映射程序源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * util.c: misc functions common to all desproxy binaries * * Copyright (C) 2003 Miguelanxo Otero Salgueiro * * This program is free software; you can redistribute it and/or modify * it under the tems of the GNU General Public License version 2 as * published by the Free Software Foundation. * */#include <stdarg.h>#include "desproxy.h"/* * Function : encode_base64 (const char *string, char *p) * Purpose  : creates a base 64 encoded string * Params   : p - string to encode *          : s - string buffer to write into * * Note     : Taken from transconnect (http://transconnect.sourceforge.net/) */static voidbase64_encode (const char *s, char *p){  char base64[] =    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";  int i, length;  length = strlen (s);  for (i = 0; i < length; i += 3)    {      *p++ = base64[s[0] >> 2];      *p++ = base64[((s[0] & 3) << 4) + (s[1] >> 4)];      *p++ = base64[((s[1] & 0xf) << 2) + (s[2] >> 6)];      *p++ = base64[s[2] & 0x3f];      s += 3;    }  if (i == length + 1)    *(p - 1) = '=';  else if (i == length + 2)    *(p - 1) = *(p - 2) = '=';  *p = '\0';}/* * Function : debug_printf(char *fmt, ...) * Purpose  : prints arguments like printf if DEBUG is set, and *            adds fflush(stdout) * Params   : same as printf, as defined in <stdio.h> *         * Note     : this function obtained via IRC chat in  *            irc.openprojects.net, #c channel. */intdebug_printf (const char *fmt, ...){  int n;  va_list ap;  if (DEBUG)    {      va_start (ap, fmt);      n = vprintf (fmt, ap);      va_end (ap);      fflush (stdout);      return n;    }  return 0;}/* * Function : char *get_console_line (void) * Purpose  : gets a line from console to char console_line[256] * Params   : none */char *get_console_line (void){  int count;  fgets (console_line, 256, stdin);  for (count = 0; count < strlen (console_line); count++)    if (console_line[count] < 32)      console_line[count] = 0;  return console_line;}/* * Function : void strtolower(char *string) * Purpose  : changes char *string to lowercase * Params   : char *string - string to lowercase */voidstrtolower (char *string){  int count;  for (count = 0; count < strlen (string); count++)    {      string[count] = tolower (string[count]);    }}/* * Function : void print_connection(int connection, char *string) * Purpose  : outputs info string for a connection * Parms    : int connection - numbre of connection *            char *string - text to output */voidprint_connection (int connection, char *string){  printf (gettext ("Connection"));  printf (" #%d: %s", connection, string);}/* * Function: void EOC (int connection) * Purpose : terminates connection gracefully * Params  : int connection - connection number to terminate */voidEOC (int connection){  debug_printf (">EOC(%d)\n", connection);  debug_printf ("connection_status[%d]=%d\n",		connection, connection_status[connection]);    client_socket_is_free[connection] = 1;  FD_CLR (client_socket[connection], &mask);  FD_CLR (client_socket[connection], &rmask);  close (client_socket[connection]);  if (connection_status[connection] == BICONNECTED)    {      debug_printf ("connection_status[connection] == BICONNECTED\n");            FD_CLR (proxy_socket[connection], &mask);      FD_CLR (proxy_socket[connection], &rmask);      close (proxy_socket[connection]);    }  connection_status[connection] = TO_RESET;  print_connection (connection, gettext ("end of connection\n"));  debug_printf ("EOC>\n");}/* * Function : mark_all_client_sockets_as_free (void) * Purpose  : initializes client sockets, marking all of them as free * Params   : none */voidmark_all_client_sockets_as_free (void){  int connection;  debug_printf (">mark_all_client_sockets_as_free ()\n");  for (connection = 0; connection < MAX_CONNECTIONS; connection++)    client_socket_is_free[connection] = 1;  debug_printf ("mark_all_client_sockets_as_free>\n");}/* * Function : print_program_version(char *PROGRAM_NAME, char *PROGRAM_VERSION); * Purpose  : outputs program name & version "window" * Params   : char *PROGRAM_NAME - program name *            char *PROGRAM_VERSION - program version */voidprint_program_version (char *PROGRAM_NAME, char *PROGRAM_VERSION){  int count;  printf ("\n-----------------------------------\n");  printf ("%s", PROGRAM_NAME);  for (count = 0; count < 25 - strlen (PROGRAM_NAME); count++)    printf (" ");  for (count = 0; count < 10 - strlen (PROGRAM_VERSION); count++)    printf (" ");  printf ("%s\n\n", PROGRAM_VERSION);  printf ("(C) 2003 Miguelanxo Otero Salgueiro\n");  printf ("-----------------------------------\n\n");}/* * Function : void strnsend (int fd, char *string, int len) * Purpose  : almost same as write () + debugging * Params   : fd - file descriptor *          : char *string - data to write *          : int len - length of data */voidstrnsend (int fd, char *string, int len){  debug_printf (">strnsend(%d,%s,%d)\n", fd, string, len);/*	int towrite,index=0;	towrite=len;	while (towrite>BUFFSIZE) {		memcpy(&buffer,&string[index],BUFFSIZE);		write(fd,buffer,BUFFSIZE);		towrite=towrite-BUFFSIZE;		index=index+BUFFSIZE;	}	memcpy(&buffer,&string[index],towrite);	write(fd,buffer,towrite);	if (DEBUG)	{		write(1,buffer,towrite);		fflush(stdout);	}*/  write (fd, string, len);  debug_printf ("strnsend>\n");}/* * Function : void strsend(int fd, char *string) * Purpose  : send null terminated string to file descriptor * Params   : int fd - file descriptor *          : char *string - data to send */voidstrsend (int fd, char *string){  strnsend (fd, string, strlen (string));}/* * Function : char *parse_HTTP_return_code(void) * Purpose  : gets a parsed HTTP return code from line in buffer *          : (returns a pointer to global variable HTTP_return_code) * Params   : none */char *parse_HTTP_return_code (void){  int count;  debug_printf (">parse_HTTP_return_code\n");  /*   * initialize HTTP_return_code to XXX (undefined/error)   */  strcpy (HTTP_return_code, "XXX");  if (!memcmp (buffer, "HTTP", 4))    {      for (count = 0; buffer[count] != ' '; count++)	if (count == BUFFER_SIZE)	  break;      if (count < BUFFER_SIZE)	{	  memcpy (HTTP_return_code, &buffer[count + 1], 3);	  HTTP_return_code[3] = 0;	  debug_printf ("parse_HTTP_return_code>\n");	  return HTTP_return_code;	}    }  printf ("parse_HTTP_return_code:");  printf (gettext ("bad proxy response.\n"));  exit (1);}/* *  Function : void wait_for_crlf(int fd) *  Purpose  : reads data from file descriptor until sequence CR LF found *           : (data is stored in global variable buffer) *  Params   : int fd - file descriptor *  Returns  : 0 if Ok, -1 otherwise */intwait_for_crlf (int fd){  unsigned char previous_byte = 0;  int count;  debug_printf (">wait_for_crfl(%d)\n", fd);  count = 0;  while (1)    {      read (fd, &buffer[count], 1);      debug_printf ("%c", buffer[count]);      if ((buffer[count] == '\n') && (previous_byte == '\r'))	break;      if (count == BUFFER_SIZE)	{	  printf (" (CASCA)\n\n");	  printf ("wait_for_crlf: BUFFER OVERFLOW!\n");	  return (-1);	}      previous_byte = buffer[count];      count++;    }  buffer[count + 1] = 0;  debug_printf ("wait_for_crfl>\n");  return (0);}/* * Function : void wait_for_2crlf(int fd) * Purpose  : reads file descriptor until sequence CR LR CR LF found *          : (that sequence is used to mark HTTP header end) * Params   : int fd - file descriptor to read from * Returns  : 0 if Ok, -1 otherwise */intwait_for_2crlf (int fd){  debug_printf (">wait_for_2crlf\n");  while (memcmp (buffer, "\r\n", 2))    {      if (wait_for_crlf (fd) < 0)        {	  return (-1);	}    }  debug_printf ("wait_for_2crlf>\n");  return (0);}/* * Function : int connect_host_to_proxy(int connection, char *remote_host *          : char *remote_port) * Purpose  : connects to remote_host:remote_port *          : trough proxy_host:proxy_port  * Params   : int connection - number of connection in use *          : char *remote_host - remote host (name or IP as string) *          : char *remote_port - remote port (number as string) */int

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷一区二区三区四区| 久久综合久久久久88| 日韩欧美你懂的| 国产精品久久久久久户外露出| 午夜在线电影亚洲一区| 成人爱爱电影网址| 欧美一二三区在线观看| 亚洲精品大片www| 国产精品主播直播| 日韩免费看网站| 亚洲一卡二卡三卡四卡| 成年人国产精品| 337p日本欧洲亚洲大胆色噜噜| 五月激情六月综合| 日本道精品一区二区三区| 亚洲国产精品成人久久综合一区| 麻豆国产精品视频| 欧美高清你懂得| 亚洲乱码国产乱码精品精98午夜| 国产99精品国产| 久久久综合视频| 国产一区二区三区在线看麻豆| 欧美美女一区二区在线观看| 亚洲精品你懂的| 成人免费观看男女羞羞视频| 久久精品人人做人人爽97| 美女www一区二区| 91麻豆精品91久久久久久清纯| 亚洲一级片在线观看| 日本黄色一区二区| 亚洲免费电影在线| 91蜜桃婷婷狠狠久久综合9色| 国产亚洲一区二区三区| 国产福利一区二区三区视频| 亚洲成人一区二区在线观看| eeuss鲁一区二区三区| 国产精品亲子乱子伦xxxx裸| 成人自拍视频在线| 中文字幕中文字幕一区二区| 99在线精品观看| 亚洲三级免费电影| 欧美在线观看视频一区二区三区| 亚洲国产精品久久久久婷婷884 | 国产精品另类一区| 成人午夜视频在线| 1000部国产精品成人观看| 色综合欧美在线视频区| 亚洲亚洲人成综合网络| 制服.丝袜.亚洲.另类.中文| 麻豆成人91精品二区三区| 久久夜色精品一区| 99久久精品国产毛片| 亚洲第一福利一区| 欧美videofree性高清杂交| 国产盗摄一区二区三区| 亚洲日本护士毛茸茸| 欧美片在线播放| 激情丁香综合五月| 亚洲欧洲成人精品av97| 欧美日韩国产高清一区| 美国欧美日韩国产在线播放| 91麻豆精品国产91久久久使用方法 | 亚洲人精品午夜| 日本精品免费观看高清观看| 免播放器亚洲一区| 久久久亚洲精品石原莉奈| 成人av电影观看| 亚洲国产你懂的| 久久先锋影音av鲁色资源网| www.欧美精品一二区| 无吗不卡中文字幕| 国产拍揄自揄精品视频麻豆| 欧美色网一区二区| 国产高清精品在线| 天堂va蜜桃一区二区三区漫画版| 久久精品夜色噜噜亚洲aⅴ| 在线观看视频欧美| 国产成人a级片| 天天操天天色综合| 国产精品国产精品国产专区不蜜| 欧美精品三级在线观看| 成人成人成人在线视频| 青青青伊人色综合久久| 亚洲欧美一区二区久久| 精品sm捆绑视频| 欧美视频精品在线观看| 成人激情黄色小说| 久久精品国产精品亚洲精品| 亚洲一区二区三区小说| 欧美激情一区二区三区不卡| 欧美美女bb生活片| 色一情一乱一乱一91av| 国产99一区视频免费| 久久精品国产99| 午夜电影久久久| 亚洲一区免费在线观看| 国产精品久久久久久久第一福利| 亚洲精品在线网站| 日韩一卡二卡三卡| 欧美三级电影网| 91在线小视频| 99在线精品一区二区三区| 国产盗摄一区二区| 国产精品一区二区视频| 久久成人精品无人区| 日韩成人精品视频| 日韩精品国产欧美| 天天操天天干天天综合网| 亚洲一区二区四区蜜桃| 亚洲综合视频在线观看| 亚洲欧美日韩国产成人精品影院| 中文字幕成人av| 国产亚洲成年网址在线观看| 亚洲精品一区二区精华| 精品国产91洋老外米糕| 精品第一国产综合精品aⅴ| 欧美videos大乳护士334| 欧美xxx久久| 亚洲精品一区二区三区香蕉| 久久这里只有精品首页| 国产欧美日韩在线看| 久久久精品tv| 日本一区二区三区国色天香| 中文字幕亚洲电影| 亚洲欧美日韩系列| 亚洲va天堂va国产va久| 日韩av一区二区在线影视| 日本在线不卡一区| 加勒比av一区二区| 国产成人亚洲综合a∨婷婷| 国产suv精品一区二区883| av电影在线观看一区| 欧洲人成人精品| 欧美肥大bbwbbw高潮| 精品美女一区二区| 国产色产综合色产在线视频| 中文字幕永久在线不卡| 一个色在线综合| 美国十次综合导航| 国产不卡在线一区| 色国产综合视频| 日韩精品一区二区三区视频播放 | 欧美艳星brazzers| 日韩精品一区二区三区swag| 国产日韩欧美精品在线| 亚洲免费av观看| 久久精品国产一区二区| 成人精品国产一区二区4080| 在线欧美小视频| 日韩一区二区影院| 中文字幕日韩精品一区 | 久久精品日韩一区二区三区| 亚洲婷婷综合色高清在线| 五月婷婷综合在线| 国产精品一区二区三区99| 色综合色综合色综合| 日韩一区和二区| 亚洲天堂a在线| 日本vs亚洲vs韩国一区三区二区 | 黑人巨大精品欧美黑白配亚洲| 成人性生交大片免费看视频在线| 欧美视频在线一区二区三区 | 一区二区三区中文免费| 蜜桃av噜噜一区| 97se亚洲国产综合自在线不卡| 91精品久久久久久久91蜜桃| 国产人成亚洲第一网站在线播放| 亚洲国产精品一区二区www在线| 国产一区二区主播在线| 欧美性猛片aaaaaaa做受| 久久久不卡网国产精品一区| 亚洲国产精品欧美一二99| 成人免费毛片高清视频| 日韩欧美中文字幕一区| 亚洲午夜精品网| 国产 欧美在线| 亚洲精品一区二区三区在线观看| 夜夜精品浪潮av一区二区三区| 国产高清在线观看免费不卡| 日韩欧美在线一区二区三区| 亚洲裸体xxx| 成人精品视频.| 亚洲精品一区二区三区福利 | 国产成人av电影在线| 日韩欧美国产精品| 性久久久久久久久| 在线中文字幕一区| 中文字幕一区二区日韩精品绯色| 国产精品综合网| 欧美岛国在线观看| 丝袜亚洲精品中文字幕一区| 91久久精品一区二区三区| 中文字幕视频一区| 成+人+亚洲+综合天堂| 国产欧美一区二区精品性色超碰| 精品在线亚洲视频| 精品成人一区二区| 国产精品一区二区无线| 久久嫩草精品久久久精品| 国产在线观看一区二区|