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

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

?? saacproto_util.c

?? cygwin環境編譯,saac登陸服務端,石器2最新代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
   int flg : if 1, actually write. Otherwise no Network access*****************/void saacproto_DebugSend( int fd , char *msg ){	saacproto_Send( fd, msg );}void saacproto_Send( int fd , char *msg ){    char *encoded;	if( saacproto_writelogfilename[0] != '\0' ){		FILE *wfp = fopen( saacproto_writelogfilename , "a+" );		if(wfp)fprintf( wfp , "%s\n", msg );		if(wfp)fclose(wfp);	}#ifdef saacproto__ENCRYPT    encoded = saacproto.cryptwork;    saacproto_encodeString( msg , encoded , saacproto.workbufsize*3 );#else    encoded = msg;#endif	{		/* add a newline character*/		unsigned int l = strlen( encoded );		if( l < saacproto.workbufsize *3){			encoded[l] = '\n';			encoded[l+1] = 0;			l++;		}else{			//andy_log			log( "l:%d < workbufsize:%d err : \n (%s)\n", l, saacproto.workbufsize, msg );		}		saacproto.write_func( fd , encoded , l);	}}/****************  create a header which has function name and new Message ID****************/void saacproto_CreateHeader( char *out ,char *fname ){	sprintf( out ,"%u %s " , saacproto_GetNewMessageID() , fname );}void saacproto_CreateHeaderID( char *out,unsigned long msgid , char *fname ){	sprintf( out ,"%u %s " , (unsigned int)msgid , fname );}char *saacproto_Ltoa( long v ){	static char _ltoa_out[64];	saacproto_cnv10to62( (int)v , _ltoa_out , sizeof( _ltoa_out ));/*	sprintf( _ltoa_out , "%d" , (int)v );*/	return _ltoa_out;}char *saacproto_Ultoa( unsigned long v ){	static char _ultoa_out[64];	sprintf( _ultoa_out , "%u" , (unsigned int)v );	return _ultoa_out;}/****************   string address wrapper****************/char *saacproto_wrapStringAddr( char *copy , int maxcopylen , char*src ){	saacproto_strcpysafe( copy , src , maxcopylen );	return copy;}/*************** bzero buffer ( some OSs like win32 don't have bzero )***************/void saacproto_bzero( char *b , int siz ){	unsigned int i;	int *p;	p = (int*)b;	for(i=0;i<siz/sizeof(int);i++) {		*(p+i)=0;	}	for(i=0;i<siz%sizeof(int);i++) {		*(b+siz-1-i)=0;	}}/***************    copy buffer***************/void saacproto_bcopy(char*s , char *d , int siz ){    unsigned int i;    int *ps,*pd;    ps = (int*)s;    pd = (int*)d;    for(i=0;i<siz/sizeof(int);i++) {        *(pd+i) = *(ps+i);    }    for(i=0;i<siz%sizeof(int);i++) {        *(d+siz-1-i)=*(s+siz-1-i);    }}#ifdef saacproto__ENCRYPT/* define function body only if the macro is set( but it's default) */static void saacproto_encode64( unsigned char *in , int i, unsigned char *out );static int saacproto_decode64( unsigned char *in , unsigned char *out );static void saacproto_jDecode(char *src,int srclen,int key,char *decoded,int *decodedlen);static void saacproto_jEncode(char *src,int srclen,int key,char *encoded,int *encodedlen,int maxencodedlen);#define JENCODE_KEY    1000 /* translate original lsrpc text to code64 text */static void saacproto_encodeString( char *src , char *out , int maxoutlen ){    int jencodedlen=0;    long compressed_l = 0;	int srclen = strlen( src ) + 1;    int flag=srclen;	if( srclen < 100 ){		if( (int)srclen > (int)( saacproto.workbufsize*3-2) ){			fprintf( stderr, "lsgen: badly configured work buflen\n" );			exit(1);		}		if( (flag%2) == 1 ) flag ++;		saacproto.compresswork[0] = flag;		memcpy( saacproto.compresswork+1,src,srclen );		compressed_l = srclen + 1;	} else {		if((flag%2)==0)flag++;		saacproto.compresswork[0] = flag;        compressed_l = saacproto_ringoCompressor(            (unsigned char*)saacproto.compresswork + 1 ,		    (long)saacproto.workbufsize*3 - 1,            (unsigned char*)src ,           (long)strlen(src) ) + 1;    /* be careful! */	}	/* return empty line if error or buffer excess */	if( compressed_l <= 0 ){		saacproto_strcpysafe( out , "\n" , maxoutlen );		return;	}    memcpy( saacproto.jencodecopy ,saacproto.compresswork ,compressed_l );    saacproto_jEncode( saacproto.jencodecopy , compressed_l , JENCODE_KEY ,	    saacproto.jencodeout, &jencodedlen , saacproto.workbufsize*3 -1 );    saacproto_encode64( (unsigned char*)saacproto.jencodeout , jencodedlen,  (unsigned char*)out );}/* translate code64 text to original lsrpc text */static void saacproto_decodeString( char *src , char *out ){    int compressed_l =0, outlen64;    int l;    long decompressed_l = 0;    /* copy src to copybuffer because jencoder modifies the input buffer */    l = strlen( src );    if( src[l-1]=='\n' || src[l-1]=='\r' )src[l-1]=0;    if( src[l-2]=='\n' || src[l-2]=='\r' )src[l-2]=0;    outlen64 = saacproto_decode64( (unsigned char*)src , (unsigned char*)saacproto.jencodecopy );    saacproto_jDecode( saacproto.jencodecopy , outlen64 , JENCODE_KEY,			saacproto.compresswork , &compressed_l);    /*out[outlen]=0;  PENDING*/    if( (saacproto.compresswork[0] % 2 ) == 0 ){	    if( compressed_l <= 0 ){			decompressed_l = 0;			fprintf( stderr, "LSRPC: too short:[%s]\n", src );		} else {			memcpy( out, saacproto.compresswork+1, compressed_l -1 );			decompressed_l = compressed_l -1;		}	} else {        decompressed_l =			saacproto_ringoDecompressor( (unsigned char*)out ,                  	(long)saacproto.workbufsize ,					(unsigned char*)saacproto.compresswork+1 ,					(long)compressed_l -1 );	}    out[decompressed_l] = 0;}/* followings are taken from code64.c */char saacproto_charset[64]={    'A','B','C','D',    'E','F','G','H',    'I','J','K','L',    'M','N','O','P',    'Q','R','S','T',    'U','V','W','X',    'Y','Z','a','b',    'c','d','e','f',    'g','h','i','j',    'k','l','m','n',    'o','p','q','r',    's','t','u','v',    'w','x','y','z',    '0','1','2','3',    '4','5','6','7',    '8','9','+','-'};char saacproto_reversecharset[256]={    0,0,0,0, 0,0,0,0,    0,0,0,0, 0,0,0,0,    0,0,0,0, 0,0,0,0,    0,0,0,0, 0,0,0,0,    0,0,0,0, 0,0,0,0,    0,0,0,62, 0,63,0,0,    52,53,54,55, 56,57,58,59,    60,61,0,0, 0,0,0,0,    0,0,1,2, 3,4,5,6,    7,8,9,10, 11,12,13,14,    15,16,17,18, 19,20,21,22,    23,24,25,0, 0,0,0,0,    0,26,27,28, 29,30,31,32,    33,34,35,36, 37,38,39,40,    41,42,43,44, 45,46,47,48,    49,50,51,0, 0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0,    0,0,0,0,  0,0,0,0};static void saacproto_encode64( unsigned char *in , int len , unsigned char *out ){    int i;    int use_bytes;    int address = 0;    out[0] = 0;    for(i=0;;i+=3){        unsigned char in1 , in2 , in3;        unsigned char out1 ,out2 , out3 , out4;        if( i >= len ) break;        if( i >= (len-1)){   /* the last letter ( to be thrown away ) */            in1 = in[i] & 0xff;            in2 = in3 = 0;            use_bytes = 2;        } else if( i >= (len-2)){ /* the last 2 letters ( process only 1 byte)*/            in1 = in[i] & 0xff;            in2 = in[i+1] & 0xff;            in3 = 0;            use_bytes = 3;        } else {                /* there are more or equal than 3 letters */            in1 = in[i] & 0xff;            in2 = in[i+1] & 0xff;            in3 = in[i+2] & 0xff;            use_bytes = 4;        }        out1 = ((in1 & 0xfc)>>2) & 0x3f;        out2 = ((in1 & 0x03)<<4) | ((( in2 & 0xf0)>>4)&0x0f);        out3 = ((in2 & 0x0f)<<2) | ((( in3 & 0xc0)>>6)&0x03);        out4 = (in3 & 0x3f );        if( use_bytes >= 2 ){            out[address++] = saacproto_charset[out1];            out[address++] = saacproto_charset[out2];            out[address]=0;        }        if( use_bytes >= 3 ){            out[address++] = saacproto_charset[out3];            out[address]=0;        }        if( use_bytes >= 4 ){            out[address++] = saacproto_charset[out4];            out[address]=0;        }    }}/* * Decode it * char *in : encoded ascii chars * char *out : decoded(  output) * return value : output byte count *  * note: no need to have bigger buffer. because output is to  * be smaller than input string size  */static int saacproto_decode64( unsigned char *in , unsigned char *out ){    unsigned char in1 , in2 , in3 , in4;    unsigned char out1 , out2 , out3;    int use_bytes;    int address= 0;    int i;    for(i=0;;i+=4 ){        if( in[i] == 0 ){            break;        } else if( in[i+1] == 0 ){   /* the last letter */            break;        } else if( in[i+2] == 0 ){   /* the last 2 letters */            in1 = saacproto_reversecharset[in[i]];            in2 = saacproto_reversecharset[in[i+1]];            in3 = in4 = 0;            use_bytes = 1;        } else if( in[i+3] == 0 ){   /* the last  3 letters */            in1 = saacproto_reversecharset[in[i]];            in2 = saacproto_reversecharset[in[i+1]];            in3 = saacproto_reversecharset[in[i+2]];            in4 = 0;            use_bytes = 2;        } else {   /* process 4 letters */            in1 = saacproto_reversecharset[in[i]];            in2 = saacproto_reversecharset[in[i+1]];            in3 = saacproto_reversecharset[in[i+2]];            in4 = saacproto_reversecharset[in[i+3]];            use_bytes = 3;        }        out1 =  (in1<<2) | (((in2 & 0x30)>>4)&0x0f) ;        out2 =  ((in2 & 0x0f )<<4) | ((( in3 & 0x3c)>>2)&0x0f);        out3 =  ( (in3 &0x03)<<6) |  ( in4 & 0x3f );        if( use_bytes >= 1 ){            out[address++] = out1;        }        if( use_bytes >= 2 ){            out[address++] = out2;        }        if( use_bytes >= 3 ){            out[address++] = out3;        }        if( use_bytes != 3 ){            break;        }    }    return address;}/* followings are taken from Jencode.c by jun */static void saacproto_jEncode(char *src,int srclen,int key,char *encoded,int *encodedlen,int maxencodedlen){	char sum=0;	int i;	if(srclen+1 > maxencodedlen){		*encodedlen = maxencodedlen;		for(i=0;i<(*encodedlen);i++)encoded[i] = src[i];	}	if(srclen+1 <= maxencodedlen){		*encodedlen=srclen+1;		for(i=0;i<srclen;i++){			sum = sum + src[i];			if(((key%7) == (i%5))||((key%2) == (i%2))) src[i] = ~src[i];		}		for(i=0;i<(*encodedlen);i++){			if(abs((key%srclen)) > i) encoded[i] = src[i] + sum*((i*i)%3); 			if(abs((key%srclen)) == i) encoded[i] = sum;			if(abs((key%srclen)) < i) encoded[i] = src[i-1] + sum*((i*i)%7);			}	}}static void saacproto_jDecode(char *src,int srclen,int key,char *decoded,int *decodedlen){	char sum=0;	int i;	*decodedlen=srclen-1;	if( *decodedlen == 0 ){		return;		/* return error if length is 0 */	}	sum = src[abs(key%(*decodedlen))];	for(i=0;i<srclen;i++){		if(abs((key%(*decodedlen))) > i) decoded[i] = src[i] - sum*((i*i)%3);		if(abs((key%(*decodedlen))) < i) decoded[i-1] = src[i] - sum*((i*i)%7);	}	for(i=0;i<(*decodedlen);i++){		if(((key%7) == (i%5))||((key%2) == (i%2)))decoded[i] = ~decoded[i];	}}/*****************************************************************//*       Compress / Decompress routine                           *//*****************************************************************/	#define B00000000 0#define B00000001 1#define B00000010 2#define B00000011 3#define B00000100 4#define B00000101 5#define B00000110 6#define B00000111 7#define B00001000 8#define B00001001 9#define B00001010 10#define B00001011 11#define B00001100 12#define B00001101 13#define B00001110 14#define B00001111 15#define B00010000 16#define B00010001 17#define B00010010 18#define B00010011 19#define B00010100 20#define B00010101 21#define B00010110 22#define B00010111 23#define B00011000 24#define B00011001 25#define B00011010 26#define B00011011 27#define B00011100 28#define B00011101 29#define B00011110 30#define B00011111 31#define B00100000 32#define B00100001 33#define B00100010 34#define B00100011 35#define B00100100 36#define B00100101 37#define B00100110 38#define B00100111 39#define B00101000 40#define B00101001 41#define B00101010 42#define B00101011 43#define B00101100 44#define B00101101 45#define B00101110 46#define B00101111 47#define B00110000 48#define B00110001 49#define B00110010 50#define B00110011 51#define B00110100 52#define B00110101 53#define B00110110 54#define B00110111 55#define B00111000 56#define B00111001 57#define B00111010 58#define B00111011 59#define B00111100 60#define B00111101 61#define B00111110 62#define B00111111 63#define B01000000 64#define B01000001 65#define B01000010 66#define B01000011 67#define B01000100 68#define B01000101 69#define B01000110 70#define B01000111 71#define B01001000 72#define B01001001 73#define B01001010 74#define B01001011 75#define B01001100 76#define B01001101 77#define B01001110 78#define B01001111 79#define B01010000 80#define B01010001 81#define B01010010 82#define B01010011 83#define B01010100 84#define B01010101 85#define B01010110 86#define B01010111 87#define B01011000 88#define B01011001 89#define B01011010 90#define B01011011 91#define B01011100 92#define B01011101 93#define B01011110 94#define B01011111 95#define B01100000 96#define B01100001 97#define B01100010 98#define B01100011 99#define B01100100 100#define B01100101 101#define B01100110 102#define B01100111 103#define B01101000 104#define B01101001 105#define B01101010 106#define B01101011 107#define B01101100 108#define B01101101 109#define B01101110 110#define B01101111 111#define B01110000 112#define B01110001 113#define B01110010 114#define B01110011 115#define B01110100 116#define B01110101 117#define B01110110 118#define B01110111 119#define B01111000 120#define B01111001 121#define B01111010 122#define B01111011 123#define B01111100 124#define B01111101 125#define B01111110 126

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品1区2区3区| 欧美亚洲日本国产| 欧美少妇性性性| 久久久久国产成人精品亚洲午夜| 亚洲美女在线一区| 国产成人自拍网| 在线成人av网站| 亚洲精品免费在线播放| 懂色中文一区二区在线播放| 日韩网站在线看片你懂的| 一区二区三区在线视频免费 | 99精品热视频| 精品国产精品网麻豆系列| 亚洲主播在线播放| 97久久精品人人做人人爽50路| 国产午夜三级一区二区三| 琪琪久久久久日韩精品| 欧美日韩在线精品一区二区三区激情| 日本一区二区三区久久久久久久久不| 免费观看一级特黄欧美大片| 欧美精品精品一区| 天天综合色天天| 欧美日本在线播放| 亚洲福利一二三区| 欧美亚洲一区二区在线| 亚洲精品大片www| 91福利在线播放| 亚洲激情成人在线| 在线观看欧美精品| 一区二区三区欧美在线观看| 91福利视频网站| 亚洲五月六月丁香激情| 欧美视频日韩视频| 天天做天天摸天天爽国产一区| 欧美色综合影院| 日日摸夜夜添夜夜添国产精品 | 亚洲成人av资源| 欧美日韩三级一区二区| 亚洲成a人v欧美综合天堂| 欧美在线免费观看亚洲| 亚洲成人激情av| 日韩精品一区二区三区中文精品 | 国产一区二区三区久久久| 日韩欧美久久久| 国产精品正在播放| 国产精品久久久久久妇女6080 | 26uuu久久综合| 国产成人免费网站| 亚洲精品中文在线| 欧美日韩精品一区二区在线播放| 日韩成人精品在线| 欧美精品一区二区不卡| 成人免费视频网站在线观看| 一级女性全黄久久生活片免费| 3d成人动漫网站| 国产成人亚洲综合a∨婷婷图片| 1024精品合集| 欧美一区二区三区性视频| 国产主播一区二区| 最新中文字幕一区二区三区| 欧美日韩和欧美的一区二区| 精品写真视频在线观看| 国产精品久久久久久久浪潮网站 | 91久久精品网| 久久99国产精品尤物| 中文天堂在线一区| 在线成人小视频| 国产91富婆露脸刺激对白| 艳妇臀荡乳欲伦亚洲一区| 日韩欧美一区二区三区在线| 99久久99久久精品免费观看| 日韩精品福利网| 国产精品高潮久久久久无| 日韩一区二区中文字幕| fc2成人免费人成在线观看播放| 水蜜桃久久夜色精品一区的特点| 国产欧美一区二区在线观看| 欧美日韩免费观看一区二区三区| 国产精品69毛片高清亚洲| 亚洲成人一区二区在线观看| 中文字幕 久热精品 视频在线| 欧美日韩国产区一| 91在线精品一区二区三区| 免费观看91视频大全| 亚洲男人的天堂av| 久久久亚洲午夜电影| 日韩视频免费观看高清完整版在线观看| 波多野结衣91| 国产原创一区二区| 免费观看在线综合色| 亚洲成人免费看| 又紧又大又爽精品一区二区| 国产欧美一区二区精品性色超碰 | 精品一二线国产| 亚洲成a人v欧美综合天堂| 亚洲欧美一区二区三区国产精品| 久久无码av三级| 精品国产乱码91久久久久久网站| 欧美高清精品3d| 在线看日本不卡| 色琪琪一区二区三区亚洲区| 丁香激情综合国产| 国产精品 日产精品 欧美精品| 日本不卡免费在线视频| 三级欧美在线一区| 亚洲第四色夜色| 亚洲成人av电影| 亚洲一卡二卡三卡四卡 | 日本一区二区三级电影在线观看| 日韩色在线观看| 日韩美女一区二区三区四区| 欧美美女网站色| 欧美伦理视频网站| 91精品欧美一区二区三区综合在 | 久久久久国产精品厨房| 2020国产成人综合网| 欧美白人最猛性xxxxx69交| 欧美一级免费观看| 国产精品青草久久| 久久午夜老司机| 日本一区二区免费在线| 国产欧美精品一区aⅴ影院| 久久久国产综合精品女国产盗摄| 久久精品视频免费| 亚洲国产成人私人影院tom| 中文字幕在线播放不卡一区| 亚洲欧美怡红院| 亚洲成a人在线观看| 日本视频免费一区| 国产夫妻精品视频| 91色porny蝌蚪| 欧美日韩精品一区视频| 亚洲精品一区二区三区在线观看 | 国产成人综合精品三级| 成人精品视频一区二区三区尤物| 99久久久精品免费观看国产蜜| 在线视频你懂得一区二区三区| 欧美婷婷六月丁香综合色| 日韩区在线观看| 国产亚洲精久久久久久| 一级中文字幕一区二区| 麻豆专区一区二区三区四区五区| 激情文学综合网| 99精品视频免费在线观看| 欧美日韩视频在线第一区 | 国产一区二区毛片| 不卡av免费在线观看| 欧美日韩免费视频| 久久一二三国产| 亚洲国产日韩在线一区模特 | 久久免费精品国产久精品久久久久| 中文子幕无线码一区tr| 亚洲国产日韩在线一区模特| 国产综合色产在线精品| 91福利视频网站| 精品久久久久av影院| 亚洲色图欧洲色图婷婷| 麻豆高清免费国产一区| 91亚洲永久精品| 欧美成人video| 亚洲国产aⅴ成人精品无吗| 国产黄色91视频| 4438成人网| 亚洲自拍偷拍麻豆| 国产成人免费xxxxxxxx| 91精品国产91久久久久久最新毛片| 1区2区3区精品视频| 久久99精品久久久久久动态图| 日本久久一区二区| 国产人久久人人人人爽| 美女脱光内衣内裤视频久久网站| 91丝袜高跟美女视频| 久久精品人人爽人人爽| 日本成人在线视频网站| 91免费观看视频在线| 日本一区免费视频| 国产一区二区三区日韩 | 欧美三级电影精品| 亚洲欧洲一区二区三区| 国产精品一区在线| 欧美精品一区视频| 免费精品视频最新在线| 欧美日韩成人一区二区| 亚洲综合在线视频| 91在线小视频| 亚洲欧美日韩久久精品| 成人午夜伦理影院| 国产午夜精品一区二区三区视频| 久久99久久久久久久久久久| 欧美一区二区播放| 午夜视频久久久久久| 欧美亚洲自拍偷拍| 亚洲激情第一区| 欧美在线观看禁18| 一区2区3区在线看| 中文字幕制服丝袜一区二区三区 | 免费成人在线播放| 欧美一区二区三区四区视频| 视频精品一区二区| 欧美卡1卡2卡|