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

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

?? pcapif.c

?? lwip ---vc移植
?? C
字號:
/*
 * Copyright (c) 2001, 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. Neither the name of the Institute nor the names of its contributors 
 *    may be used to endorse or promote products derived from this software 
 *    without specific prior written permission. 
 *
 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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>
 *
 * $Id: pcapif.c,v 1.2 2001/12/14 20:13:45 adam Exp $
 */

#include "lwip/debug.h"

#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/stat.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#include <pcap.h>

#include "netif/arp.h"

#include "lwip/stats.h"

#include "lwip/def.h"
#include "lwip/mem.h"
#include "lwip/pbuf.h"
#include "netif/unixif.h"
#include "lwip/sys.h"

#include "lwip/ip.h"

#include "lwip/list.h"

#include "netif/tcpdump.h"

struct pcapif {
  pcap_t *pd;
  sys_sem_t sem;
  u8_t pkt[2048];
  u32_t len;
  u32_t lasttime;
  struct pbuf *p;
  struct eth_addr *ethaddr;
};

static char errbuf[PCAP_ERRBUF_SIZE];

/*-----------------------------------------------------------------------------------*/
static err_t
pcapif_output(struct netif *netif, struct pbuf *p,
	      struct ip_addr *ipaddr)
{
  return ERR_OK;
}
/*-----------------------------------------------------------------------------------*/
static void
timeout(void *arg)
{
  struct netif *netif;
  struct pcapif *pcapif;
  struct pbuf *p, *q;
  u8_t *bufptr;
  struct eth_hdr *ethhdr;
  
  netif = (struct netif *)arg;
  pcapif = netif->state;
  ethhdr = (struct eth_hdr *)pcapif->pkt;

  
  if(htons(ethhdr->type) != ETHTYPE_IP ||
     ip_lookup(pcapif->pkt + 14, netif)) {
    
    /* We allocate a pbuf chain of pbufs from the pool. */
    p = pbuf_alloc(PBUF_LINK, pcapif->len, PBUF_POOL);
    
    if(p != NULL) {
      /* We iterate over the pbuf chain until we have read the entire
	 packet into the pbuf. */
      bufptr = (u_char *)pcapif->pkt;
      for(q = p; q != NULL; q = q->next) {
	/* Read enough bytes to fill this pbuf in the chain. The
	   avaliable data in the pbuf is given by the q->len
	   variable. */
	/* read data into(q->payload, q->len); */
	bcopy(bufptr, q->payload, q->len);
	bufptr += q->len;
      }

      ethhdr = p->payload;
      switch(htons(ethhdr->type)) {
      case ETHTYPE_IP:
	arp_ip_input(netif, p);
	pbuf_header(p, -14);
	netif->input(p, netif);
	break;
      case ETHTYPE_ARP:
	p = arp_arp_input(netif, pcapif->ethaddr, p);
	if(p != NULL) {
	  printf("ARP outout\n");
	  pbuf_free(p);
	}
	break;
      default:
	pbuf_free(p);
	break;
      }
    }
  } else {
    printf("ip_lookup dropped\n");
  }

  sys_sem_signal(pcapif->sem);
}
/*-----------------------------------------------------------------------------------*/
static void
callback(u_char *arg, const struct pcap_pkthdr *hdr, const u_char *pkt)
{
  struct netif *netif;
  struct pcapif *pcapif;
  u32_t time, lasttime;
  
  netif = (struct netif *)arg;
  pcapif = netif->state;

  pcapif->len = hdr->len;
  
  bcopy(pkt, pcapif->pkt, hdr->len);

  time = hdr->ts.tv_sec * 1000 + hdr->ts.tv_usec / 1000;

  lasttime = pcapif->lasttime;
  pcapif->lasttime = time;
  

  if(lasttime == 0) {
    sys_timeout(1000, timeout, netif);
  } else {
    sys_timeout(time - lasttime, timeout, netif);
  }
}
/*-----------------------------------------------------------------------------------*/
static void
pcapif_thread(void *arg)
{
  struct netif *netif;
  struct pcapif *pcapif;
  netif = arg;
  pcapif = netif->state;

  while(1) {
    pcap_loop(pcapif->pd, 1, callback, (u_char *)netif);
    sys_sem_wait(pcapif->sem);
    if(pcapif->p != NULL) {
      netif->input(pcapif->p, netif);
    }
  }
}
/*-----------------------------------------------------------------------------------*/
void
pcapif_init(struct netif *netif)
{
  struct pcapif *p;
    
  p = malloc(sizeof(struct pcapif));
  netif->state = p;
  netif->name[0] = 'p';
  netif->name[1] = 'c';
  netif->output = pcapif_output;

  p->pd = pcap_open_offline("pcapdump", errbuf);
  if(p->pd == NULL) {
    printf("pcapif_init: failed %s\n", errbuf);
    return;
  }

  p->sem = sys_sem_new(0);
  p->p = NULL;
  p->lasttime = 0; 
  
  sys_thread_new(pcapif_thread, netif);
}
/*-----------------------------------------------------------------------------------*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线播放视频一区| 97国产精品videossex| 亚洲精品国产成人久久av盗摄| 精品国精品国产尤物美女| 欧美丰满嫩嫩电影| 欧美卡1卡2卡| 精品国产一区二区三区av性色| 日韩一级二级三级| 久久久久久麻豆| 欧美国产成人精品| 成人免费一区二区三区在线观看 | 国内成人精品2018免费看| 奇米亚洲午夜久久精品| 日韩av电影一区| 极品少妇一区二区| 国产不卡视频在线播放| 一本一道综合狠狠老| 欧美视频精品在线观看| 久久先锋影音av| 久久久一区二区| 亚洲色欲色欲www| 午夜国产精品一区| 极品少妇一区二区| gogo大胆日本视频一区| 在线免费观看日本欧美| 日韩欧美精品在线| 国产精品区一区二区三| 亚洲v日本v欧美v久久精品| 日本成人中文字幕| 波多野结衣中文一区| 色欧美日韩亚洲| 欧美精品一区二区在线观看| 国产精品久久久久影院色老大| 一区二区三区日韩精品视频| 青青国产91久久久久久| 成人免费黄色大片| 在线不卡的av| 亚洲日韩欧美一区二区在线| 蜜桃视频在线观看一区二区| 国产99精品视频| 欧美日韩精品一区二区在线播放| 久久久无码精品亚洲日韩按摩| 综合欧美亚洲日本| 91黄色在线观看| 欧美大片顶级少妇| 亚洲男人电影天堂| 久久国产精品72免费观看| 99r国产精品| 26uuuu精品一区二区| 亚洲国产wwwccc36天堂| 粉嫩高潮美女一区二区三区| 欧美一区永久视频免费观看| 亚洲素人一区二区| 国产一区二区不卡老阿姨| 欧美日韩中文字幕精品| 日韩毛片在线免费观看| 国产乱国产乱300精品| 88在线观看91蜜桃国自产| 综合久久一区二区三区| 国产伦精品一区二区三区视频青涩 | 亚洲一区二区三区在线| 国产69精品一区二区亚洲孕妇| 欧美一区二区三区小说| 亚洲国产综合人成综合网站| 99这里都是精品| 欧美经典一区二区| 国产精品一区二区久久不卡| 日韩免费观看高清完整版在线观看| 亚洲一级电影视频| 色八戒一区二区三区| 亚洲欧美激情小说另类| 91精品久久久久久蜜臀| 亚洲成av人**亚洲成av**| 91香蕉视频mp4| 综合欧美亚洲日本| 91精品办公室少妇高潮对白| 亚洲人成在线播放网站岛国 | 中文无字幕一区二区三区| 久久精品72免费观看| 欧美xxx久久| 久久电影网电视剧免费观看| 久久香蕉国产线看观看99| 国产一区二区0| 国产性做久久久久久| 成人精品一区二区三区四区| 中文字幕一区二区视频| 92国产精品观看| 亚洲与欧洲av电影| 欧美日韩国产综合草草| 毛片一区二区三区| 精品国产一区a| yourporn久久国产精品| 悠悠色在线精品| 欧美日韩电影在线| 久久成人18免费观看| 国产欧美一区二区精品秋霞影院| 不卡高清视频专区| 亚洲激情男女视频| 欧美一区二区大片| 国产一区二区三区国产| 亚洲日本一区二区| 67194成人在线观看| 国产一区二区三区久久久| 成人免费一区二区三区在线观看 | 爽爽淫人综合网网站| 精品国产欧美一区二区| 99riav久久精品riav| 性做久久久久久久久| 精品国产免费一区二区三区香蕉| 成人激情免费电影网址| 亚洲成人免费视| 久久久99精品免费观看不卡| 91在线免费播放| 美女视频一区二区三区| 亚洲视频每日更新| 欧美精品少妇一区二区三区| 国产成人综合在线观看| 亚洲国产精品一区二区尤物区| 欧美精品一区二区三区四区 | 亚洲成人av在线电影| 久久综合狠狠综合久久综合88 | 久久综合九色欧美综合狠狠| 色综合网站在线| 国产一区91精品张津瑜| 亚洲精品欧美激情| 久久精品在线免费观看| 欧美精品久久99久久在免费线| 成人免费看视频| 美国三级日本三级久久99| 亚洲欧美另类图片小说| 久久精品夜夜夜夜久久| 91精品婷婷国产综合久久性色 | 欧美在线视频全部完| 国产成人精品www牛牛影视| 五月天一区二区| 一二三区精品福利视频| 国产精品久久久久7777按摩 | 粉嫩av一区二区三区在线播放| 日韩av一区二区在线影视| 亚洲欧美激情插| 国产精品天干天干在观线| 精品福利一二区| 欧美一区二区黄| 91麻豆精品久久久久蜜臀| 91成人在线精品| 一道本成人在线| 91同城在线观看| 99精品久久只有精品| 成人精品亚洲人成在线| 懂色av中文字幕一区二区三区| 久久国产人妖系列| 另类的小说在线视频另类成人小视频在线| 亚洲综合在线视频| 一区二区三区不卡视频在线观看| 亚洲伦理在线免费看| 综合婷婷亚洲小说| 亚洲码国产岛国毛片在线| 亚洲三级在线看| 亚洲精品欧美专区| 亚洲丰满少妇videoshd| 日韩中文字幕91| 免费高清视频精品| 国产精品一区二区三区99| 国产乱一区二区| 成人18精品视频| 在线一区二区三区四区| 欧美日韩国产一区| 欧美一级欧美三级| 久久综合色8888| 国产精品乱码久久久久久| 亚洲欧洲www| 亚洲第一福利一区| 久久精品理论片| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 在线日韩国产精品| 91精品国产高清一区二区三区蜜臀| 日韩视频在线你懂得| 国产欧美日韩视频一区二区| 国产精品电影院| 香蕉av福利精品导航| 国产一区二区三区在线观看免费视频| 国产不卡视频一区二区三区| 日本道色综合久久| 日韩一区二区三区视频| 中文字幕av一区二区三区免费看| 亚洲乱码精品一二三四区日韩在线 | 国产精品热久久久久夜色精品三区| 亚洲乱码中文字幕综合| 蜜桃视频在线观看一区| 丁香一区二区三区| 欧美区在线观看| 亚洲国产高清aⅴ视频| 亚洲大片精品永久免费| 国产黄人亚洲片| 欧美精品18+| 国产精品免费久久| 玖玖九九国产精品| 欧美日韩一区高清| 国产精品国产三级国产| 日本成人在线网站|