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

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

?? ip.c

?? lwip-tcpip協議
?? C
?? 第 1 頁 / 共 2 頁
字號:
   */  if (netif == NULL) {    /* remote port is DHCP server? */    if (IPH_PROTO(iphdr) == IP_PROTO_UDP) {      LWIP_DEBUGF(IP_DEBUG | DBG_TRACE | 1, ("ip_input: UDP packet to DHCP client port %u\n",        ntohs(((struct udp_hdr *)((u8_t *)iphdr + iphdrlen))->dest)));      if (ntohs(((struct udp_hdr *)((u8_t *)iphdr + iphdrlen))->dest) == DHCP_CLIENT_PORT) {        LWIP_DEBUGF(IP_DEBUG | DBG_TRACE | 1, ("ip_input: DHCP packet accepted.\n"));        netif = inp;      }    }  }#endif /* LWIP_DHCP */  /* packet not for us? */  if (netif == NULL) {    /* packet not for us, route or discard */    LWIP_DEBUGF(IP_DEBUG | DBG_TRACE | 1, ("ip_input: packet not for us.\n"));#if IP_FORWARD    /* non-broadcast packet? */    if (!ip_addr_isbroadcast(&(iphdr->dest), inp)) {      /* try to forward IP packet on (other) interfaces */      ip_forward(p, iphdr, inp);    }    else#endif /* IP_FORWARD */    {      snmp_inc_ipindiscards();    }    pbuf_free(p);    return ERR_OK;  }  /* packet consists of multiple fragments? */  if ((IPH_OFFSET(iphdr) & htons(IP_OFFMASK | IP_MF)) != 0) {#if IP_REASSEMBLY /* packet fragment reassembly code present? */    LWIP_DEBUGF(IP_DEBUG, ("IP packet is a fragment (id=0x%04x tot_len=%u len=%u MF=%u offset=%u), calling ip_reass()\n",      ntohs(IPH_ID(iphdr)), p->tot_len, ntohs(IPH_LEN(iphdr)), !!(IPH_OFFSET(iphdr) & htons(IP_MF)), (ntohs(IPH_OFFSET(iphdr)) & IP_OFFMASK)*8));    /* reassemble the packet*/    p = ip_reass(p);    /* packet not fully reassembled yet? */    if (p == NULL) {      return ERR_OK;    }    iphdr = p->payload;#else /* IP_REASSEMBLY == 0, no packet fragment reassembly code present */    pbuf_free(p);    LWIP_DEBUGF(IP_DEBUG | 2, ("IP packet dropped since it was fragmented (0x%x) (while IP_REASSEMBLY == 0).\n",      ntohs(IPH_OFFSET(iphdr))));    IP_STATS_INC(ip.opterr);    IP_STATS_INC(ip.drop);    snmp_inc_ipunknownprotos();    return ERR_OK;#endif /* IP_REASSEMBLY */  }#if IP_OPTIONS == 0 /* no support for IP options in the IP header? */  if (iphdrlen > IP_HLEN) {    LWIP_DEBUGF(IP_DEBUG | 2, ("IP packet dropped since there were IP options (while IP_OPTIONS == 0).\n"));    pbuf_free(p);    IP_STATS_INC(ip.opterr);    IP_STATS_INC(ip.drop);    snmp_inc_ipunknownprotos();    return ERR_OK;  }#endif /* IP_OPTIONS == 0 */  /* send to upper layers */  LWIP_DEBUGF(IP_DEBUG, ("ip_input: \n"));  ip_debug_print(p);  LWIP_DEBUGF(IP_DEBUG, ("ip_input: p->len %d p->tot_len %d\n", p->len, p->tot_len));#if LWIP_RAW  /* raw input did not eat the packet? */  if (raw_input(p, inp) == 0) {#endif /* LWIP_RAW */  switch (IPH_PROTO(iphdr)) {#if LWIP_UDP  case IP_PROTO_UDP:  case IP_PROTO_UDPLITE:    snmp_inc_ipindelivers();    udp_input(p, inp);    break;#endif /* LWIP_UDP */#if LWIP_TCP  case IP_PROTO_TCP:    snmp_inc_ipindelivers();    tcp_input(p, inp);    break;#endif /* LWIP_TCP */  case IP_PROTO_ICMP:    snmp_inc_ipindelivers();    icmp_input(p, inp);    break;  default:    /* send ICMP destination protocol unreachable unless is was a broadcast */    if (!ip_addr_isbroadcast(&(iphdr->dest), inp) &&        !ip_addr_ismulticast(&(iphdr->dest))) {      p->payload = iphdr;      icmp_dest_unreach(p, ICMP_DUR_PROTO);    }    pbuf_free(p);    LWIP_DEBUGF(IP_DEBUG | 2, ("Unsupported transport protocol %d\n", IPH_PROTO(iphdr)));    IP_STATS_INC(ip.proterr);    IP_STATS_INC(ip.drop);    snmp_inc_ipunknownprotos();  }#if LWIP_RAW  } /* LWIP_RAW */#endif  return ERR_OK;}/** * Sends an IP packet on a network interface. This function constructs * the IP header and calculates the IP header checksum. If the source * IP address is NULL, the IP address of the outgoing network * interface is filled in as source address. */err_tip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,             u8_t ttl, u8_t tos,             u8_t proto, struct netif *netif){  struct ip_hdr *iphdr;  u16_t ip_id = 0;  snmp_inc_ipoutrequests();  if (dest != IP_HDRINCL) {    if (pbuf_header(p, IP_HLEN)) {      LWIP_DEBUGF(IP_DEBUG | 2, ("ip_output: not enough room for IP header in pbuf\n"));      IP_STATS_INC(ip.err);      snmp_inc_ipoutdiscards();      return ERR_BUF;    }    iphdr = p->payload;    IPH_TTL_SET(iphdr, ttl);    IPH_PROTO_SET(iphdr, proto);    ip_addr_set(&(iphdr->dest), dest);    IPH_VHLTOS_SET(iphdr, 4, IP_HLEN / 4, tos);    IPH_LEN_SET(iphdr, htons(p->tot_len));    IPH_OFFSET_SET(iphdr, htons(IP_DF));    IPH_ID_SET(iphdr, htons(ip_id));    ++ip_id;    if (ip_addr_isany(src)) {      ip_addr_set(&(iphdr->src), &(netif->ip_addr));    } else {      ip_addr_set(&(iphdr->src), src);    }    IPH_CHKSUM_SET(iphdr, 0);#if CHECKSUM_GEN_IP    IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, IP_HLEN));#endif  } else {    iphdr = p->payload;    dest = &(iphdr->dest);  }#if IP_FRAG  /* don't fragment if interface has mtu set to 0 [loopif] */  if (netif->mtu && (p->tot_len > netif->mtu))    return ip_frag(p,netif,dest);#endif  IP_STATS_INC(ip.xmit);  LWIP_DEBUGF(IP_DEBUG, ("ip_output_if: %c%c%u\n", netif->name[0], netif->name[1], netif->num));  ip_debug_print(p);  LWIP_DEBUGF(IP_DEBUG, ("netif->output()"));  return netif->output(netif, p, dest);}/** * Simple interface to ip_output_if. It finds the outgoing network * interface and calls upon ip_output_if to do the actual work. */err_tip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,          u8_t ttl, u8_t tos, u8_t proto){  struct netif *netif;  if ((netif = ip_route(dest)) == NULL) {    LWIP_DEBUGF(IP_DEBUG | 2, ("ip_output: No route to 0x%lx\n", dest->addr));    IP_STATS_INC(ip.rterr);    snmp_inc_ipoutdiscards();    return ERR_RTE;  }  return ip_output_if(p, src, dest, ttl, tos, proto, netif);}#if IP_DEBUGvoidip_debug_print(struct pbuf *p){  struct ip_hdr *iphdr = p->payload;  u8_t *payload;  payload = (u8_t *)iphdr + IP_HLEN;  LWIP_DEBUGF(IP_DEBUG, ("IP header:\n"));  LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));  LWIP_DEBUGF(IP_DEBUG, ("|%2d |%2d |  0x%02x |     %5u     | (v, hl, tos, len)\n",                    IPH_V(iphdr),                    IPH_HL(iphdr),                    IPH_TOS(iphdr),                    ntohs(IPH_LEN(iphdr))));  LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));  LWIP_DEBUGF(IP_DEBUG, ("|    %5u      |%u%u%u|    %4u   | (id, flags, offset)\n",                    ntohs(IPH_ID(iphdr)),                    ntohs(IPH_OFFSET(iphdr)) >> 15 & 1,                    ntohs(IPH_OFFSET(iphdr)) >> 14 & 1,                    ntohs(IPH_OFFSET(iphdr)) >> 13 & 1,                    ntohs(IPH_OFFSET(iphdr)) & IP_OFFMASK));  LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));  LWIP_DEBUGF(IP_DEBUG, ("|  %3u  |  %3u  |    0x%04x     | (ttl, proto, chksum)\n",                    IPH_TTL(iphdr),                    IPH_PROTO(iphdr),                    ntohs(IPH_CHKSUM(iphdr))));  LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));  LWIP_DEBUGF(IP_DEBUG, ("|  %3u  |  %3u  |  %3u  |  %3u  | (src)\n",                    ip4_addr1(&iphdr->src),                    ip4_addr2(&iphdr->src),                    ip4_addr3(&iphdr->src),                    ip4_addr4(&iphdr->src)));  LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));  LWIP_DEBUGF(IP_DEBUG, ("|  %3u  |  %3u  |  %3u  |  %3u  | (dest)\n",                    ip4_addr1(&iphdr->dest),                    ip4_addr2(&iphdr->dest),                    ip4_addr3(&iphdr->dest),                    ip4_addr4(&iphdr->dest)));  LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));}#endif /* IP_DEBUG */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美肥老太交大片| 国产精品亲子乱子伦xxxx裸| 天堂一区二区在线| 在线成人高清不卡| 天堂一区二区在线| 欧美成人vr18sexvr| 国产精品综合在线视频| 国产精品欧美一级免费| 欧美在线免费观看视频| 日韩国产欧美视频| 欧美精品一区二区蜜臀亚洲| 丰满放荡岳乱妇91ww| 亚洲精品高清在线观看| 欧美一区二区三区四区五区| 国产一二精品视频| 自拍偷拍亚洲欧美日韩| 91精品国产色综合久久 | 一区二区免费视频| 777久久久精品| 成人免费三级在线| 午夜久久久久久久久久一区二区| 日韩欧美一级在线播放| 91社区在线播放| 老司机精品视频导航| 国产精品免费看片| 欧美日本一道本| 国产成人自拍高清视频在线免费播放| 亚洲欧美一区二区三区国产精品| 91精品久久久久久蜜臀| 盗摄精品av一区二区三区| 水蜜桃久久夜色精品一区的特点| 国产日韩综合av| 欧美日韩精品一区二区三区| 国产乱码精品一区二区三区忘忧草 | 免费欧美高清视频| 久久综合狠狠综合久久综合88 | 日韩一区二区免费在线电影| 91无套直看片红桃| 久久精品国产在热久久| 亚洲欧美另类小说| 久久久亚洲综合| 欧美裸体bbwbbwbbw| 99热在这里有精品免费| 久久99国产精品尤物| 亚洲国产成人porn| 中文字幕在线一区二区三区| 欧美精品一区二区不卡| 欧美日韩高清一区二区| 99视频一区二区三区| 国产精品一区二区黑丝| 蜜桃视频在线观看一区| 一区二区三区**美女毛片| 国产欧美日韩不卡| 久久青草欧美一区二区三区| 欧美一区二区国产| 欧美伦理视频网站| 欧美视频在线一区| 91视频在线观看免费| 粗大黑人巨茎大战欧美成人| 加勒比av一区二区| 久久激情五月激情| 麻豆91在线观看| 日韩av在线发布| 日韩精品国产欧美| 亚洲成av人片在线观看| 一区二区日韩av| 亚洲欧洲精品一区二区三区不卡| 国产调教视频一区| 久久精品一区二区三区不卡牛牛| 69堂国产成人免费视频| 欧美电影影音先锋| 欧美一区二区观看视频| 欧美一区二区成人| 欧美大片一区二区三区| 日韩欧美黄色影院| 久久综合色8888| 国产欧美日韩在线视频| 国产精品欧美一级免费| 1区2区3区欧美| 亚洲激情成人在线| 亚洲福利视频三区| 日韩av电影免费观看高清完整版在线观看| 亚洲一区中文日韩| 亚洲高清不卡在线观看| 日韩av成人高清| 激情综合色综合久久综合| 国产乱码精品一区二区三区忘忧草 | 久久色中文字幕| 2019国产精品| 欧美经典三级视频一区二区三区| 国产精品人人做人人爽人人添| 国产精品美女www爽爽爽| 亚洲另类中文字| 天堂成人免费av电影一区| 美国十次综合导航| 国产美女娇喘av呻吟久久| 国产aⅴ综合色| 在线免费不卡电影| 欧美丰满嫩嫩电影| 国产亚洲短视频| 亚洲婷婷在线视频| 水野朝阳av一区二区三区| 极品尤物av久久免费看| 99久久精品免费看国产免费软件| 在线免费视频一区二区| 欧美一级爆毛片| 中文字幕免费一区| 午夜激情一区二区三区| 激情国产一区二区 | 日本视频在线一区| 床上的激情91.| 欧美日韩国产综合一区二区三区| 欧美tickling挠脚心丨vk| 日本一区二区视频在线观看| 洋洋成人永久网站入口| 狠狠色综合日日| 欧美主播一区二区三区| 久久人人爽人人爽| 亚洲bt欧美bt精品777| 国产成人在线视频免费播放| 欧美日韩三级一区二区| 久久久精品日韩欧美| 亚洲狠狠爱一区二区三区| 国产激情一区二区三区四区 | 欧美三级三级三级爽爽爽| 久久综合一区二区| 亚洲mv大片欧洲mv大片精品| 成人久久18免费网站麻豆| 欧美乱妇15p| 亚洲男人的天堂一区二区| 国产一区 二区 三区一级| 欧美日韩一级二级| √…a在线天堂一区| 久久99久久精品欧美| 欧美亚洲高清一区二区三区不卡| 久久久国产精品午夜一区ai换脸| 亚洲成人av资源| 99国产精品国产精品毛片| 久久精品欧美日韩| 奇米综合一区二区三区精品视频 | 日韩av电影天堂| 欧美在线观看一区二区| 国产精品久久久久久一区二区三区| 蜜臀久久久99精品久久久久久| 日本道色综合久久| 国产精品久久久久久妇女6080| 精品一区二区综合| 欧美一区二区三区不卡| 亚洲成人精品一区| 欧美中文字幕一区| 亚洲精品水蜜桃| 色综合亚洲欧洲| 综合婷婷亚洲小说| 99久久久久久| 国产精品国产三级国产普通话三级| 国产在线国偷精品产拍免费yy | 7777精品伊人久久久大香线蕉的| 一区二区欧美在线观看| 成人av网站在线观看| 亚洲国产精品成人综合色在线婷婷| 九色porny丨国产精品| 日韩三级.com| 美腿丝袜亚洲综合| 精品欧美黑人一区二区三区| 蜜桃视频免费观看一区| 日韩欧美一区在线观看| 久久精品久久99精品久久| 日韩欧美国产wwwww| 精品综合久久久久久8888| 久久综合网色—综合色88| 国产精品一二三区在线| 国产香蕉久久精品综合网| 成人综合在线网站| 国产精品国产精品国产专区不片 | 欧美性做爰猛烈叫床潮| 夜夜揉揉日日人人青青一国产精品| 在线免费亚洲电影| 日日摸夜夜添夜夜添国产精品 | 日韩精品最新网址| 国产一区91精品张津瑜| 国产精品久久久一本精品 | 午夜国产精品影院在线观看| 5858s免费视频成人| 久久99国产精品久久| 国产网站一区二区三区| 色综合久久久网| 午夜精品成人在线视频| 久久免费看少妇高潮| 91视频国产观看| 视频一区视频二区在线观看| 精品久久久久一区二区国产| 成人av网站在线观看免费| 亚洲伊人色欲综合网| 精品精品欲导航| 99精品视频在线播放观看| 亚洲成年人网站在线观看| 久久综合国产精品| 日本乱码高清不卡字幕| 久久9热精品视频| 亚洲天堂精品视频|