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

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

?? lssproto_util.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 3 頁
字號:
{	return lssproto.message_id++;}/*****************  WRITE   int flg : if 1, actually write. Otherwise no Network access*****************/void lssproto_DebugSend( int fd , char *msg ){	lssproto_Send( fd, msg );}void lssproto_Send( int fd , char *msg ){    char *encoded;	if( lssproto_writelogfilename[0] != '\0' ){		FILE *wfp = fopen( lssproto_writelogfilename , "a+" );		if(wfp)fprintf( wfp , "%s\n", msg );		if(wfp)fclose(wfp);			}	#ifdef lssproto__ENCRYPT    encoded = lssproto.cryptwork;    lssproto_encodeString( msg , encoded , lssproto.workbufsize*3 );#else    encoded = msg;#endif	{		/* add a newline character*/		unsigned int l = strlen( encoded );		if( l < lssproto.workbufsize *3){			encoded[l] = '\n';			encoded[l+1] = 0;			l++;		}		else		{			print("\n lssproto.workbufsize:%d len:%d ", lssproto.workbufsize, l);		}		lssproto.write_func( fd , encoded , l);	}}/****************  create a header which has function name and new Message ID****************/void lssproto_CreateHeader( char *out ,char *fname ){	sprintf( out ,"%u %s " , lssproto_GetNewMessageID() , fname );}void lssproto_CreateHeaderID( char *out,unsigned long msgid , char *fname ){	sprintf( out ,"%u %s " , (unsigned int)msgid , fname );}char *lssproto_Ltoa( long v ){	static char _ltoa_out[64];	lssproto_cnv10to62( (int)v , _ltoa_out , sizeof( _ltoa_out ));/*	sprintf( _ltoa_out , "%d" , (int)v );*/	return _ltoa_out;}char *lssproto_Ultoa( unsigned long v ){	static char _ultoa_out[64];	sprintf( _ultoa_out , "%u" , (unsigned int)v );	return _ultoa_out;}/****************   string address wrapper****************/char *lssproto_wrapStringAddr( char *copy , int maxcopylen , char*src ){	lssproto_strcpysafe( copy , src , maxcopylen );	return copy;}/*************** bzero buffer ( some OSs like win32 don't have bzero )***************/void lssproto_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 lssproto_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);    }}//#define JENCODE_KEY    9932 int JENCODE_KEY=9922;#ifdef lssproto__ENCRYPT/* define function body only if the macro is set( but it's default) */static void lssproto_encode64( unsigned char *in , int i, unsigned char *out );static int lssproto_decode64( unsigned char *in , unsigned char *out );static void lssproto_jDecode(char *src,int srclen,int key,char *decoded,int *decodedlen);static void lssproto_jEncode(char *src,int srclen,int key,char *encoded,int *encodedlen,int maxencodedlen);/* translate original lsrpc text to code64 text */static void lssproto_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)( lssproto.workbufsize*3-2) ){			fprintf( stderr, "lsgen: badly configured work buflen\n" );			exit(1);		}		if( (flag%2) == 1 ) flag ++;		lssproto.compresswork[0] = flag;		memcpy( lssproto.compresswork+1,src,srclen );		compressed_l = srclen + 1;	} else {		if((flag%2)==0)flag++;		lssproto.compresswork[0] = flag;        compressed_l = lssproto_ringoCompressor(            (unsigned char*)lssproto.compresswork + 1 ,		    (long)lssproto.workbufsize*3 - 1,            (unsigned char*)src ,           (long)strlen(src) ) + 1;    /* be careful! */	}	/* return empty line if error or buffer excess */	if( compressed_l <= 0 ){		lssproto_strcpysafe( out , "\n" , maxoutlen );		return;	}    memcpy( lssproto.jencodecopy ,lssproto.compresswork ,compressed_l );    lssproto_jEncode( lssproto.jencodecopy , compressed_l , JENCODE_KEY ,	    lssproto.jencodeout, &jencodedlen , lssproto.workbufsize*3 -1 );    lssproto_encode64( (unsigned char*)lssproto.jencodeout , jencodedlen,  (unsigned char*)out );}/* translate code64 text to original lsrpc text */static void lssproto_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 = lssproto_decode64( (unsigned char*)src , (unsigned char*)lssproto.jencodecopy );    lssproto_jDecode( lssproto.jencodecopy , outlen64 , JENCODE_KEY,			lssproto.compresswork , &compressed_l);    /*out[outlen]=0;  PENDING*/    if( (lssproto.compresswork[0] % 2 ) == 0 ){	    if( compressed_l <= 0 ){			decompressed_l = 0;			fprintf( stderr, "LSRPC: too short:[%s]\n", src );		} else {			memcpy( out, lssproto.compresswork+1, compressed_l -1 );			decompressed_l = compressed_l -1;		}	} else {        decompressed_l =			lssproto_ringoDecompressor( (unsigned char*)out ,                  	(long)lssproto.workbufsize ,					(unsigned char*)lssproto.compresswork+1 ,					(long)compressed_l -1 );	}    out[decompressed_l] = 0;}/* followings are taken from code64.c */char lssproto_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 lssproto_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 lssproto_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++] = lssproto_charset[out1];            out[address++] = lssproto_charset[out2];            out[address]=0;        }        if( use_bytes >= 3 ){            out[address++] = lssproto_charset[out3];            out[address]=0;        }        if( use_bytes >= 4 ){            out[address++] = lssproto_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 lssproto_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 = lssproto_reversecharset[in[i]];            in2 = lssproto_reversecharset[in[i+1]];            in3 = in4 = 0;            use_bytes = 1;        } else if( in[i+3] == 0 ){   /* the last  3 letters */            in1 = lssproto_reversecharset[in[i]];            in2 = lssproto_reversecharset[in[i+1]];            in3 = lssproto_reversecharset[in[i+2]];            in4 = 0;            use_bytes = 2;        } else {   /* process 4 letters */            in1 = lssproto_reversecharset[in[i]];            in2 = lssproto_reversecharset[in[i+1]];            in3 = lssproto_reversecharset[in[i+2]];            in4 = lssproto_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 lssproto_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 lssproto_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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av不卡免费在线观看| 精品国产凹凸成av人导航| 成人黄色免费短视频| 国产精品正在播放| 精品一区二区在线免费观看| 裸体在线国模精品偷拍| 日本成人超碰在线观看| 免费在线观看一区二区三区| 美女视频第一区二区三区免费观看网站| 亚洲综合丁香婷婷六月香| 亚洲精品免费看| 亚洲一区二区三区国产| 亚洲观看高清完整版在线观看| 亚洲最大的成人av| 亚洲 欧美综合在线网络| 亚洲成av人片www| 日韩精品91亚洲二区在线观看 | 奇米影视在线99精品| 美女一区二区视频| 国产一区二区三区美女| 国产99久久久久久免费看农村| 成人在线视频一区| 99久久伊人精品| 欧洲一区在线电影| 欧美日本国产一区| 日韩精品一区二区三区视频播放 | 亚洲成在人线在线播放| 日韩电影在线一区二区三区| 韩国av一区二区三区| 国产盗摄女厕一区二区三区| 波多野结衣欧美| 在线看一区二区| 91精品国产综合久久精品图片| 欧美日韩免费观看一区三区| 91麻豆精品国产自产在线观看一区| 日韩视频免费观看高清在线视频| 精品国产一二三| 亚洲欧美综合另类在线卡通| 一区二区三区在线视频播放| 日韩成人午夜精品| 国产99久久久国产精品| 欧洲激情一区二区| 欧美白人最猛性xxxxx69交| 国产欧美日韩视频一区二区| 亚洲一区二区三区在线| 国模娜娜一区二区三区| 91蝌蚪porny九色| 日韩色视频在线观看| 国产精品美女视频| 丝瓜av网站精品一区二区| 国产高清亚洲一区| 精品视频一区三区九区| 久久一夜天堂av一区二区三区| 亚洲日本在线观看| 麻豆91免费观看| 在线免费观看不卡av| 久久久亚洲欧洲日产国码αv| 一区二区三区蜜桃| 狠狠色丁香婷综合久久| 日本精品免费观看高清观看| 精品日韩在线一区| 亚洲欧美另类久久久精品2019| 免费欧美在线视频| 91一区二区在线观看| 久久综合久久综合九色| 亚洲一区在线观看视频| 国产98色在线|日韩| 欧美丰满嫩嫩电影| 亚洲人妖av一区二区| 日本成人在线看| 欧美在线一二三四区| 欧美激情一区二区三区不卡| 免费人成网站在线观看欧美高清| 91麻豆精东视频| 国产视频亚洲色图| 看电视剧不卡顿的网站| 欧美亚州韩日在线看免费版国语版| 国产女人18水真多18精品一级做| 香蕉久久夜色精品国产使用方法 | 欧美一级xxx| 亚洲综合色视频| www.在线欧美| 午夜日韩在线电影| 91一区二区在线| 欧美国产精品一区二区| 久久精品国产一区二区三| 欧美日韩国产一区| 夜色激情一区二区| 91国偷自产一区二区使用方法| 国产精品网友自拍| 国产精品影音先锋| 日韩欧美国产一区二区在线播放| 亚洲午夜一区二区| 色老头久久综合| 亚洲欧洲在线观看av| 丁香网亚洲国际| 精品国产乱码久久久久久牛牛| 日韩av成人高清| 在线不卡免费av| 亚洲欧美日韩国产中文在线| 91麻豆123| 一区二区久久久久| 91福利在线看| 亚洲小说春色综合另类电影| 色先锋aa成人| 亚洲激情在线播放| 欧美视频你懂的| 亚洲国产精品一区二区尤物区| 在线观看欧美精品| 亚洲一区二区偷拍精品| 欧美日本一道本| 美日韩黄色大片| 久久免费看少妇高潮| 粉嫩一区二区三区在线看| 国产精品无遮挡| 91在线观看下载| 亚洲激情综合网| 欧美伦理影视网| 美女一区二区视频| 久久精品男人天堂av| 成人午夜免费视频| 亚洲人午夜精品天堂一二香蕉| 色婷婷久久久综合中文字幕 | 日本中文字幕一区二区视频| 日韩欧美一二三区| 激情综合五月婷婷| 日本强好片久久久久久aaa| 欧美精品一卡二卡| 捆绑紧缚一区二区三区视频| 久久理论电影网| av中文字幕亚洲| 一区二区理论电影在线观看| 制服丝袜中文字幕亚洲| 国产一区二区调教| 国产精品久久久一本精品| 欧洲生活片亚洲生活在线观看| 琪琪久久久久日韩精品| 日本一区二区三区高清不卡| 91视频免费观看| 婷婷夜色潮精品综合在线| 久久久亚洲午夜电影| 91九色最新地址| 免费观看成人av| 国产日韩av一区| 欧美日韩中文精品| 国产在线播精品第三| 亚洲精品第一国产综合野| 日韩一区二区三区免费观看| 国产99久久久国产精品免费看| 亚洲一本大道在线| 久久精品亚洲乱码伦伦中文| 在线亚洲免费视频| 激情图区综合网| 亚洲香肠在线观看| 久久亚洲精华国产精华液| 色综合激情五月| 久久成人综合网| 亚洲韩国精品一区| 久久精子c满五个校花| 欧美日韩日日夜夜| 波多野结衣亚洲| 美女爽到高潮91| 亚洲一区二区综合| 国产日韩av一区| 欧美一区二区美女| 一本一本久久a久久精品综合麻豆| 青青草97国产精品免费观看无弹窗版| 亚洲欧洲三级电影| 337p日本欧洲亚洲大胆精品| 欧美在线观看18| 成人性生交大片免费看中文网站| 日本在线不卡一区| 亚洲免费色视频| 久久久久9999亚洲精品| 欧美一区二区视频在线观看2022| 99精品视频在线观看免费| 国产一区二区在线影院| 热久久免费视频| 亚洲综合一区二区| 国产精品美女久久久久高潮| 日韩欧美一二区| 欧美日韩国产片| 91老司机福利 在线| 成人精品视频一区二区三区| 久久99日本精品| 日本午夜一区二区| 亚洲一区二区av电影| 中文字幕日韩欧美一区二区三区| 久久一区二区视频| 91精品国产综合久久福利| 91福利资源站| 一本色道久久综合亚洲精品按摩| 高清在线观看日韩| 激情小说亚洲一区| 精品在线一区二区三区| 秋霞成人午夜伦在线观看| 午夜a成v人精品| 亚洲成人av福利| 亚洲一区二区三区视频在线播放| 亚洲激情自拍视频|