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

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

?? icmp.c

?? lwip在ucos上的移植
?? C
字號:
/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, *    this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, *    this list of conditions and the following disclaimer in the documentation *    and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products *    derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels <adam@sics.se> * *//* Some ICMP messages should be passed to the transport protocols. This   is not implemented. */#include <string.h>#include "lwip/opt.h"#include "lwip/icmp.h"#include "lwip/inet.h"#include "lwip/ip.h"#include "lwip/def.h"#include "lwip/stats.h"#include "lwip/snmp.h"voidicmp_input(struct pbuf *p, struct netif *inp){  u8_t type;  u8_t code;  struct icmp_echo_hdr *iecho;  struct ip_hdr *iphdr;  struct ip_addr tmpaddr;  u16_t hlen;  ICMP_STATS_INC(icmp.recv);  snmp_inc_icmpinmsgs();  iphdr = p->payload;  hlen = IPH_HL(iphdr) * 4;  if (pbuf_header(p, -((s16_t)hlen)) || (p->tot_len < sizeof(u16_t)*2)) {    LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: short ICMP (%"U16_F" bytes) received\n", p->tot_len));    pbuf_free(p);    ICMP_STATS_INC(icmp.lenerr);    snmp_inc_icmpinerrors();    return;  }  type = *((u8_t *)p->payload);  code = *(((u8_t *)p->payload)+1);  switch (type) {  case ICMP_ECHO:    /* broadcast or multicast destination address? */    if (ip_addr_isbroadcast(&iphdr->dest, inp) || ip_addr_ismulticast(&iphdr->dest)) {      LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: Not echoing to multicast or broadcast pings\n"));      ICMP_STATS_INC(icmp.err);      pbuf_free(p);      return;    }    LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ping\n"));    if (p->tot_len < sizeof(struct icmp_echo_hdr)) {      LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: bad ICMP echo received\n"));      pbuf_free(p);      ICMP_STATS_INC(icmp.lenerr);      snmp_inc_icmpinerrors();      return;    }    iecho = p->payload;    if (inet_chksum_pbuf(p) != 0) {      LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: checksum failed for received ICMP echo\n"));      pbuf_free(p);      ICMP_STATS_INC(icmp.chkerr);      snmp_inc_icmpinerrors();      return;    }    tmpaddr.addr = iphdr->src.addr;    iphdr->src.addr = iphdr->dest.addr;    iphdr->dest.addr = tmpaddr.addr;    ICMPH_TYPE_SET(iecho, ICMP_ER);    /* adjust the checksum */    if (iecho->chksum >= htons(0xffff - (ICMP_ECHO << 8))) {      iecho->chksum += htons(ICMP_ECHO << 8) + 1;    } else {      iecho->chksum += htons(ICMP_ECHO << 8);    }    ICMP_STATS_INC(icmp.xmit);    /* increase number of messages attempted to send */    snmp_inc_icmpoutmsgs();    /* increase number of echo replies attempted to send */    snmp_inc_icmpoutechoreps();    pbuf_header(p, hlen);    ip_output_if(p, &(iphdr->src), IP_HDRINCL,		 IPH_TTL(iphdr), 0, IP_PROTO_ICMP, inp);    break;  default:  LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" code %"S16_F" not supported.\n", (s16_t)type, (s16_t)code));    ICMP_STATS_INC(icmp.proterr);    ICMP_STATS_INC(icmp.drop);  }  pbuf_free(p);}voidicmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t){  struct pbuf *q;  struct ip_hdr *iphdr;  struct icmp_dur_hdr *idur;  q = pbuf_alloc(PBUF_IP, 8 + IP_HLEN + 8, PBUF_RAM);  /* ICMP header + IP header + 8 bytes of data */  iphdr = p->payload;  idur = q->payload;  ICMPH_TYPE_SET(idur, ICMP_DUR);  ICMPH_CODE_SET(idur, t);  memcpy((u8_t *)q->payload + 8, p->payload, IP_HLEN + 8);  /* calculate checksum */  idur->chksum = 0;  idur->chksum = inet_chksum(idur, q->len);  ICMP_STATS_INC(icmp.xmit);  /* increase number of messages attempted to send */  snmp_inc_icmpoutmsgs();  /* increase number of destination unreachable messages attempted to send */  snmp_inc_icmpoutdestunreachs();  ip_output(q, NULL, &(iphdr->src),	    ICMP_TTL, 0, IP_PROTO_ICMP);  pbuf_free(q);}#if IP_FORWARDvoidicmp_time_exceeded(struct pbuf *p, enum icmp_te_type t){  struct pbuf *q;  struct ip_hdr *iphdr;  struct icmp_te_hdr *tehdr;  q = pbuf_alloc(PBUF_IP, 8 + IP_HLEN + 8, PBUF_RAM);  iphdr = p->payload;  LWIP_DEBUGF(ICMP_DEBUG, ("icmp_time_exceeded from "));  ip_addr_debug_print(ICMP_DEBUG, &(iphdr->src));  LWIP_DEBUGF(ICMP_DEBUG, (" to "));  ip_addr_debug_print(ICMP_DEBUG, &(iphdr->dest));  LWIP_DEBUGF(ICMP_DEBUG, ("\n"));  tehdr = q->payload;  ICMPH_TYPE_SET(tehdr, ICMP_TE);  ICMPH_CODE_SET(tehdr, t);  /* copy fields from original packet */  memcpy((u8_t *)q->payload + 8, (u8_t *)p->payload, IP_HLEN + 8);  /* calculate checksum */  tehdr->chksum = 0;  tehdr->chksum = inet_chksum(tehdr, q->len);  ICMP_STATS_INC(icmp.xmit);  /* increase number of messages attempted to send */  snmp_inc_icmpoutmsgs();  /* increase number of destination unreachable messages attempted to send */  snmp_inc_icmpouttimeexcds();  ip_output(q, NULL, &(iphdr->src),	    ICMP_TTL, 0, IP_PROTO_ICMP);  pbuf_free(q);}#endif /* IP_FORWARD */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩亚洲欧美综合| 91福利国产成人精品照片| 三级在线观看一区二区| 亚洲一区二区欧美| 亚洲成a人片在线观看中文| 亚洲精品网站在线观看| 亚洲精品视频在线看| 亚洲最大的成人av| 天天操天天综合网| 蜜桃一区二区三区在线观看| 捆绑紧缚一区二区三区视频| 精品一二线国产| 国产69精品一区二区亚洲孕妇 | 一本大道久久精品懂色aⅴ| 成人av电影观看| 色94色欧美sute亚洲线路二| 欧美日韩一级视频| www国产成人免费观看视频 深夜成人网| 日韩精品中午字幕| 国产清纯白嫩初高生在线观看91 | 91免费看`日韩一区二区| 91同城在线观看| 欧美视频一区在线| 欧美成人女星排名| 亚洲欧洲一区二区三区| 亚洲成a人片在线不卡一二三区| 日韩精品一二三| 国产精品18久久久久久久久| 99这里都是精品| 91精品国产一区二区人妖| 国产午夜精品美女毛片视频| 亚洲视频网在线直播| 日本三级亚洲精品| 成人短视频下载| 日韩视频免费观看高清在线视频| 久久久精品一品道一区| 亚洲成人综合视频| 国产a级毛片一区| 3d动漫精品啪啪| 日韩理论片在线| 韩国理伦片一区二区三区在线播放| 91亚洲男人天堂| 久久日一线二线三线suv| 亚洲精品高清在线观看| 国产精品白丝jk黑袜喷水| 欧美日韩小视频| 亚洲欧美在线另类| 国产精品亚洲专一区二区三区 | 91精品国产免费| 中文字幕在线观看不卡| 久久69国产一区二区蜜臀| 色婷婷精品久久二区二区蜜臀av | 亚洲成av人片在线观看无码| 成人动漫在线一区| 欧美精品一区二区三区四区| 亚洲一区二区三区不卡国产欧美| 成人亚洲一区二区一| 久久―日本道色综合久久| 日韩精品一二三区| 欧美色男人天堂| 一区二区三区毛片| 北岛玲一区二区三区四区| 国产亚洲综合av| 经典三级在线一区| 日韩久久久精品| 免费人成黄页网站在线一区二区 | 日本视频中文字幕一区二区三区| 色婷婷亚洲一区二区三区| 1024精品合集| 成人h动漫精品| 国产精品久久久久毛片软件| 成人一区在线看| 国产蜜臀av在线一区二区三区| 国产一区日韩二区欧美三区| 日韩免费电影一区| 精品夜夜嗨av一区二区三区| 久久综合五月天婷婷伊人| 看电视剧不卡顿的网站| 欧美videofree性高清杂交| 日韩电影在线免费观看| 欧美一区二区视频在线观看2020 | 国产色综合一区| 成人性视频免费网站| 中文字幕精品综合| 91亚洲精品久久久蜜桃| 亚洲一区二区欧美激情| 欧美精品乱人伦久久久久久| 蜜桃精品在线观看| 国产亚洲一区二区三区在线观看 | 婷婷丁香久久五月婷婷| 欧美一三区三区四区免费在线看| 日本vs亚洲vs韩国一区三区| 精品国一区二区三区| 国产综合色精品一区二区三区| 久久久久亚洲综合| 91丝袜美腿高跟国产极品老师| 一区二区三国产精华液| 欧美一区二区日韩| 成人午夜电影久久影院| 亚洲免费观看高清完整版在线| 欧美日韩中文一区| 久久精品国产免费看久久精品| 久久精品欧美一区二区三区不卡| 91一区一区三区| 免费日本视频一区| 国产精品美女久久久久久久| 欧美三级欧美一级| 精品一区二区在线观看| 亚洲免费观看视频| 欧美大度的电影原声| av不卡一区二区三区| 免费在线欧美视频| 国产精品久久久爽爽爽麻豆色哟哟 | 精品福利一区二区三区| 成人久久18免费网站麻豆 | 国产精品久久久爽爽爽麻豆色哟哟| 在线亚洲欧美专区二区| 国产一区二区网址| 亚洲自拍偷拍av| 国产日产欧美一区二区三区| 欧美日本一区二区在线观看| 国产一区 二区 三区一级| 亚洲国产一区二区a毛片| 久久久亚洲精华液精华液精华液| 欧美熟乱第一页| 99精品桃花视频在线观看| 老汉av免费一区二区三区| 亚洲午夜在线观看视频在线| 中文字幕国产一区| 久久综合视频网| 日韩视频免费观看高清完整版 | 日韩一区二区三区电影在线观看| 99精品欧美一区二区蜜桃免费| 美女视频黄 久久| 亚洲福利视频导航| 一区二区三区免费网站| 一区精品在线播放| 国产精品免费aⅴ片在线观看| 欧美精品一区二区高清在线观看| 在线观看免费成人| 91成人在线免费观看| 色噜噜偷拍精品综合在线| 成人动漫av在线| 成人免费视频视频在线观看免费| 精品一区二区久久久| 激情综合网最新| 久久精品久久精品| 麻豆精品国产传媒mv男同| 青青草97国产精品免费观看| 亚洲3atv精品一区二区三区| 一区二区三区在线视频观看| 亚洲免费毛片网站| 亚洲激情五月婷婷| 亚洲综合免费观看高清完整版在线| 亚洲色图视频网| 亚洲伊人色欲综合网| 亚洲综合另类小说| 丝袜国产日韩另类美女| 日韩av网站免费在线| 美女mm1313爽爽久久久蜜臀| 美女网站色91| 国产精品一区二区你懂的| 丁香六月综合激情| 91麻豆免费在线观看| 欧美三区在线视频| 日韩三级中文字幕| 久久久www成人免费无遮挡大片| 亚洲国产精品激情在线观看| 成人免费视频在线观看| 亚洲成av人片一区二区梦乃| 日韩成人精品在线观看| 国内精品免费**视频| 国产成人在线观看| 91久久国产综合久久| 91精品国产全国免费观看| 国产午夜亚洲精品不卡| 亚洲日本va在线观看| 日韩va欧美va亚洲va久久| 国产一区二区免费视频| 色婷婷综合久色| 欧美大片国产精品| 亚洲人成电影网站色mp4| 午夜精品福利在线| 国产精品99久久久久久有的能看| 91最新地址在线播放| 制服丝袜成人动漫| 国产精品久久看| 轻轻草成人在线| 97精品国产97久久久久久久久久久久| 欧美视频一区二区三区在线观看| 日韩欧美国产wwwww| 亚洲免费毛片网站| 国产精品资源在线看| 7777精品伊人久久久大香线蕉经典版下载 | 日韩欧美国产电影| 亚洲视频一区在线观看| 国产一区二区福利| 欧美一级艳片视频免费观看| 中文字幕不卡的av| 美女久久久精品|