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

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

?? arp.i

?? cs8900 c51應用
?? I
字號:
#line 1 "..\arp.c" /0    #error *** WARNING C318 IN LINE 69 OF ..\arp.c: can't open file 'inet/datatypes.h' #error *** WARNING C318 IN LINE 70 OF ..\arp.c: can't open file 'inet/debug.h' #error *** WARNING C318 IN LINE 71 OF ..\arp.c: can't open file 'inet/ethernet.h' #error *** WARNING C318 IN LINE 72 OF ..\arp.c: can't open file 'inet/arp.h' #error *** WARNING C318 IN LINE 73 OF ..\arp.c: can't open file 'inet/timers.h' #error *** WARNING C318 IN LINE 74 OF ..\arp.c: can't open file 'inet/system.h' #error *** WARNING C318 IN LINE 75 OF ..\arp.c: can't open file 'inet/globalvariables.h'   struct arp_entry	arp_table[ARP_TSIZE];    UINT8 arp_timer;    UINT8 process_arp (struct ethernet_frame* frame) {  UINT8 temp;		    if( frame->protocol == ARP_ETHCODE ) {   NETWORK_RECEIVE_INITIALIZE(frame->buf_index);    if( frame->frame_size < (2*MAXHWALEN + 2*MAXPRALEN + 2 + 6) ) {  ARP_DEBUGOUT("Corrupted ARP packet\n\r");  return(TRUE); }      for(temp=0; temp<6; temp++) RECEIVE_NETWORK_B();  ARP_DEBUGOUT("Incoming ARP..\n\r");    if( RECEIVE_NETWORK_B() == 0x00) {  temp = RECEIVE_NETWORK_B();	   if( temp == ARP_REQUEST ) { ARP_DEBUGOUT(" ARP REQUEST Received..\n\r"); arp_send_response(); } else if( temp == ARP_REPLY ) { ARP_DEBUGOUT("ARP Response Received..\n\r"); arp_get_response();	 }    }   return(TRUE);  }    return(FALSE);								 }   void arp_send_response(void) { struct arp_entry *qstruct; UINT8 rem_hwadr[MAXHWALEN]; UINT32 rem_ip; UINT32 ltemp; INT8 i; BYTE j;    for( i=MAXHWALEN-1; i >= 0; i-- ) rem_hwadr[i] = RECEIVE_NETWORK_B();		    for( i=0; i<MAXPRALEN; i++) { rem_ip <<= 8; rem_ip |= RECEIVE_NETWORK_B(); }      RECEIVE_NETWORK_B(); RECEIVE_NETWORK_B(); RECEIVE_NETWORK_B(); RECEIVE_NETWORK_B(); RECEIVE_NETWORK_B(); RECEIVE_NETWORK_B();	    for( i=0; i<MAXPRALEN; i++) { ltemp <<= 8; ltemp |= RECEIVE_NETWORK_B(); }   if( ltemp != localmachine.localip )  return;								   ARP_DEBUGOUT("Preparing for ARP Reply\n\r");    NETWORK_SEND_INITIALIZE(ARP_BUFFER);    for( i=0; i<MAXHWALEN; i++)	{ send_frame.destination[i] = rem_hwadr[i]; send_frame.source[i] = localmachine.localHW[i]; }  send_frame.protocol = PROTOCOL_ARP;  NETWORK_ADD_DATALINK(&send_frame);    SEND_NETWORK_B( (BYTE)(AR_HARDWARE>>8) );				  SEND_NETWORK_B( (BYTE)AR_HARDWARE ); SEND_NETWORK_B(0x08);									  SEND_NETWORK_B(0x00); SEND_NETWORK_B(MAXHWALEN);								  SEND_NETWORK_B(MAXPRALEN);								  SEND_NETWORK_B( 0x00 );									  SEND_NETWORK_B( 0x02 );					 SEND_NETWORK_B((UINT8)(localmachine.localHW[5]));		  SEND_NETWORK_B((UINT8)(localmachine.localHW[4])); SEND_NETWORK_B((UINT8)(localmachine.localHW[3])); SEND_NETWORK_B((UINT8)(localmachine.localHW[2])); SEND_NETWORK_B((UINT8)(localmachine.localHW[1])); SEND_NETWORK_B((UINT8)(localmachine.localHW[0])); SEND_NETWORK_B((UINT8)(localmachine.localip>>24)); SEND_NETWORK_B((UINT8)(localmachine.localip>>16)); SEND_NETWORK_B((UINT8)(localmachine.localip>>8)); SEND_NETWORK_B((UINT8)(localmachine.localip)); SEND_NETWORK_B((UINT8)rem_hwadr[5]); SEND_NETWORK_B((UINT8)rem_hwadr[4]); SEND_NETWORK_B((UINT8)rem_hwadr[3]); SEND_NETWORK_B((UINT8)rem_hwadr[2]); SEND_NETWORK_B((UINT8)rem_hwadr[1]); SEND_NETWORK_B((UINT8)rem_hwadr[0]);						 SEND_NETWORK_B((UINT8)(rem_ip>>24)); SEND_NETWORK_B((UINT8)(rem_ip>>16)); SEND_NETWORK_B((UINT8)(rem_ip>>8)); SEND_NETWORK_B((UINT8)rem_ip);  NETWORK_COMPLETE_SEND(0x0040);		   ARP_DEBUGOUT("ARP Reply Sent..\n\r");    arp_add(rem_ip, &send_frame.destination[0], ARP_TEMP_IP);  return;  }    void arp_get_response(void) { struct arp_entry *qstruct; UINT8 rem_hwadr[MAXHWALEN]; UINT32 	rem_ip; UINT32 	ltemp; INT8 i; UINT8 j;    for( i=MAXHWALEN-1; i >= 0; i-- ) rem_hwadr[i] = RECEIVE_NETWORK_B();    for( i=0; i<MAXPRALEN; i++) { rem_ip <<= 8; rem_ip |= RECEIVE_NETWORK_B(); }     for(i=0; i<MAXHWALEN; i++) RECEIVE_NETWORK_B();     for( i=0; i<MAXPRALEN; i++)	{ ltemp <<= 8; ltemp |= RECEIVE_NETWORK_B(); }   if( ltemp != localmachine.localip )  return;								   ARP_DEBUGOUT("Now entering to process ARP Reply..\n\r");    for( i=1; i<ARP_TSIZE; i++ ) { qstruct = &arp_table[i];  if( qstruct->state == ARP_FREE ) continue;  if( qstruct->state == ARP_RESERVED ) continue;				  if( rem_ip == qstruct->pradr ) {   ARP_DEBUGOUT("Refreshing ARP cache from Reply..\n\r");  for( j=0; j<MAXHWALEN; j++ )		 qstruct->hwadr[j] = rem_hwadr[j];  qstruct->ttl = ARP_TIMEOUT; qstruct->retries = ARP_MAXRETRY;				  qstruct->state = ARP_RESOLVED;    break; }	  }  }   void arp_send_req (UINT8 entry) {  struct arp_entry *qstruct; UINT8 i;  qstruct = &arp_table[entry];  NETWORK_SEND_INITIALIZE(ARP_BUFFER);    for( i=0; i<MAXHWALEN; i++) { send_frame.destination[i] = 0xFF; send_frame.source[i] = localmachine.localHW[i]; }  send_frame.protocol = PROTOCOL_ARP;  NETWORK_ADD_DATALINK(&send_frame);    SEND_NETWORK_B( (BYTE) (AR_HARDWARE>>8) );			  SEND_NETWORK_B( (BYTE) AR_HARDWARE ); SEND_NETWORK_B(0x08);								  SEND_NETWORK_B(0x00); SEND_NETWORK_B(MAXHWALEN);							  SEND_NETWORK_B(MAXPRALEN);							  SEND_NETWORK_B( (BYTE)(ARP_REQUEST>>8));			  SEND_NETWORK_B( (BYTE) ARP_REQUEST ); SEND_NETWORK_B((UINT8)localmachine.localHW[5]);		  SEND_NETWORK_B((UINT8)localmachine.localHW[4]); SEND_NETWORK_B((UINT8)localmachine.localHW[3]); SEND_NETWORK_B((UINT8)localmachine.localHW[2]); SEND_NETWORK_B((UINT8)localmachine.localHW[1]); SEND_NETWORK_B((UINT8)localmachine.localHW[0]); SEND_NETWORK_B((UINT8)(localmachine.localip>>24)); SEND_NETWORK_B((UINT8)(localmachine.localip>>16)); SEND_NETWORK_B((UINT8)(localmachine.localip>>8)); SEND_NETWORK_B((UINT8)localmachine.localip); SEND_NETWORK_B((UINT8)0xFF); SEND_NETWORK_B((UINT8)0xFF); SEND_NETWORK_B((UINT8)0xFF); SEND_NETWORK_B((UINT8)0xFF); SEND_NETWORK_B((UINT8)0xFF); SEND_NETWORK_B((UINT8)0xFF);						 SEND_NETWORK_B((UINT8)(qstruct->pradr>>24)); SEND_NETWORK_B((UINT8)(qstruct->pradr>>16)); SEND_NETWORK_B((UINT8)(qstruct->pradr>>8)); SEND_NETWORK_B((UINT8)qstruct->pradr);     NETWORK_COMPLETE_SEND(0x0040);						   ARP_DEBUGOUT("ARP Request Sent\n\r");  }    INT8 arp_alloc (UINT8 type) { struct arp_entry *qstruct; INT8 i; static BYTE aenext = 1;		  INT16 found;   found=-1;  for( i=0; i<ARP_TSIZE; i++ ) {  if( arp_table[aenext].state == ARP_FREE ) { found=i; break; } }  if(found != (-1) ) { qstruct = &arp_table[found]; qstruct->state = ARP_RESERVED; qstruct->type = type;	 return( (UINT8)found ); }       for( i=0; i<ARP_TSIZE; i++ ) {	 if( arp_table[aenext].type == ARP_TEMP_IP) { found = aenext;			 break; }    aenext = (aenext + 1); if( aenext >= ARP_TSIZE ) aenext = 1;  }     if( found == (-1) ) return(-1);    aenext = (aenext + 1);	 if( aenext >= ARP_TSIZE ) aenext = 1;		  qstruct = &arp_table[found];    qstruct->state = ARP_RESERVED; qstruct->type = type;    return((UINT8)found);   }  INT8 arp_add (UINT32 pra, UINT8* hwadr, UINT8 type) { struct arp_entry *qstruct; INT8 i; INT8 j;  for( i=0; i<ARP_TSIZE; i++ ) { qstruct = &arp_table[i];  if( qstruct->state == ARP_FREE ) continue;  if((qstruct->pradr == pra)&&(pra != IP_BROADCAST_ADDRESS)) {   ARP_DEBUGOUT(" Refreshing Existing ARP Entry..\n\r");  for( j=0; j<MAXHWALEN; j++ )		 qstruct->hwadr[j] = *hwadr++;  qstruct->ttl = ARP_TIMEOUT; qstruct->retries = ARP_MAXRETRY; qstruct->state = ARP_RESOLVED;    return (0);	 }  }  if(is_subnet(pra,&localmachine) == FALSE){ return (-1); }  if( localmachine.defgw == pra )	{ if(localmachine.defgw != 0) { type = ARP_FIXED_IP; } }     ARP_DEBUGOUT("Allocating New ARP Entry..\n\r");  i = arp_alloc(type);  if( i < 0 )				  return(-1);    qstruct = &arp_table[i];  qstruct->pradr = pra;										   for(i=0; i<MAXHWALEN; i++) qstruct->hwadr[i] = *hwadr++;							   qstruct->retries = ARP_MAXRETRY; qstruct->ttl = ARP_TIMEOUT; qstruct->state = ARP_RESOLVED;				  ARP_DEBUGOUT("ARP Entry Created!..\n\r");  return(1);  }   struct arp_entry* arp_find (LWORD pra, struct netif *machine, UINT8 type) { struct arp_entry *qstruct; INT8 i;  ARP_DEBUGOUT("Trying to find MAC address from ARP Cache\n\r");    for( i=0; i<ARP_TSIZE; i++ ) { qstruct = &arp_table[i];  if( qstruct->state == ARP_FREE ) continue; if( qstruct->pradr == pra) {   ARP_DEBUGOUT("Address In Cache\n\r");  if( qstruct->state < ARP_RESOLVED ) { ARP_DEBUGOUT("Address in cache but unresolved :(\n\r"); return(0); }   return(qstruct);	 }  }    if( is_subnet(pra, machine) ) {   ARP_DEBUGOUT("Need to send ARP Request to local network..\n\r");  if( machine->defgw == pra ) { if(machine->defgw != 0) { type = ARP_FIXED_IP; } } i = arp_alloc(type);  if( i < 0 )				  return(0);    qstruct = &arp_table[i];  qstruct->pradr = pra;						  qstruct->hwadr[0] = 0xFF;					  qstruct->hwadr[1] = 0xFF; qstruct->hwadr[2] = 0xFF; qstruct->hwadr[3] = 0xFF; qstruct->hwadr[4] = 0xFF; qstruct->hwadr[5] = 0xFF; qstruct->retries = ARP_MAXRETRY; qstruct->ttl = ARP_RESEND; arp_send_req( i ); qstruct->state = ARP_PENDING;				   return(0);  }      ARP_DEBUGOUT("Need to use MAC of Default GW\n\r");    if(machine->defgw == 0)				  return(0);   for( i=0; i<ARP_TSIZE; i++ ) { qstruct = &arp_table[i];  if( qstruct->state == ARP_FREE ) continue;  if( qstruct->pradr == machine->defgw ) {    if( qstruct->state < ARP_RESOLVED ) { ARP_DEBUGOUT("The Address of Def. GW is not Solved!\n\r"); return(0); }    ARP_DEBUGOUT(" >> Default Gateway MAC found!\n\r");  return(qstruct);  }  }  ARP_DEBUGOUT("Need to send ARP Request to default gateway..\n\r");  i = arp_alloc(ARP_FIXED_IP);  if( i < 0 )				  return(0);    qstruct = &arp_table[i];  qstruct->pradr = machine->defgw;						  qstruct->hwadr[0] = 0xFF;					  qstruct->hwadr[1] = 0xFF; qstruct->hwadr[2] = 0xFF; qstruct->hwadr[3] = 0xFF; qstruct->hwadr[4] = 0xFF; qstruct->hwadr[5] = 0xFF; qstruct->retries = ARP_MAXRETRY; qstruct->ttl = ARP_RESEND; arp_send_req( i ); qstruct->state = ARP_PENDING;				   return(0);   }   void arp_manage (void) { struct arp_entry *qstruct; UINT8 i,j; static UINT8 aenext=0;    if( check_timer(arp_timer) ) return;  init_timer( arp_timer, ARP_MANG_TOUT*TIMERTIC);    for( i=0; i<ARP_TSIZE; i++ ) {   qstruct = &arp_table[aenext];  j = aenext;    aenext++; if(aenext >= ARP_TSIZE) aenext = 0;	  if( qstruct->state == ARP_FREE ) continue;    if( qstruct->ttl > 0 )				  qstruct->ttl --;  if( qstruct->ttl == 0 )	{			    ARP_DEBUGOUT("Found Timed out Entry..\n\r");  if( qstruct->type == ARP_TEMP_IP ) {   if( qstruct->state == ARP_RESOLVED ) {	 ARP_DEBUGOUT("Releasing ARP Entry..\n\r"); qstruct->state = ARP_FREE; continue; }    if( qstruct->retries > 0 )	 qstruct->retries--;  if( qstruct->retries == 0 )	{ ARP_DEBUGOUT("ARP Replies Used up, releasing entry..\n\r"); qstruct->state = ARP_FREE; continue; }    ARP_DEBUGOUT("Trying to Resolve dynamic ARP Entry..\n\r");  qstruct->ttl = ARP_RESEND; arp_send_req( j ); qstruct->state = ARP_PENDING;				   return;  }    if( qstruct->type == ARP_FIXED_IP ) {      if(qstruct->pradr == IP_BROADCAST_ADDRESS) 	{ qstruct->ttl = ARP_TIMEOUT; continue; }  ARP_DEBUGOUT("Refreshing Static ARP Entry..\n\r");  if( qstruct->retries > 0 )	 qstruct->retries--;  if( qstruct->retries == 0 ) qstruct->state = ARP_PENDING; else qstruct->state = ARP_REFRESHING;  qstruct->ttl = ARP_RESEND;  arp_send_req( j );  return;  }  }  }   }     void arp_init (void) { struct arp_entry *qstruct; INT8 i;  ARP_DEBUGOUT("Initializing ARP");  for( i=0; i<ARP_TSIZE; i++ ) { qstruct = &arp_table[i];  qstruct->state = ARP_FREE; qstruct->type = ARP_TEMP_IP;  ARP_DEBUGOUT("."); }  arp_timer = get_timer(); init_timer(arp_timer, ARP_MANG_TOUT*TIMERTIC);    qstruct = &arp_table[0]; qstruct->pradr = IP_BROADCAST_ADDRESS; qstruct->state = ARP_RESOLVED; qstruct->type = ARP_FIXED_IP; qstruct->ttl = ARP_TIMEOUT; qstruct->retries = ARP_MAXRETRY;	  for(i=0; i<MAXHWALEN; i++) qstruct->hwadr[i] = 0xFF;							  ARP_DEBUGOUT("\n\r");  }  BYTE is_subnet (LWORD ipadr, struct netif* machine) {  UINT32 ltemp;  ltemp = ipadr & machine->netmask;						   ltemp ^= (machine->localip & machine->netmask);			   if( ltemp ) return(FALSE);  return(TRUE);  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产网站一区二区三区| 亚洲自拍欧美精品| 韩国精品免费视频| 日韩色视频在线观看| 五月激情丁香一区二区三区| 日本高清视频一区二区| 亚洲色图视频免费播放| 成人福利电影精品一区二区在线观看| 精品久久国产老人久久综合| 日韩成人免费在线| 欧美另类一区二区三区| 性久久久久久久久久久久| 欧美影院精品一区| 亚洲第一成人在线| 91精品国产综合久久精品| 午夜视频久久久久久| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | aa级大片欧美| 最新久久zyz资源站| 91日韩一区二区三区| 伊人开心综合网| 欧美丝袜丝交足nylons| 午夜精品在线看| 日韩一区二区三区免费看 | 亚洲精品国产无天堂网2021| 中文字幕在线视频一区| 成人少妇影院yyyy| 日韩伦理电影网| 欧洲av一区二区嗯嗯嗯啊| 一区二区三区国产精华| 欧美日韩黄色影视| 日韩国产欧美一区二区三区| 日韩视频在线永久播放| 极品少妇一区二区| 日本一区二区三区电影| 成人免费看视频| 一区二区三区四区在线| 欧美日韩视频第一区| 日韩高清在线观看| 久久综合网色—综合色88| 国产成人综合亚洲91猫咪| 国产精品色眯眯| 色综合久久99| 青青草国产精品97视觉盛宴 | 在线观看国产一区二区| 午夜影院在线观看欧美| 精品国一区二区三区| 国产sm精品调教视频网站| ...av二区三区久久精品| 精品视频在线看| 美女被吸乳得到大胸91| 国产亚洲精久久久久久| 91女神在线视频| 视频一区在线视频| 国产亚洲一二三区| 在线观看视频一区二区欧美日韩| 午夜精品一区二区三区免费视频| 欧美精品一区二区在线观看| 99这里都是精品| 日韩中文字幕麻豆| 中文字幕不卡在线| 欧美日韩国产大片| 韩国三级中文字幕hd久久精品| 国产精品乱码一区二区三区软件| 精品婷婷伊人一区三区三| 国产真实乱对白精彩久久| 亚洲欧美国产高清| 欧美xxx久久| 在线观看免费一区| 狠狠狠色丁香婷婷综合久久五月| 18涩涩午夜精品.www| 91精品国产福利在线观看| 国产成人精品网址| 偷拍自拍另类欧美| 国产精品福利一区| 欧美一区二区大片| 91在线观看一区二区| 蜜桃av一区二区| 亚洲欧美偷拍三级| 久久亚洲二区三区| 欧美日韩精品一区二区天天拍小说 | 日本一区二区三级电影在线观看| 依依成人综合视频| 久久麻豆一区二区| 欧美精品久久一区二区三区 | 免费成人在线视频观看| 中文字幕在线观看一区| 日韩欧美成人午夜| 91高清在线观看| 国产夫妻精品视频| 蜜臀久久久久久久| 亚洲精品免费电影| 久久久不卡网国产精品一区| 欧美日韩性生活| 99精品视频一区二区| 精品一区中文字幕| 午夜精品免费在线观看| 亚洲三级电影网站| 久久精品男人的天堂| 日韩欧美一级在线播放| 在线免费观看日本欧美| 波多野结衣欧美| 国产一区二区免费看| 日产精品久久久久久久性色| 亚洲一区二区三区在线| 中文字幕一区二区三区视频| 久久久久久9999| 精品国产亚洲在线| 3d动漫精品啪啪1区2区免费| 色婷婷狠狠综合| 成人av集中营| 国产精品一二三四| 久久99精品国产麻豆婷婷| 日产国产欧美视频一区精品 | 亚洲欧美日韩在线播放| 久久免费午夜影院| 精品久久一区二区三区| 欧美一级精品在线| 91精品一区二区三区在线观看| 欧美在线你懂得| 色婷婷av一区二区三区大白胸| hitomi一区二区三区精品| 成人综合婷婷国产精品久久 | 欧美一区二区在线看| 欧美日韩精品一区二区天天拍小说| 色视频成人在线观看免| av不卡在线播放| 99re成人在线| 99视频在线精品| 91在线视频18| 99精品国产99久久久久久白柏| 成人福利在线看| aaa欧美日韩| 97久久久精品综合88久久| 成人成人成人在线视频| av电影在线观看不卡| 成人动漫一区二区在线| 9色porny自拍视频一区二区| a4yy欧美一区二区三区| 91免费视频观看| 色综合久久综合网97色综合| 色婷婷国产精品| 欧美日韩一区二区三区不卡| 欧美片网站yy| 日韩一区和二区| 精品少妇一区二区三区免费观看| 精品99一区二区三区| 2020国产精品| 国产精品中文有码| 丰满放荡岳乱妇91ww| av爱爱亚洲一区| 欧美性大战久久久久久久蜜臀| 欧美视频在线观看一区| 欧美精品久久久久久久多人混战| 欧美一级久久久| 国产日韩影视精品| 亚洲猫色日本管| 日韩在线观看一区二区| 国精产品一区一区三区mba桃花 | 国产盗摄一区二区| 国产在线视频精品一区| 成人激情校园春色| heyzo一本久久综合| 日本高清不卡aⅴ免费网站| www.视频一区| 91农村精品一区二区在线| 色偷偷成人一区二区三区91| 欧美视频一区在线| 日韩欧美电影一二三| 久久久久久影视| 中文字幕一区二区三中文字幕| 精品国产乱码久久久久久1区2区| 欧美国产1区2区| 亚洲另类中文字| 日韩av在线免费观看不卡| 国产成人亚洲综合a∨婷婷| 99国产精品视频免费观看| 91久久国产综合久久| 欧美电影一区二区三区| 久久精品人人爽人人爽| 亚洲视频你懂的| 亚洲成a人在线观看| 日韩在线一二三区| 成人污视频在线观看| 欧洲一区在线观看| 日韩免费电影一区| 国产精品久久久久精k8| 亚洲综合在线观看视频| 人人精品人人爱| 成人永久aaa| 欧美一区二区在线免费播放 | 欧美sm美女调教| 中文字幕免费不卡在线| 一区二区三区精品| 国产麻豆午夜三级精品| 91久久国产综合久久| 欧美大尺度电影在线| 伊人婷婷欧美激情| 激情综合色综合久久| 91免费小视频|