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

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

?? chap.c

?? 君正早期ucos系統(只有早期的才不沒有打包成庫),MPLAYER,文件系統,圖片解碼,瀏覽,電子書,錄音,想學ucos,識貨的人就下吧 russblock fmradio explore set
?? C
?? 第 1 頁 / 共 2 頁
字號:
	}		GETCHAR(rchallenge_len, inp);	len -= sizeof (u_char) + rchallenge_len;	/* now name field length */	if (len < 0) {		CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: rcvd short packet.\n"));		return;	}	rchallenge = inp;	INCPTR(rchallenge_len, inp);		if (len >= sizeof(rhostname))		len = sizeof(rhostname) - 1;	BCOPY(inp, rhostname, len);	rhostname[len] = '\000';		CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: received name field '%s'\n",	       rhostname));		/* Microsoft doesn't send their name back in the PPP packet */	if (ppp_settings.remote_name[0] != 0 && (ppp_settings.explicit_remote || rhostname[0] == 0)) {		strncpy(rhostname, ppp_settings.remote_name, sizeof(rhostname));		rhostname[sizeof(rhostname) - 1] = 0;		CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: using '%s' as remote name\n",			   rhostname));	}		/* get secret for authenticating ourselves with the specified host */	if (!get_secret(cstate->unit, cstate->resp_name, rhostname,			    secret, &secret_len, 0)) {		secret_len = 0;		/* assume null secret if can't find one */		CHAPDEBUG((LOG_WARNING, "No CHAP secret found for authenticating us to %s\n", rhostname));	}		/* cancel response send timeout if necessary */	if (cstate->clientstate == CHAPCS_RESPONSE)		UNTIMEOUT(ChapResponseTimeout, cstate);		cstate->resp_id = id;	cstate->resp_transmits = 0;		/*  generate MD based on negotiated type */	switch (cstate->resp_type) { 		case CHAP_DIGEST_MD5:		MD5Init(&mdContext);		MD5Update(&mdContext, &cstate->resp_id, 1);		MD5Update(&mdContext, (u_char*)secret, secret_len);		MD5Update(&mdContext, rchallenge, rchallenge_len);		MD5Final(hash, &mdContext);		BCOPY(hash, cstate->response, MD5_SIGNATURE_SIZE);		cstate->resp_length = MD5_SIGNATURE_SIZE;		break;	#ifdef CHAPMS	case CHAP_MICROSOFT:		ChapMS(cstate, rchallenge, rchallenge_len, secret, secret_len);		break;#endif		default:		CHAPDEBUG((LOG_INFO, "unknown digest type %d\n", cstate->resp_type));		return;	}		BZERO(secret, sizeof(secret));	ChapSendResponse(cstate);}/* * ChapReceiveResponse - Receive and process response. */static void ChapReceiveResponse(chap_state *cstate, u_char *inp, int id, int len){	u_char *remmd, remmd_len;	int secret_len, old_state;	int code;	char rhostname[256];	MD5_CTX mdContext;	char secret[MAXSECRETLEN];	u_char hash[MD5_SIGNATURE_SIZE];		CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: Rcvd id %d.\n", id));		if (cstate->serverstate == CHAPSS_CLOSED ||			cstate->serverstate == CHAPSS_PENDING) {		CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: in state %d\n",		cstate->serverstate));		return;	}		if (id != cstate->chal_id)		return;			/* doesn't match ID of last challenge */		/*	* If we have received a duplicate or bogus Response,	* we have to send the same answer (Success/Failure)	* as we did for the first Response we saw.	*/	if (cstate->serverstate == CHAPSS_OPEN) {		ChapSendStatus(cstate, CHAP_SUCCESS);		return;	}	if (cstate->serverstate == CHAPSS_BADAUTH) {		ChapSendStatus(cstate, CHAP_FAILURE);		return;	}		if (len < 2) {		CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: rcvd short packet.\n"));		return;	}	GETCHAR(remmd_len, inp);		/* get length of MD */	remmd = inp;			/* get pointer to MD */	INCPTR(remmd_len, inp);		len -= sizeof (u_char) + remmd_len;	if (len < 0) {		CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: rcvd short packet.\n"));		return;	}		UNTIMEOUT(ChapChallengeTimeout, cstate);		if (len >= sizeof(rhostname))		len = sizeof(rhostname) - 1;	BCOPY(inp, rhostname, len);	rhostname[len] = '\000';		CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: received name field: %s\n",				rhostname));		/*	* Get secret for authenticating them with us,	* do the hash ourselves, and compare the result.	*/	code = CHAP_FAILURE;	if (!get_secret(cstate->unit, rhostname, cstate->chal_name,	secret, &secret_len, 1)) {/*        CHAPDEBUG((LOG_WARNING, TL_CHAP, "No CHAP secret found for authenticating %s\n", rhostname)); */		CHAPDEBUG((LOG_WARNING, "No CHAP secret found for authenticating %s\n",		rhostname));	} else {			/*  generate MD based on negotiated type */		switch (cstate->chal_type) { 				case CHAP_DIGEST_MD5:		/* only MD5 is defined for now */			if (remmd_len != MD5_SIGNATURE_SIZE)				break;			/* it's not even the right length */			MD5Init(&mdContext);			MD5Update(&mdContext, &cstate->chal_id, 1);			MD5Update(&mdContext, (u_char*)secret, secret_len);			MD5Update(&mdContext, cstate->challenge, cstate->chal_len);			MD5Final(hash, &mdContext); 						/* compare local and remote MDs and send the appropriate status */			if (memcmp (hash, remmd, MD5_SIGNATURE_SIZE) == 0)				code = CHAP_SUCCESS;	/* they are the same! */			break;				default:			CHAPDEBUG((LOG_INFO, "unknown digest type %d\n", cstate->chal_type));		}	}		BZERO(secret, sizeof(secret));	ChapSendStatus(cstate, code);		if (code == CHAP_SUCCESS) {		old_state = cstate->serverstate;		cstate->serverstate = CHAPSS_OPEN;		if (old_state == CHAPSS_INITIAL_CHAL) {			auth_peer_success(cstate->unit, PPP_CHAP, rhostname, len);		}		if (cstate->chal_interval != 0)			TIMEOUT(ChapRechallenge, cstate, cstate->chal_interval);	} else {		CHAPDEBUG((LOG_ERR, "CHAP peer authentication failed\n"));		cstate->serverstate = CHAPSS_BADAUTH;		auth_peer_fail(cstate->unit, PPP_CHAP);	}}/* * ChapReceiveSuccess - Receive Success */static void ChapReceiveSuccess(chap_state *cstate, u_char *inp, u_char id, int len){	CHAPDEBUG((LOG_INFO, "ChapReceiveSuccess: Rcvd id %d.\n", id));		if (cstate->clientstate == CHAPCS_OPEN)		/* presumably an answer to a duplicate response */		return;		if (cstate->clientstate != CHAPCS_RESPONSE) {		/* don't know what this is */		CHAPDEBUG((LOG_INFO, "ChapReceiveSuccess: in state %d\n",			   cstate->clientstate));		return;	}		UNTIMEOUT(ChapResponseTimeout, cstate);		/*	 * Print message.	 */	if (len > 0)		PRINTMSG(inp, len);		cstate->clientstate = CHAPCS_OPEN;		auth_withpeer_success(cstate->unit, PPP_CHAP);}/* * ChapReceiveFailure - Receive failure. */static void ChapReceiveFailure(chap_state *cstate, u_char *inp, u_char id, int len){	CHAPDEBUG((LOG_INFO, "ChapReceiveFailure: Rcvd id %d.\n", id));		if (cstate->clientstate != CHAPCS_RESPONSE) {		/* don't know what this is */		CHAPDEBUG((LOG_INFO, "ChapReceiveFailure: in state %d\n",			   cstate->clientstate));		return;	}		UNTIMEOUT(ChapResponseTimeout, cstate);		/*	 * Print message.	 */	if (len > 0)		PRINTMSG(inp, len);		CHAPDEBUG((LOG_ERR, "CHAP authentication failed\n"));	auth_withpeer_fail(cstate->unit, PPP_CHAP);}/* * ChapSendChallenge - Send an Authenticate challenge. */static void ChapSendChallenge(chap_state *cstate){	u_char *outp;	int chal_len, name_len;	int outlen;		chal_len = cstate->chal_len;	name_len = strlen(cstate->chal_name);	outlen = CHAP_HEADERLEN + sizeof (u_char) + chal_len + name_len;	outp = outpacket_buf[cstate->unit];		MAKEHEADER(outp, PPP_CHAP);		/* paste in a CHAP header */		PUTCHAR(CHAP_CHALLENGE, outp);	PUTCHAR(cstate->chal_id, outp);	PUTSHORT(outlen, outp);		PUTCHAR(chal_len, outp);		/* put length of challenge */	BCOPY(cstate->challenge, outp, chal_len);	INCPTR(chal_len, outp);		BCOPY(cstate->chal_name, outp, name_len);	/* append hostname */		pppWrite(cstate->unit, outpacket_buf[cstate->unit], outlen + PPP_HDRLEN);		CHAPDEBUG((LOG_INFO, "ChapSendChallenge: Sent id %d.\n", cstate->chal_id));		TIMEOUT(ChapChallengeTimeout, cstate, cstate->timeouttime);	++cstate->chal_transmits;}/* * ChapSendStatus - Send a status response (ack or nak). */static void ChapSendStatus(chap_state *cstate, int code){	u_char *outp;	int outlen, msglen;	char msg[256];		if (code == CHAP_SUCCESS)		strcpy(msg, "Welcome!");	else		strcpy(msg, "I don't like you.  Go 'way.");	msglen = strlen(msg);		outlen = CHAP_HEADERLEN + msglen;	outp = outpacket_buf[cstate->unit];		MAKEHEADER(outp, PPP_CHAP);		/* paste in a header */		PUTCHAR(code, outp);	PUTCHAR(cstate->chal_id, outp);	PUTSHORT(outlen, outp);	BCOPY(msg, outp, msglen);	pppWrite(cstate->unit, outpacket_buf[cstate->unit], outlen + PPP_HDRLEN);		CHAPDEBUG((LOG_INFO, "ChapSendStatus: Sent code %d, id %d.\n", code,	       cstate->chal_id));}/* * ChapGenChallenge is used to generate a pseudo-random challenge string of * a pseudo-random length between min_len and max_len.  The challenge * string and its length are stored in *cstate, and various other fields of * *cstate are initialized. */static void ChapGenChallenge(chap_state *cstate){	int chal_len;	u_char *ptr = cstate->challenge;	int i;		/* pick a random challenge length between MIN_CHALLENGE_LENGTH and 	   MAX_CHALLENGE_LENGTH */  	chal_len = (unsigned)				((((magic() >> 16) *			        (MAX_CHALLENGE_LENGTH - MIN_CHALLENGE_LENGTH)) >> 16)			     + MIN_CHALLENGE_LENGTH);	cstate->chal_len = chal_len;	cstate->chal_id = ++cstate->id;	cstate->chal_transmits = 0;		/* generate a random string */	for (i = 0; i < chal_len; i++ )		*ptr++ = (char) (magic() & 0xff);}/* * ChapSendResponse - send a response packet with values as specified * in *cstate. *//* ARGSUSED */static void ChapSendResponse(chap_state *cstate){	u_char *outp;	int outlen, md_len, name_len;		md_len = cstate->resp_length;	name_len = strlen(cstate->resp_name);	outlen = CHAP_HEADERLEN + sizeof (u_char) + md_len + name_len;	outp = outpacket_buf[cstate->unit];		MAKEHEADER(outp, PPP_CHAP);		PUTCHAR(CHAP_RESPONSE, outp);	/* we are a response */	PUTCHAR(cstate->resp_id, outp);	/* copy id from challenge packet */	PUTSHORT(outlen, outp);			/* packet length */		PUTCHAR(md_len, outp);			/* length of MD */	BCOPY(cstate->response, outp, md_len);		/* copy MD to buffer */	INCPTR(md_len, outp);		BCOPY(cstate->resp_name, outp, name_len);	/* append our name */		/* send the packet */	pppWrite(cstate->unit, outpacket_buf[cstate->unit], outlen + PPP_HDRLEN);		cstate->clientstate = CHAPCS_RESPONSE;	TIMEOUT(ChapResponseTimeout, cstate, cstate->timeouttime);	++cstate->resp_transmits;}/* * ChapPrintPkt - print the contents of a CHAP packet. */static int ChapPrintPkt(	u_char *p,	int plen,	void (*printer) (void *, char *, ...),	void *arg){	int code, id, len;	int clen, nlen;	u_char x;		if (plen < CHAP_HEADERLEN)		return 0;	GETCHAR(code, p);	GETCHAR(id, p);	GETSHORT(len, p);	if (len < CHAP_HEADERLEN || len > plen)		return 0;		if (code >= 1 && code <= sizeof(ChapCodenames) / sizeof(char *))		printer(arg, " %s", ChapCodenames[code-1]);	else		printer(arg, " code=0x%x", code);	printer(arg, " id=0x%x", id);	len -= CHAP_HEADERLEN;	switch (code) {	case CHAP_CHALLENGE:	case CHAP_RESPONSE:		if (len < 1)			break;		clen = p[0];		if (len < clen + 1)			break;		++p;		nlen = len - clen - 1;		printer(arg, " <");		for (; clen > 0; --clen) {			GETCHAR(x, p);			printer(arg, "%.2x", x);		}		printer(arg, ">, name = %.*Z", nlen, p);		break;	case CHAP_FAILURE:	case CHAP_SUCCESS:		printer(arg, " %.*Z", len, p);		break;	default:		for (clen = len; clen > 0; --clen) {			GETCHAR(x, p);			printer(arg, " %.2x", x);		}	}		return len + CHAP_HEADERLEN;}#endif#endif /* PPP_SUPPORT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产欧美一区二区18| 91成人国产精品| 国产女主播一区| 国产成人综合在线| 国产精品美日韩| 色爱区综合激月婷婷| 亚洲成a人片在线观看中文| 欧美日韩一区二区在线观看| 奇米精品一区二区三区在线观看 | 精品少妇一区二区三区日产乱码 | 亚洲一区二区精品视频| 欧美日本在线视频| 国内精品第一页| 亚洲色图一区二区| 91麻豆精品国产| 国产成人av一区二区三区在线 | 久久久不卡网国产精品二区| 成人黄色在线视频| 天天综合网天天综合色| 久久久久久夜精品精品免费| 99视频国产精品| 日本少妇一区二区| 国产精品三级视频| 欧美精品视频www在线观看| 精品一区二区三区av| 国产精品久久久久久久第一福利 | 精品久久人人做人人爱| 99精品偷自拍| 久草热8精品视频在线观看| 中文字幕不卡的av| 欧美精品免费视频| 成人性生交大合| 蜜乳av一区二区| 亚洲精品欧美综合四区| 久久先锋影音av鲁色资源网| 99精品视频在线免费观看| 麻豆精品一区二区综合av| 亚洲婷婷综合色高清在线| 2021中文字幕一区亚洲| 欧美在线你懂的| 成人app网站| 精品一区二区三区不卡| 亚洲国产成人va在线观看天堂| 国产亚洲精品久| 在线不卡一区二区| 99精品欧美一区二区三区综合在线| 日韩高清一级片| 尤物av一区二区| 中文一区在线播放| 日韩精品最新网址| 欧美精品1区2区| 91亚洲午夜精品久久久久久| 精品一区二区在线观看| 日韩av一区二区三区| 一二三四区精品视频| 国产精品久久久久aaaa| 久久九九99视频| 欧美一级片在线看| 欧美日韩不卡一区二区| 色狠狠av一区二区三区| 99久久精品久久久久久清纯| 国产成人av自拍| 国产精品99久久久久久久vr| 精品一区二区久久久| 奇米在线7777在线精品 | 激情五月激情综合网| 天使萌一区二区三区免费观看| 亚洲激情av在线| 一区二区三区在线观看动漫| 国产精品电影院| 成人免费在线视频| 国产精品国产成人国产三级| 国产精品嫩草影院av蜜臀| 中文文精品字幕一区二区| 亚洲国产高清在线| 国产精品久久久久三级| 国产精品成人一区二区艾草| 亚洲天堂成人网| 亚洲一区二区美女| 五月婷婷久久丁香| 日韩一区精品字幕| 蜜臀av一区二区在线观看 | 国产午夜精品一区二区| 国产性色一区二区| 国产精品久久久久影院| 亚洲视频在线一区二区| 亚洲一区二区三区在线| 日韩精品五月天| 久久福利资源站| 国产成人精品一区二| 成人网在线免费视频| 色老汉av一区二区三区| 欧美日韩一区二区三区在线看| 91精品欧美福利在线观看| 精品乱码亚洲一区二区不卡| 久久久久久久国产精品影院| 国产精品无人区| 亚洲第一综合色| 精品综合久久久久久8888| 国产在线看一区| www.成人在线| 欧美日韩电影在线播放| 欧美大胆人体bbbb| 国产精品久久精品日日| 亚洲一区二区在线观看视频| 麻豆精品一二三| 91丝袜美腿高跟国产极品老师 | 日产国产欧美视频一区精品| 国产一区二区看久久| 99riav一区二区三区| 欧美高清精品3d| 亚洲国产精华液网站w| 亚洲国产日产av| 国产成人免费网站| 欧美午夜精品久久久| 久久综合一区二区| 亚洲激情五月婷婷| 国产一区二区三区国产| 色婷婷国产精品综合在线观看| 日韩三级中文字幕| 亚洲视频一区二区在线观看| 美女诱惑一区二区| 色婷婷av一区二区三区软件| 精品国产91乱码一区二区三区| 亚洲视频一二三| 国产在线观看免费一区| 欧美日韩久久一区| 久久久久久99精品| 日本aⅴ免费视频一区二区三区| www.99精品| 久久久精品免费网站| 亚洲成a人v欧美综合天堂| 99这里只有久久精品视频| 日韩欧美黄色影院| 午夜a成v人精品| 欧洲一区在线电影| 中文字幕一区二区三区四区不卡| 久久99蜜桃精品| 欧美日韩成人综合| 亚洲一级电影视频| 色综合天天综合狠狠| 国产香蕉久久精品综合网| 久久成人免费网| 欧美一区中文字幕| 天天综合网天天综合色| 欧美系列日韩一区| 一区二区在线免费观看| 99久久99久久综合| 中文字幕在线视频一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美一区二区三区在| 一区二区三区国产精品| 99久久精品免费看国产免费软件| 欧美国产日本韩| 国产精品夜夜爽| 国产婷婷色一区二区三区四区 | 成人高清免费在线播放| 精品国产91洋老外米糕| 久久99精品久久久久久国产越南 | 亚洲国产精品成人综合 | 92国产精品观看| 中文字幕一区二区不卡| 成人毛片在线观看| 综合精品久久久| 99v久久综合狠狠综合久久| 国产精品久久久久久久久免费樱桃| 懂色一区二区三区免费观看| 日本一区二区三区四区| 国产91丝袜在线18| 中文字幕在线一区| 欧美专区日韩专区| 日韩精品免费专区| 日韩小视频在线观看专区| 久久精品99国产国产精| 久久久五月婷婷| 成+人+亚洲+综合天堂| 亚洲另类春色国产| 欧美绝品在线观看成人午夜影视| 五月天久久比比资源色| 日韩欧美国产wwwww| 韩国女主播一区| 国产精品福利一区| 欧美日韩国产色站一区二区三区| 日韩高清不卡在线| 国产性天天综合网| 色综合久久久久久久| 丝袜亚洲精品中文字幕一区| 日韩欧美色综合网站| 高清不卡在线观看| 亚洲综合免费观看高清在线观看| 欧美一区2区视频在线观看| 国产一区美女在线| 中文字幕一区二区三区四区| 欧美日韩亚洲综合| 激情图片小说一区| 亚洲图片另类小说| 日韩免费一区二区| 99久久精品免费看国产免费软件| 日韩精品亚洲一区| 中文字幕中文在线不卡住|