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

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

?? lcp.c

?? lwip在ucos上的移植
?? C
?? 第 1 頁 / 共 4 頁
字號:
			sprintf(&traceBuf[traceNdx], " unknown %d", citype);			traceNdx = strlen(traceBuf);#endif			orc = CONFREJ;			break;		}			endswitch:#if TRACELCP		if (traceNdx >= 80 - 32) {			LCPDEBUG((LOG_INFO, "lcp_reqci: rcvd%s\n", traceBuf));			traceNdx = 0;		}#endif		if (orc == CONFACK &&		/* Good CI */				rc != CONFACK)		/*  but prior CI wasnt? */			continue;			/* Don't send this one */				if (orc == CONFNAK) {		/* Nak this CI? */			if (reject_if_disagree	/* Getting fed up with sending NAKs? */					&& citype != CI_MAGICNUMBER) {				orc = CONFREJ;		/* Get tough if so */			} 			else {				if (rc == CONFREJ)	/* Rejecting prior CI? */					continue;		/* Don't send this one */				rc = CONFNAK;			}		}		if (orc == CONFREJ) {		/* Reject this CI */			rc = CONFREJ;			if (cip != rejp)		/* Need to move rejected CI? */				BCOPY(cip, rejp, cilen); /* Move it */			INCPTR(cilen, rejp);	/* Update output pointer */		}	}		/*	 * If we wanted to send additional NAKs (for unsent CIs), the	 * code would go here.  The extra NAKs would go at *nakp.	 * At present there are no cases where we want to ask the	 * peer to negotiate an option.	 */		switch (rc) {	case CONFACK:		*lenp = (int)(next - inp);		break;	case CONFNAK:		/*		 * Copy the Nak'd options from the nak_buffer to the caller's buffer.		 */		*lenp = (int)(nakp - nak_buffer);		BCOPY(nak_buffer, inp, *lenp);		break;	case CONFREJ:		*lenp = (int)(rejp - inp);		break;	}	#if TRACELCP > 0	if (traceNdx > 0) {		LCPDEBUG((LOG_INFO, "lcp_reqci: %s\n", traceBuf));	}#endif	LCPDEBUG((LOG_INFO, "lcp_reqci: returning CONF%s.\n", CODENAME(rc)));	return (rc);			/* Return final code */}/* * lcp_up - LCP has come UP. */static void lcp_up(fsm *f){	lcp_options *wo = &lcp_wantoptions[f->unit];	lcp_options *ho = &lcp_hisoptions[f->unit];	lcp_options *go = &lcp_gotoptions[f->unit];	lcp_options *ao = &lcp_allowoptions[f->unit];		if (!go->neg_magicnumber)		go->magicnumber = 0;	if (!ho->neg_magicnumber)		ho->magicnumber = 0;		/*	* Set our MTU to the smaller of the MTU we wanted and	* the MRU our peer wanted.  If we negotiated an MRU,	* set our MRU to the larger of value we wanted and	* the value we got in the negotiation.	*/	ppp_send_config(f->unit, LWIP_MIN(ao->mru, (ho->neg_mru? ho->mru: PPP_MRU)),				(ho->neg_asyncmap? ho->asyncmap: 0xffffffffl),				ho->neg_pcompression, ho->neg_accompression);	/*	* If the asyncmap hasn't been negotiated, we really should	* set the receive asyncmap to ffffffff, but we set it to 0	* for backwards contemptibility.	*/	ppp_recv_config(f->unit, (go->neg_mru? LWIP_MAX(wo->mru, go->mru): PPP_MRU),				(go->neg_asyncmap? go->asyncmap: 0x00000000),				go->neg_pcompression, go->neg_accompression);		if (ho->neg_mru)		peer_mru[f->unit] = ho->mru;		lcp_echo_lowerup(f->unit);  /* Enable echo messages */		link_established(f->unit);}/* * lcp_down - LCP has gone DOWN. * * Alert other protocols. */static void lcp_down(fsm *f){	lcp_options *go = &lcp_gotoptions[f->unit];		lcp_echo_lowerdown(f->unit);		link_down(f->unit);		ppp_send_config(f->unit, PPP_MRU, 0xffffffffl, 0, 0);	ppp_recv_config(f->unit, PPP_MRU,				(go->neg_asyncmap? go->asyncmap: 0x00000000),				go->neg_pcompression, go->neg_accompression);	peer_mru[f->unit] = PPP_MRU;}/* * lcp_starting - LCP needs the lower layer up. */static void lcp_starting(fsm *f){	link_required(f->unit);}/* * lcp_finished - LCP has finished with the lower layer. */static void lcp_finished(fsm *f){	link_terminated(f->unit);}#if 0/* * print_string - print a readable representation of a string using * printer. */static void print_string(    char *p,    int len,    void (*printer) (void *, char *, ...),    void *arg){    int c;        printer(arg, "\"");    for (; len > 0; --len) {        c = *p++;        if (' ' <= c && c <= '~') {            if (c == '\\' || c == '"')                printer(arg, "\\");            printer(arg, "%c", c);        } else {            switch (c) {            case '\n':                printer(arg, "\\n");                break;            case '\r':                printer(arg, "\\r");                break;            case '\t':                printer(arg, "\\t");                break;            default:                printer(arg, "\\%.3o", c);            }        }    }    printer(arg, "\"");}/* * lcp_printpkt - print the contents of an LCP packet. */static char *lcp_codenames[] = {	"ConfReq", "ConfAck", "ConfNak", "ConfRej",	"TermReq", "TermAck", "CodeRej", "ProtRej",	"EchoReq", "EchoRep", "DiscReq"};static int lcp_printpkt(	u_char *p,	int plen,	void (*printer) (void *, char *, ...),	void *arg){	int code, id, len, olen;	u_char *pstart, *optend;	u_short cishort;	u32_t cilong;		if (plen < HEADERLEN)		return 0;	pstart = p;	GETCHAR(code, p);	GETCHAR(id, p);	GETSHORT(len, p);	if (len < HEADERLEN || len > plen)		return 0;		if (code >= 1 && code <= sizeof(lcp_codenames) / sizeof(char *))		printer(arg, " %s", lcp_codenames[code-1]);	else		printer(arg, " code=0x%x", code);	printer(arg, " id=0x%x", id);	len -= HEADERLEN;	switch (code) {	case CONFREQ:	case CONFACK:	case CONFNAK:	case CONFREJ:		/* print option list */		while (len >= 2) {			GETCHAR(code, p);			GETCHAR(olen, p);			p -= 2;			if (olen < 2 || olen > len) {				break;			}			printer(arg, " <");			len -= olen;			optend = p + olen;			switch (code) {			case CI_MRU:				if (olen == CILEN_SHORT) {					p += 2;					GETSHORT(cishort, p);					printer(arg, "mru %d", cishort);				}				break;			case CI_ASYNCMAP:				if (olen == CILEN_LONG) {					p += 2;					GETLONG(cilong, p);					printer(arg, "asyncmap 0x%lx", cilong);				}				break;			case CI_AUTHTYPE:				if (olen >= CILEN_SHORT) {					p += 2;					printer(arg, "auth ");					GETSHORT(cishort, p);					switch (cishort) {					case PPP_PAP:						printer(arg, "pap");						break;					case PPP_CHAP:						printer(arg, "chap");						break;					default:						printer(arg, "0x%x", cishort);					}				}				break;			case CI_QUALITY:				if (olen >= CILEN_SHORT) {					p += 2;					printer(arg, "quality ");					GETSHORT(cishort, p);					switch (cishort) {					case PPP_LQR:						printer(arg, "lqr");						break;					default:						printer(arg, "0x%x", cishort);					}				}				break;			case CI_CALLBACK:				if (olen >= CILEN_CHAR) {					p += 2;					printer(arg, "callback ");					GETSHORT(cishort, p);					switch (cishort) {					case CBCP_OPT:						printer(arg, "CBCP");						break;					default:						printer(arg, "0x%x", cishort);					}				}				break;			case CI_MAGICNUMBER:				if (olen == CILEN_LONG) {					p += 2;					GETLONG(cilong, p);					printer(arg, "magic 0x%x", cilong);				}				break;			case CI_PCOMPRESSION:				if (olen == CILEN_VOID) {					p += 2;					printer(arg, "pcomp");				}				break;			case CI_ACCOMPRESSION:				if (olen == CILEN_VOID) {					p += 2;					printer(arg, "accomp");				}				break;			}			while (p < optend) {				GETCHAR(code, p);				printer(arg, " %.2x", code);			}			printer(arg, ">");		}		break;		case TERMACK:	case TERMREQ:		if (len > 0 && *p >= ' ' && *p < 0x7f) {			printer(arg, " ");			print_string((char*)p, len, printer, arg);			p += len;			len = 0;		}		break;		case ECHOREQ:	case ECHOREP:	case DISCREQ:		if (len >= 4) {			GETLONG(cilong, p);			printer(arg, " magic=0x%x", cilong);			p += 4;			len -= 4;		}		break;	}		/* print the rest of the bytes in the packet */	for (; len > 0; --len) {		GETCHAR(code, p);		printer(arg, " %.2x", code);	}		return (int)(p - pstart);}#endif/* * Time to shut down the link because there is nothing out there. */static void LcpLinkFailure (fsm *f){	if (f->state == OPENED) {		LCPDEBUG((LOG_INFO, "No response to %d echo-requests\n", lcp_echos_pending));		LCPDEBUG((LOG_NOTICE, "Serial link appears to be disconnected.\n"));		lcp_close(f->unit, "Peer not responding");	}}/* * Timer expired for the LCP echo requests from this process. */static void LcpEchoCheck (fsm *f){	LcpSendEchoRequest (f);		/*	 * Start the timer for the next interval.	 */	LWIP_ASSERT("lcp_echo_timer_running == 0", lcp_echo_timer_running == 0);	TIMEOUT (LcpEchoTimeout, f, lcp_echo_interval);	lcp_echo_timer_running = 1;}/* * LcpEchoTimeout - Timer expired on the LCP echo */static void LcpEchoTimeout (void *arg){	if (lcp_echo_timer_running != 0) {		lcp_echo_timer_running = 0;		LcpEchoCheck ((fsm *) arg);	}}/* * LcpEchoReply - LCP has received a reply to the echo */static void lcp_received_echo_reply (fsm *f, int id, u_char *inp, int len){	u32_t magic;		(void)id;	/* Check the magic number - don't count replies from ourselves. */	if (len < 4) {		LCPDEBUG((LOG_WARNING, "lcp: received short Echo-Reply, length %d\n", len));		return;	}	GETLONG(magic, inp);	if (lcp_gotoptions[f->unit].neg_magicnumber			&& magic == lcp_gotoptions[f->unit].magicnumber) {		LCPDEBUG((LOG_WARNING, "appear to have received our own echo-reply!\n"));		return;	}		/* Reset the number of outstanding echo frames */	lcp_echos_pending = 0;}/* * LcpSendEchoRequest - Send an echo request frame to the peer */static void LcpSendEchoRequest (fsm *f){	u32_t lcp_magic;	u_char pkt[4], *pktp;		/*	* Detect the failure of the peer at this point.	*/	if (lcp_echo_fails != 0) {		if (lcp_echos_pending++ >= lcp_echo_fails) {			LcpLinkFailure(f);			lcp_echos_pending = 0;		}	}		/*	* Make and send the echo request frame.	*/	if (f->state == OPENED) {		lcp_magic = lcp_gotoptions[f->unit].magicnumber;		pktp = pkt;		PUTLONG(lcp_magic, pktp);		fsm_sdata(f, ECHOREQ, (u_char)(lcp_echo_number++ & 0xFF), pkt, (int)(pktp - pkt));	}}/* * lcp_echo_lowerup - Start the timer for the LCP frame */static void lcp_echo_lowerup (int unit){	fsm *f = &lcp_fsm[unit];		/* Clear the parameters for generating echo frames */	lcp_echos_pending      = 0;	lcp_echo_number        = 0;	lcp_echo_timer_running = 0;		/* If a timeout interval is specified then start the timer */	if (lcp_echo_interval != 0)		LcpEchoCheck (f);}/* * lcp_echo_lowerdown - Stop the timer for the LCP frame */static void lcp_echo_lowerdown (int unit){	fsm *f = &lcp_fsm[unit];		if (lcp_echo_timer_running != 0) {		UNTIMEOUT (LcpEchoTimeout, f);		lcp_echo_timer_running = 0;	}}#endif /* PPP_SUPPORT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费电影一区| 一区二区三区成人在线视频| 国产欧美视频一区二区三区| 亚洲日本一区二区三区| 经典三级视频一区| 欧美日韩精品欧美日韩精品| 国产精品美女久久久久av爽李琼| 日韩影院在线观看| 色天使色偷偷av一区二区| 国产婷婷色一区二区三区在线| 亚洲成人1区2区| 色综合久久99| 自拍偷自拍亚洲精品播放| 韩国av一区二区三区在线观看| 色哟哟国产精品| 一色屋精品亚洲香蕉网站| 国产成都精品91一区二区三| 日韩一区二区三区在线观看| 怡红院av一区二区三区| 丁香亚洲综合激情啪啪综合| 精品国内二区三区| 蜜臀99久久精品久久久久久软件| 欧美久久一二区| 一区2区3区在线看| 色婷婷久久久久swag精品| 国产精品成人一区二区三区夜夜夜 | 成人午夜视频在线观看| 日韩亚洲欧美在线观看| 日韩制服丝袜先锋影音| 欧美精选在线播放| 亚洲18女电影在线观看| 欧美日韩久久久一区| 亚洲一本大道在线| 欧美三片在线视频观看| 亚洲国产sm捆绑调教视频| 欧美性猛片aaaaaaa做受| 综合激情成人伊人| 色视频一区二区| 亚洲综合小说图片| 欧美猛男男办公室激情| 亚洲一区二区黄色| 91精品国产美女浴室洗澡无遮挡| 丝袜诱惑亚洲看片| 欧美tk丨vk视频| 国产精品一品二品| 最新久久zyz资源站| 91丨国产丨九色丨pron| 亚洲韩国一区二区三区| 欧美亚洲丝袜传媒另类| 日日夜夜免费精品视频| 精品国产免费人成电影在线观看四季 | 18欧美亚洲精品| 日本丶国产丶欧美色综合| 一二三四区精品视频| 欧美高清hd18日本| 国产精品资源在线观看| 亚洲欧美偷拍另类a∨色屁股| 色久优优欧美色久优优| 手机精品视频在线观看| 久久久久久亚洲综合影院红桃| 不卡电影免费在线播放一区| 亚洲免费av高清| 欧美电影免费观看高清完整版在| 国产精品一级在线| 一区二区高清免费观看影视大全 | 亚洲同性gay激情无套| 欧美日韩国产美| 国产一区二区三区综合| 亚洲美女电影在线| 精品国产乱码久久久久久影片| 成人福利在线看| 日韩精品电影在线观看| 国产精品每日更新| 日韩欧美高清dvd碟片| 99久久久久久99| 美女国产一区二区三区| 亚洲日本电影在线| 精品福利一区二区三区| 在线区一区二视频| 国产精品自拍毛片| 五月激情六月综合| 国产精品电影一区二区三区| 欧美一区二区三区视频| 91麻豆.com| 国产精品一级黄| 美女视频一区二区三区| 亚洲老司机在线| 国产精品私人影院| 欧美tk—视频vk| 欧美日韩亚洲另类| 91精彩视频在线观看| 国产精品一品二品| 裸体在线国模精品偷拍| 亚洲电影中文字幕在线观看| 国产精品天美传媒| 久久久欧美精品sm网站| 91麻豆精品国产91久久久资源速度 | 日韩写真欧美这视频| 色婷婷综合五月| 成人精品小蝌蚪| 国产精品资源站在线| 久久精品国产免费| 麻豆精品视频在线观看| 亚洲国产精品久久久久婷婷884| 国产精品丝袜久久久久久app| 日韩免费成人网| 69久久夜色精品国产69蝌蚪网| 欧美亚洲愉拍一区二区| 欧美另类高清zo欧美| 色婷婷久久一区二区三区麻豆| 99久久久精品| 成人av网址在线| 成人综合婷婷国产精品久久免费| 国产一区二区精品久久91| 九色综合狠狠综合久久| 另类的小说在线视频另类成人小视频在线 | 看电影不卡的网站| 精品一区二区国语对白| 裸体在线国模精品偷拍| 久久99精品久久久久久久久久久久 | 日韩午夜激情视频| 日韩一级片网址| 欧美一区二区在线视频| 日韩无一区二区| 欧美变态凌虐bdsm| www一区二区| 久久久综合网站| 国产精品久久久久久久久免费樱桃| 国产喷白浆一区二区三区| 中文字幕欧美区| 成人欧美一区二区三区在线播放| 国产精品女人毛片| 中文字幕中文字幕中文字幕亚洲无线| 国产精品国产三级国产普通话蜜臀| 中文字幕在线视频一区| 亚洲视频免费在线观看| 亚洲一区二区视频在线观看| 日韩av一区二区三区四区| 国内精品在线播放| jizzjizzjizz欧美| 欧美亚洲一区三区| 日韩欧美在线123| 国产午夜精品福利| 一区二区视频在线| 免费成人性网站| 成人网在线免费视频| 色天天综合色天天久久| 日韩欧美国产综合一区 | 亚洲一区二区三区四区不卡| 亚洲成人在线免费| 国产乱码精品一区二区三区av | 自拍偷拍亚洲激情| 日本aⅴ免费视频一区二区三区| 国产一区二区三区不卡在线观看| av激情成人网| 欧美va亚洲va在线观看蝴蝶网| 久久久九九九九| 亚洲成av人**亚洲成av**| 久久se精品一区二区| 91麻豆文化传媒在线观看| 欧美成人福利视频| 一区二区三区四区乱视频| 蜜臀av性久久久久蜜臀av麻豆 | 中文字幕在线不卡一区| 石原莉奈一区二区三区在线观看| 黄色日韩网站视频| 欧美精三区欧美精三区| 国产精品久久久久婷婷二区次| 日韩电影在线免费看| caoporn国产精品| 久久婷婷色综合| 亚洲午夜久久久久久久久久久| 国产一区二区三区黄视频 | 综合久久给合久久狠狠狠97色| 老司机精品视频一区二区三区| 94色蜜桃网一区二区三区| 欧美成人高清电影在线| 亚洲最大色网站| av毛片久久久久**hd| 久久久久久黄色| 久久aⅴ国产欧美74aaa| 91浏览器打开| 亚洲欧洲精品一区二区三区不卡| 久久66热偷产精品| 日韩限制级电影在线观看| 性欧美大战久久久久久久久| 色综合久久六月婷婷中文字幕| 亚洲国产精品99久久久久久久久| 蜜桃视频在线观看一区| 欧美少妇bbb| 亚洲成人精品一区| 欧美性受xxxx| 亚洲一本大道在线| 欧美三级在线视频| 亚洲国产另类av| 欧美日韩中字一区| 亚洲国产综合91精品麻豆| 一本一道久久a久久精品综合蜜臀| 亚洲线精品一区二区三区| jiyouzz国产精品久久|