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

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

?? tun.c

?? wm PNE 3.3 source code, running at more than vxworks6.x version.
?? C
字號:
/* $Header: /usr/cvsroot/target/src/wrn/wm/demo/lib/tun.c,v 1.2 2001/11/08 15:56:30 tneale Exp $ *//* * Copyright (C) 1999-2005 Wind River Systems, Inc. * All rights reserved.  Provided under license only. * Distribution or other use of this software is only * permitted pursuant to the terms of a license agreement * from Wind River Systems (and is otherwise prohibited). * Refer to that license agreement for terms of use. *//**************************************************************************** *  Copyright 1998 Integrated Systems, Inc. *  All rights reserved. ****************************************************************************//* * $Log: tun.c,v $ * Revision 1.2  2001/11/08 15:56:30  tneale * Updated for newest file layout * * Revision 1.1.1.1  2001/11/05 17:48:44  tneale * Tornado shuffle * * Revision 1.7  2001/01/19 22:23:56  paul * Update copyright. * * Revision 1.6  2000/10/16 19:21:55  paul * Restore sockets and mempool code. * * Revision 1.5  2000/03/17 00:12:48  meister * Update copyright message * * Revision 1.4  2000/03/13 21:22:13  paul * Removed some code that we are no longer working on. * * Revision 1.3  1999/11/05 22:29:07  paul * Updated driver structs to reflect conditional backwards-compatibility * fields and new fields. * * Revision 1.2  1998/11/23 20:52:59  wes * Make MEDIA_CTL_CHECK_ADDRESS succeed rather than die. * Die using BUG instead of abort() for unknown media_ctl ops. * * Revision 1.1  1998/06/11 20:01:58  wes * Snark driver to talk to BSD tunnel driver.. *//* [clearcase]modification history-------------------01a,19apr05,job  update copyright notices*//* * Use the *BSD tun0 / /dev/tun interface to glue snark into the real world. * This is a work in progress; ifconfig'ing the host side of the interface * and adding appropriate routes on the other side is currently left as * a exercise for the user of this driver. */#include <wrn/wm/attache/config.h>#include <wrn/wm/attache/mib.h>#include <wrn/wm/attache/timer.h>#include <wrn/wm/attache/packet.h>#include <wrn/wm/attache/net.h>#include <wrn/wm/attache/route.h>#include <wrn/wm/attache/ip.h>#include <wrn/wm/attache/slowtime.h>#include <wrn/wm/attache/glue.h>#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <dirent.h>#include <errno.h>#include <fcntl.h>#include <sys/file.h>#include <unistd.h>#include <sys/stat.h>#include <sys/socket.h>#include <sys/un.h>#include <assert.h>#include <sys/time.h>#include <wrn/wm/demo/snarklib.h>#include <wrn/wm/demo/read_ini.h>#define TEN_MEGABITS    10000000#include <wrn/wm/demo/bsdif.h>static void tun_driver_read (int fd, void *cookie, unsigned flags){  char buf[2048];  struct net *net = cookie;  struct packet *p;    if ((net->flags & NF_DRIVER_DOWN) == 0 && (flags & BSDIF_READ) != 0)   {    int i;        do     {      i = read(fd, buf, sizeof(buf));    } while  ((i<0) && (errno == EINTR));    if (i <= 0)      return;    p = pkt_alloc(i+MaxLnh);    if (p == NULL)      return;    p->pkt_data += MaxLnh;    p->pkt_datalen -= MaxLnh;    p->pkt_n = net;    MEMCPY(p->pkt_data, buf, i);    ip_rcv(p);  }}static void tun_driver_init(struct net *net){  struct bsdif *bif = net->specific;  char *name = net->s_name;  char namebuf[256];  net->flags |= NF_DRIVER_DOWN;  net->speed = TEN_MEGABITS;  sprintf(namebuf, "/dev/%s", name);  if ((bif->fd = open(namebuf, O_RDWR, 0)) < 0)    return;  bif->handler = tun_driver_read;  bif->flags = BSDIF_READ;  net->flags &= ~NF_DRIVER_DOWN;}static void tun_driver_send (struct packet *p){  struct bsdif *bif = p->pkt_n->specific;  if (write(bif->fd, p->pkt_data, p->pkt_datalen) < 0)   {    fputs(p->pkt_n->s_name, stderr);    perror(": write() failure");  }  pkt_free(p);}static void tun_ip_send (struct net *net, packet *p, inaddr_t host){  p->pkt_n = net;  tun_driver_send(p);}static void tun_driver_close (struct net *net){  struct bsdif *bif = net->specific;    if ((net->flags & NF_DRIVER_DOWN) == 0) {    close(bif->fd);    net->flags |= NF_DRIVER_DOWN;  }}static int tun_media_ctl (struct net *net, int code, void *cookie){  switch (code)   {  case MEDIA_CTL_INIT:    tun_driver_init(net);    return MEDIA_CTL_GOOD;  case MEDIA_CTL_CLOSE:    tun_driver_close(net);    return MEDIA_CTL_GOOD;  case MEDIA_CTL_IP_UP:    net->flags &= ~NF_DOWN;    net->status_tstamp = GLUE_NOW();#if INSTALL_ATTACHE_MIB    net->ifLastChange = centiseconds_since_attache_boot();#endif    ip_advise_if_up(net);    return MEDIA_CTL_GOOD;   case MEDIA_CTL_IP_DOWN:    net->flags |= NF_DOWN;    net->status_tstamp = GLUE_NOW();#if INSTALL_ATTACHE_MIB    net->ifLastChange = centiseconds_since_attache_boot();#endif    ip_advise_if_down(net);    return MEDIA_CTL_GOOD;  case MEDIA_CTL_ADD_IPV4_ADDRESS:    return MEDIA_CTL_GOOD;  case MEDIA_CTL_DELETE_IPV4_ADDRESS:    return MEDIA_CTL_GOOD;  case MEDIA_CTL_CHECK_ADDRESS:    return MEDIA_CTL_GOOD;  default:    BUG (BUG_SNARK_TUN_ERROR, BUG_FATAL, net,	 (BUG_OUT, "%s: unknown media_ctl opcode %d", net->s_name, code));    return MEDIA_CTL_ERROR;  }}static struct driver tun_driver = {  tun_driver_init,              /* Interface initialization routine  */  tun_driver_send,              /* Raw packet send routine */  tun_ip_send,			/* IP packet send back compat routine */  0,		                /* ARP packet send encapsulation routine */  0,    			/* Test routine (unused) */  tun_driver_close,		/* Interface close routine */  "tun",			/* Driver short name */  "Berkeley Packet Filter Ethernet",	/* Driver long name */  14,				/* Local net header length */  0,				/* Local net trailer length */  1500,				/* Real Ethernet frame size is this... */  IF_PROP_SERIAL,		/* MIB type of interfaces using this driver */  0,				/* arp hardware type (none) */  tun_media_ctl,		/* Media control routine */  0,				/* ipv6 send.. */  0				/* ipv4 send.. */};void tun_driver_find (void (*config)(char *, struct driver *, int, bits16_t, unsigned, bits32_t)){  int instance;  char name[10];    for (instance = 0; instance < 2; instance++)   {    sprintf(name, "%d", instance);    config (name, &tun_driver, instance, 0,	    tun_driver.maxlen - tun_driver.lnh - tun_driver.lnt, TEN_MEGABITS);  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合久久综合九色| 欧美欧美欧美欧美首页| 另类小说一区二区三区| 午夜免费久久看| 亚洲福利视频三区| 午夜精品久久久久久久蜜桃app| 亚洲第一久久影院| 天天综合色天天| 久久www免费人成看片高清| 美女www一区二区| 国产在线播放一区二区三区| 国产一区二区0| 成人18视频在线播放| 成人av在线资源| 在线精品视频小说1| 欧美另类一区二区三区| 亚洲精品一区二区三区99| 2020日本不卡一区二区视频| 国产视频一区在线观看| **欧美大码日韩| 亚洲电影欧美电影有声小说| 麻豆国产欧美一区二区三区| 国产精品亚洲а∨天堂免在线| 成人免费视频国产在线观看| 91国产福利在线| 精品国产1区二区| 亚洲视频1区2区| 欧美aaaaa成人免费观看视频| 国产精品99精品久久免费| 色综合天天性综合| 欧美一级欧美三级| 国产女主播视频一区二区| 一区二区久久久久| 久久99热狠狠色一区二区| 91小视频免费观看| 欧美一区三区四区| 亚洲人吸女人奶水| 激情欧美一区二区三区在线观看| 97精品国产露脸对白| 日韩欧美自拍偷拍| 亚洲图片激情小说| 国内精品伊人久久久久av一坑| 成人免费三级在线| 日韩欧美高清在线| 亚洲午夜国产一区99re久久| 国产精品一二三在| 欧美一级二级三级蜜桃| 亚洲精品videosex极品| 国产精品一区免费在线观看| 欧美日韩国产影片| 亚洲日本中文字幕区| 国产成人免费在线观看不卡| 在线播放国产精品二区一二区四区| 久久久精品国产免费观看同学| 日韩精品午夜视频| 日本韩国欧美国产| 亚洲欧美另类小说| 成av人片一区二区| 久久疯狂做爰流白浆xx| 成熟亚洲日本毛茸茸凸凹| 精品欧美一区二区在线观看| 亚洲一区二区三区不卡国产欧美| 成人黄色小视频| 亚洲国产岛国毛片在线| 激情图区综合网| 欧美大白屁股肥臀xxxxxx| 日本在线观看不卡视频| 欧美精品一卡二卡| 日韩精品电影一区亚洲| 欧美精品在线视频| 午夜亚洲福利老司机| 欧美四级电影网| 一区二区在线观看免费| 精品视频免费在线| 亚洲第一福利视频在线| 欧美日韩一区高清| 日韩专区一卡二卡| 91精品国产91热久久久做人人| 亚洲一区二区三区中文字幕| 欧美日韩精品一区二区三区四区| 亚洲国产一二三| 欧美一区二区三区在线看| 蜜桃精品视频在线| 久久免费国产精品| 成人久久久精品乱码一区二区三区 | 国产精品456露脸| 国产亚洲一区二区三区在线观看| 国产成人午夜99999| 国产精品久久久久久久午夜片| 波多野结衣在线一区| 亚洲欧洲成人精品av97| 色94色欧美sute亚洲线路二| 亚洲一区成人在线| 精品久久久三级丝袜| 国产成人午夜99999| 一区二区在线观看不卡| 欧美一区二区视频网站| 国产一二精品视频| 亚洲乱码国产乱码精品精可以看| 欧美日韩高清一区二区| 精品一区免费av| 中文字幕一区二区三区四区不卡 | 欧美色精品天天在线观看视频| 一级特黄大欧美久久久| 欧美一区二区视频在线观看2022| 国产精品自在在线| 一区二区三区四区不卡视频| 欧美丰满少妇xxxxx高潮对白| 国产伦精品一区二区三区免费迷| 亚洲黄一区二区三区| 69精品人人人人| 成人影视亚洲图片在线| 亚洲v中文字幕| 欧美国产精品一区二区| 69堂国产成人免费视频| 99久久婷婷国产综合精品| 亚洲bdsm女犯bdsm网站| 国产精品美女久久久久久久久| 7799精品视频| aaa欧美色吧激情视频| 麻豆国产精品一区二区三区| 亚洲精品v日韩精品| 久久久一区二区| 91麻豆精品国产91久久久资源速度| 国产精品99久久不卡二区| 亚洲成在人线免费| 亚洲免费观看高清完整版在线| 日韩美女视频一区二区在线观看| 在线免费观看日本欧美| 成人av资源下载| 国产一区二区中文字幕| 免费看欧美女人艹b| 亚洲国产精品麻豆| 亚洲欧美成aⅴ人在线观看 | 国产黄色精品网站| 麻豆成人91精品二区三区| 亚洲国产精品久久人人爱| 最新中文字幕一区二区三区 | 91久久国产最好的精华液| 国产风韵犹存在线视精品| 蜜桃av噜噜一区| 日韩电影免费在线| 爽爽淫人综合网网站| 亚洲欧美日韩中文播放| 中文字幕日本乱码精品影院| 中文一区二区在线观看| 久久精品亚洲国产奇米99| 久久综合中文字幕| 久久久久国产精品麻豆ai换脸| 亚洲精品在线免费播放| 精品国产一区二区在线观看| 欧美一区二区网站| 欧美va在线播放| 久久久综合视频| 日本一区二区不卡视频| 国产亚洲污的网站| 国产精品乱人伦一区二区| 中文字幕一区二区日韩精品绯色| 中文在线一区二区| 亚洲乱码国产乱码精品精小说| 亚洲精品欧美综合四区| 亚洲自拍偷拍网站| 91精品免费观看| 成人国产精品免费| 国产一区二区毛片| 国产精品一二二区| 国产成人免费在线观看不卡| 成人午夜精品一区二区三区| 91小视频在线观看| 欧美日韩成人一区二区| 日韩一区二区在线播放| 精品福利二区三区| 国产欧美一区二区精品忘忧草 | 精品久久久久一区| 国产三级精品视频| 亚洲欧洲精品一区二区精品久久久 | 日韩欧美资源站| 日本一区二区三区国色天香| 亚洲色图欧美在线| 亚洲成人先锋电影| 国产精品一区二区黑丝| 91福利视频网站| 日韩西西人体444www| 国产精品免费免费| 青青草国产精品97视觉盛宴| 国产成人免费视频一区| 色8久久精品久久久久久蜜 | 国产呦萝稀缺另类资源| 99国产精品久久久| 91精品国产综合久久小美女| 久久蜜桃av一区二区天堂| 亚洲图片自拍偷拍| 国产电影一区二区三区| 欧美美女激情18p| 国产精品国产精品国产专区不蜜| 免费在线观看成人| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产在线视视频有精品| 欧美丝袜丝交足nylons| 欧美经典三级视频一区二区三区|