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

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

?? mpreassemble.c

?? 這是全套的PPP協議的源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
	mp_fragment = (MP_FRAGMENT_CLASS *) SLL_FIRST 					(&(pStackData->bundle.receiving_end.buffer.ppp_fragments));	while (mp_fragment->indexInList != index_of_first_ending_fragment)		{		mp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT 											((SL_NODE *) mp_fragment);		}	/* handling first and non end fragment loss */	if (M > mp_fragment->sequence_number)		{		does_M_bear_beginning_bit = does_fragment_bear_beginning_bit (mp_fragment_M);				discard_fragments_up_to_index (pMpFramingLayerState, index_of_M, TRUE);		if (does_M_bear_beginning_bit == FALSE)			{			discard_fragments_up_to_index (pMpFramingLayerState, 							pStackData->bundle.receiving_end.buffer.							number_of_ppp_fragments_buffered, TRUE);						pStackData->bundle.receiving_end.buffer.						receiver_is_resynchronizing = TRUE;			#ifdef PPP_DEBUG			printf ("MP: lost fragment. Discard up to 0x%x  bundle 0x%x\n",					 (int) M, (int) pMpFramingLayerState->stackObj);#endif /* PPP_DEBUG */			}		else			{			mp_reassemble_ppp_packet (pMpFramingLayerState, current_fragment_index);			#ifdef PPP_DEBUG			printf ("MP: lost fragment. Discard up to 0x%x  bundle 0x%x\n",					 (int) M, (int) pMpFramingLayerState->stackObj);#endif /* PPP_DEBUG */			}		}	}/********************************************************************************* discard_fragment_range - discrad the fragments buffered, in a particular range** RETURNS: N/A*/LOCAL void discard_fragment_range    ( 	PFW_PLUGIN_OBJ_STATE 	*pMpFramingLayerState,	ULONG 					first,	ULONG 					last,	BOOL					free_the_packet	)	{	MP_FRAGMENT_CLASS	*first_mp_fragment = NULL;	MP_FRAGMENT_CLASS	*last_mp_fragment = NULL;	MP_FRAGMENT_CLASS	*next_mp_fragment = NULL;	MP_FRAMING_LAYER_STACK_DATA *pStackData = (MP_FRAMING_LAYER_STACK_DATA *)												pMpFramingLayerState->stackData;	if (pMpFramingLayerState == NULL)		return;	/* get the first node in the list */	first_mp_fragment = (MP_FRAGMENT_CLASS *) SLL_FIRST 					(&(pStackData->bundle.receiving_end.buffer.ppp_fragments));	/* get the first node in the list */	last_mp_fragment = (MP_FRAGMENT_CLASS *) SLL_FIRST 					(&(pStackData->bundle.receiving_end.buffer.ppp_fragments));	/* traverse upto the index (first) in the list and get its pointer */	while (first_mp_fragment->indexInList != (USHORT) first)		{		first_mp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT 								((SL_NODE *) first_mp_fragment);		}	/* traverse upto the index (last) in the list and get its pointer */		while (last_mp_fragment->indexInList != (USHORT) last)		{		last_mp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT 								((SL_NODE *) last_mp_fragment);		}	/* traverse from first to last and discard the fragment everytime */	while (first_mp_fragment != last_mp_fragment)		{		next_mp_fragment = (MP_FRAGMENT_CLASS *) 							SLL_NEXT((SL_NODE *) first_mp_fragment);		discard_a_ppp_fragment (pMpFramingLayerState, 							first_mp_fragment, free_the_packet);		first_mp_fragment = next_mp_fragment;		}	/* we have not cleared the last one, clear it here */	discard_a_ppp_fragment (pMpFramingLayerState, last_mp_fragment, free_the_packet);	/* update the number of fragments buffered */	pStackData->bundle.receiving_end.buffer.number_of_ppp_fragments_buffered -= 	(USHORT) (last - first + 1);	}/********************************************************************************* discard_fragments_up_to_index - discard the fragments in the buffer upto the* the given index.** RETURNS: N/A*/LOCAL void discard_fragments_up_to_index    ( 	PFW_PLUGIN_OBJ_STATE 	*pMpFramingLayerState,	USHORT 					to_index,	BOOL					free_the_packet	)	{	MP_FRAGMENT_CLASS *temp_fragment = NULL;	MP_FRAGMENT_CLASS *temporary_fragment = NULL;	MP_FRAGMENT_CLASS *next_fragment = NULL;	MP_FRAMING_LAYER_STACK_DATA *pStackData = (MP_FRAMING_LAYER_STACK_DATA *)												pMpFramingLayerState->stackData;	MP_FRAGMENT_CLASS *mp_fragment = (MP_FRAGMENT_CLASS *) SLL_FIRST 							(&pStackData->bundle.receiving_end.buffer.ppp_fragments);	if (pMpFramingLayerState == NULL)		return;	if (to_index >= pStackData->bundle.receiving_end.buffer.						number_of_ppp_fragments_buffered)		{		while (mp_fragment != NULL)			{			/* from 0 to number of fragments buffered */			next_fragment = (MP_FRAGMENT_CLASS *) 							SLL_NEXT((SL_NODE *) mp_fragment);			discard_a_ppp_fragment (pMpFramingLayerState, 									mp_fragment, free_the_packet);			mp_fragment = next_fragment;			}		}	else		{		temp_fragment = mp_fragment;		while (mp_fragment->indexInList != to_index)			mp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) mp_fragment);		while (temp_fragment != mp_fragment)			{			temporary_fragment = temp_fragment;			temp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT 												((SL_NODE *) temp_fragment);						discard_a_ppp_fragment (pMpFramingLayerState, 									temporary_fragment, free_the_packet);			}		}	pStackData->bundle.receiving_end.buffer.number_of_ppp_fragments_buffered = 		(USHORT) (pStackData->bundle.receiving_end.buffer.						number_of_ppp_fragments_buffered - to_index);	}/********************************************************************************* discard_a_ppp_fragment - discrad a particular PPP fragement from the buffer** RETURNS: N/A*/LOCAL void discard_a_ppp_fragment    ( 	PFW_PLUGIN_OBJ_STATE 	*pMpFramingLayerState,	MP_FRAGMENT_CLASS		*mp_fragment,	BOOL					free_the_packet	)	{	MP_FRAGMENT_CLASS	*temp_fragment = NULL;	MP_FRAMING_LAYER_STACK_DATA *pStackData = (MP_FRAMING_LAYER_STACK_DATA *)												pMpFramingLayerState->stackData;	MP_FRAGMENT_CLASS	*prev_fragment = (MP_FRAGMENT_CLASS *) sllPrevious 				(&(pStackData->bundle.receiving_end.buffer.ppp_fragments), 				(SL_NODE *) mp_fragment);	if (mp_fragment == NULL)		return;		/* check for a fragment bearing a BEGIN Bit or ONLY_FRAGMENT(B & E) */	if (does_fragment_bear_beginning_bit (mp_fragment) == TRUE)		{		--pStackData->bundle.receiving_end.buffer.					number_of_beginning_fragments_buffered;		}	/* check for a fragment bearing an END Bit or ONLY_FRAGMENT(B & E) */	if (does_fragment_bear_ending_bit (mp_fragment) == TRUE)		{		--pStackData->bundle.receiving_end.buffer.					number_of_ending_fragments_buffered;		}	/* update the index numbers maintained in the structure */	temp_fragment = mp_fragment;	while (temp_fragment != NULL)		{		temp_fragment->indexInList = temp_fragment->indexInList - 1;		temp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT 									((SL_NODE *) temp_fragment);		}		/* check and free the MBLKs */	if (free_the_packet == TRUE)		{		netMblkClChainFree (mp_fragment->mblk_fragment); 		}	/* remove the node from the list */	sllRemove (&(pStackData->bundle.receiving_end.buffer.ppp_fragments), 			(SL_NODE *) mp_fragment, (SL_NODE *) prev_fragment);	/* free the fragment */            pfwFree ((void *) mp_fragment);		mp_fragment = NULL;		}/********************************************************************************* mp_get_M - find the current minimum of the most recently received sequence* number over all the member links in the bundle.** RETURNS: M*/ULONG mp_get_M    ( 	PFW_PLUGIN_OBJ_STATE	*pMpFramingLayerState	)	{				ULONG	M = 0;	 /* current minimum of the most recently received sequence number				  * over all the member links in the bundle. RFC 1717,p.10.				  */	USHORT	current_link = 0;		MP_FRAMING_LAYER_STACK_DATA	*pStackData = (MP_FRAMING_LAYER_STACK_DATA	*)												pMpFramingLayerState->stackData;	M = 0xFFFFFFFF;		for (current_link = 0x0000;		current_link < pStackData->bundle.receiving_end.no_of_links;		++current_link)		{		if (pStackData->bundle.receiving_end.			links [current_link].most_recently_received_sequence_number < M)			{			M = pStackData->bundle.receiving_end.					links [current_link].most_recently_received_sequence_number;			}		}	return (M);	}/******************************************************************************* search_for_duplicate_entries - search for duplicate sequence number** This function searches the buffer of fragments for duplicate sequence number.* If there is a duplicate entry found, it discards the fragment and frees the* mblk associated with it.*/LOCAL USHORT search_for_duplicate_entries 	(		PFW_PLUGIN_OBJ_STATE *pMpFramingLayerState,	ULONG *begin_fragment_index,	ULONG *end_fragment_index	)	{	MP_FRAGMENT_CLASS *temp_fragment = NULL;	MP_FRAGMENT_CLASS *next_fragment = NULL;	MP_FRAMING_LAYER_STACK_DATA	*pStackData = (MP_FRAMING_LAYER_STACK_DATA	*)												pMpFramingLayerState->stackData;	USHORT no_of_dup_entries = 0;	if (*begin_fragment_index < *end_fragment_index) /* B...C...E */		{ 				temp_fragment = (MP_FRAGMENT_CLASS *) SLL_FIRST 							(&pStackData->bundle.receiving_end.buffer.ppp_fragments);		/* move upto the begin fragment index */		while (temp_fragment->indexInList != *begin_fragment_index)			{			temp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) temp_fragment);			}				/* search from begin fragment to end fragment index */		while (temp_fragment->indexInList != *end_fragment_index)			{			next_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) temp_fragment);			if (next_fragment == NULL)				break;			if (next_fragment->sequence_number == temp_fragment->sequence_number)				{				discard_a_ppp_fragment (pMpFramingLayerState, next_fragment,										TRUE); 				/* update the end fragment index */				(*end_fragment_index)--;				no_of_dup_entries++;				pStackData->bundle.receiving_end.buffer.number_of_ppp_fragments_buffered--; 				}			temp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) temp_fragment);			}		} 	else 		/* E....C....B */		{ 		/* search from begin fragment to the last (no. of fragments buffered) */		temp_fragment = (MP_FRAGMENT_CLASS *) SLL_FIRST 							(&pStackData->bundle.receiving_end.buffer.ppp_fragments);		while (temp_fragment->indexInList != *begin_fragment_index)			{			temp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) temp_fragment);			}		while (temp_fragment != NULL)			{			next_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) temp_fragment);			if (next_fragment == NULL)				break;			if (next_fragment->sequence_number == temp_fragment->sequence_number)				{				discard_a_ppp_fragment (pMpFramingLayerState, next_fragment,										TRUE); 				no_of_dup_entries++;				pStackData->bundle.receiving_end.buffer.number_of_ppp_fragments_buffered--; 				}			temp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) temp_fragment);			}		/* search from first (0) upto the end fragment index */		temp_fragment = (MP_FRAGMENT_CLASS *) SLL_FIRST 							(&pStackData->bundle.receiving_end.buffer.ppp_fragments);				while (temp_fragment->indexInList != *end_fragment_index)			{					next_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) temp_fragment);			if (next_fragment == NULL)				break;			if (next_fragment->sequence_number == temp_fragment->sequence_number)				{				discard_a_ppp_fragment (pMpFramingLayerState, next_fragment,										TRUE); 				/* update both "end" and "begin" fragment indices */				(*end_fragment_index)--;				(*begin_fragment_index)--;				no_of_dup_entries++;				pStackData->bundle.receiving_end.buffer.number_of_ppp_fragments_buffered--; 				}			temp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *) temp_fragment);			}		}	return no_of_dup_entries;}		#if 0/******************************************************************************** ppp_buffer_print - prints the buffer in the bundle.** used for testing only...!*/LOCAL void ppp_buffer_print (PFW_PLUGIN_OBJ_STATE	*pMpFramingLayerState)	{	MP_FRAMING_LAYER_STACK_DATA *pStackData = (MP_FRAMING_LAYER_STACK_DATA *)												pMpFramingLayerState->stackData;	MP_FRAGMENT_CLASS *temp_fragment;	M_BLK_ID			pMblk = NULL;	temp_fragment = (MP_FRAGMENT_CLASS *) SLL_FIRST 						(&pStackData->bundle.receiving_end.buffer.ppp_fragments);	while (temp_fragment != NULL)		{		printf ("The fragment details are\n");		printf ("SQ NO is => 0x%x::indexInList is => 0x%x::Fragment Flag is => 0x%x\n", 				temp_fragment->sequence_number, temp_fragment->indexInList,			    temp_fragment->fragment_flag);		pMblk = temp_fragment->mblk_fragment;		printf("Fragment Data:\n ");		if (pMblk->mBlkHdr.mLen < 50)			mp_dump_data ((BYTE *)pMblk->mBlkHdr.mData, pMblk->mBlkHdr.mLen);		temp_fragment = (MP_FRAGMENT_CLASS *) SLL_NEXT ((SL_NODE *)temp_fragment);		}	}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女在线视频一区| 一区二区高清视频在线观看| 成人app在线| 狠狠色2019综合网| 欧美aaaaa成人免费观看视频| 亚洲综合激情网| 国产精品不卡一区二区三区| 国产午夜精品福利| 欧美国产一区在线| 亚洲国产岛国毛片在线| 国产精品久久久久久久久免费丝袜 | 在线精品国精品国产尤物884a| 国产精品系列在线观看| 国产在线精品国自产拍免费| 青青青爽久久午夜综合久久午夜 | 日韩女优毛片在线| 欧美区视频在线观看| 日本高清成人免费播放| 欧美日韩视频在线第一区| 在线不卡中文字幕播放| 精品剧情v国产在线观看在线| 久久精品夜色噜噜亚洲aⅴ| 国产欧美日韩激情| 一区二区三区在线视频观看58| 亚洲国产中文字幕| 奇米888四色在线精品| 国v精品久久久网| 不卡欧美aaaaa| 欧美三级中文字| 精品国产第一区二区三区观看体验| 国产无遮挡一区二区三区毛片日本 | 欧美日韩成人综合天天影院 | 精品一区二区在线观看| 懂色av一区二区三区免费看| 91麻豆免费看| 日韩三级在线免费观看| 国产精品人成在线观看免费 | 中文字幕av在线一区二区三区| 最新国产成人在线观看| 丝袜国产日韩另类美女| 国产精品99久久久久久久vr | 国产精品一二一区| 91老师国产黑色丝袜在线| 日韩一区二区在线观看视频播放| 国产精品乱子久久久久| 老司机午夜精品99久久| 色先锋aa成人| 中文一区二区完整视频在线观看| 亚洲成人一二三| 9人人澡人人爽人人精品| 精品欧美久久久| 亚洲福利一区二区| 99riav久久精品riav| 久久久久国产精品人| 秋霞午夜av一区二区三区| 色噜噜久久综合| 久久人人超碰精品| 男人的j进女人的j一区| 9l国产精品久久久久麻豆| 精品国产一区二区三区av性色| 亚洲精品乱码久久久久久久久| 久久精品国产精品亚洲红杏| 91黄色激情网站| 成人欧美一区二区三区视频网页 | 欧美国产丝袜视频| 免费观看一级欧美片| 在线观看91av| 污片在线观看一区二区| 欧美色图一区二区三区| 伊人一区二区三区| 成人性生交大片| 国产精品少妇自拍| 成人夜色视频网站在线观看| 久久九九久久九九| 国产福利91精品| 国产日韩在线不卡| 韩国欧美国产1区| 久久久久99精品一区| 激情综合色综合久久| 日韩免费观看2025年上映的电影 | 国产精品久久久久久久浪潮网站| 激情小说亚洲一区| 久久嫩草精品久久久精品| 日韩精品色哟哟| 欧美精品色一区二区三区| 午夜一区二区三区视频| 欧美高清性hdvideosex| 日韩av网站在线观看| 欧美一区二区三区爱爱| 奇米影视在线99精品| 欧美一区欧美二区| 国产真实精品久久二三区| 精品日韩成人av| 国产99久久久久| 最好看的中文字幕久久| 欧美又粗又大又爽| 奇米精品一区二区三区在线观看| 精品伦理精品一区| 国产成人午夜电影网| 中文字幕在线不卡国产视频| 91精彩视频在线观看| 免费成人av在线| 久久久99精品免费观看不卡| 不卡视频在线看| 亚洲成av人在线观看| 日韩久久久精品| 成人18视频在线播放| 亚洲一二三四久久| 久久综合九色综合97_久久久| 国产成人自拍网| 亚洲码国产岛国毛片在线| 日韩一区二区三区高清免费看看 | 久久久一区二区三区| 色先锋久久av资源部| 国产乱码精品一区二区三| 亚洲三级视频在线观看| 欧美一区二区三区在线观看| av在线播放一区二区三区| 亚洲成va人在线观看| 久久精品日韩一区二区三区| 91碰在线视频| 国产乱码精品一区二区三区忘忧草| 一区二区三区在线高清| 欧美成人伊人久久综合网| 91在线观看免费视频| 美腿丝袜一区二区三区| 一个色综合av| 国产精品女同互慰在线看| 日韩美女主播在线视频一区二区三区 | 国产精品123| 天堂资源在线中文精品| 亚洲人xxxx| 久久理论电影网| 日韩一区二区在线观看视频播放| 欧美怡红院视频| 91丨porny丨首页| 国产99久久久国产精品免费看 | 色综合久久中文综合久久97| 久久 天天综合| 偷窥少妇高潮呻吟av久久免费| 国产精品沙发午睡系列990531| 精品国产91九色蝌蚪| 日韩视频一区二区三区在线播放| 欧美在线制服丝袜| 91猫先生在线| 成人18视频在线播放| 成人av在线电影| 北条麻妃国产九九精品视频| 高清视频一区二区| 国产超碰在线一区| 国产成人综合网站| 成人久久18免费网站麻豆| 国产传媒欧美日韩成人| 成人毛片老司机大片| 成人国产亚洲欧美成人综合网| 丰满少妇在线播放bd日韩电影| 国产91精品在线观看| 粉嫩欧美一区二区三区高清影视| 国产精品一区二区男女羞羞无遮挡| 国产一区亚洲一区| 国产成人日日夜夜| 91在线一区二区| 欧美性受xxxx| 欧美一区二区视频在线观看2022| 日韩欧美一区二区久久婷婷| 欧美精品一区二区三区在线| 26uuu久久天堂性欧美| 久久久久99精品国产片| 日韩理论电影院| 亚洲一二三四在线| 天天操天天色综合| 韩国三级在线一区| 91小视频免费看| 91精品久久久久久久91蜜桃| 精品捆绑美女sm三区| 中文字幕亚洲一区二区va在线| 亚洲欧美日本韩国| 图片区日韩欧美亚洲| 国产原创一区二区| 91色九色蝌蚪| 精品对白一区国产伦| 国产精品久久久久久久久免费相片 | 久久精品国产网站| 色天天综合色天天久久| 欧美精品久久久久久久久老牛影院| 欧美不卡一区二区| 亚洲欧美综合网| 日本中文字幕一区| voyeur盗摄精品| 欧美一区欧美二区| 中文字幕亚洲一区二区av在线| 日韩制服丝袜先锋影音| 成人午夜视频网站| 欧美一区二区三区四区高清| 亚洲国产精品精华液2区45| 亚洲一区二区3| 成人午夜av电影| 欧美一区二区三区影视| 亚洲人成精品久久久久| 韩国理伦片一区二区三区在线播放|