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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ip6t_ah.c

?? 優(yōu)龍2410linux2.6.8內(nèi)核源代碼
?? C
字號:
/* Kernel module to match AH parameters. *//* (C) 2001-2002 Andras Kis-Szabo <kisza@sch.bme.hu> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#include <linux/module.h>#include <linux/skbuff.h>#include <linux/ipv6.h>#include <linux/types.h>#include <net/checksum.h>#include <net/ipv6.h>#include <linux/netfilter_ipv6/ip6_tables.h>#include <linux/netfilter_ipv6/ip6t_ah.h>MODULE_LICENSE("GPL");MODULE_DESCRIPTION("IPv6 AH match");MODULE_AUTHOR("Andras Kis-Szabo <kisza@sch.bme.hu>");#if 0#define DEBUGP printk#else#define DEBUGP(format, args...)#endif/* Returns 1 if the spi is matched by the range, 0 otherwise */static inline intspi_match(u_int32_t min, u_int32_t max, u_int32_t spi, int invert){       int r=0;       DEBUGP("ah spi_match:%c 0x%x <= 0x%x <= 0x%x",invert? '!':' ',              min,spi,max);       r=(spi >= min && spi <= max) ^ invert;       DEBUGP(" result %s\n",r? "PASS\n" : "FAILED\n");       return r;}static intmatch(const struct sk_buff *skb,      const struct net_device *in,      const struct net_device *out,      const void *matchinfo,      int offset,      const void *protohdr,      u_int16_t datalen,      int *hotdrop){       struct ip_auth_hdr *ah = NULL;       const struct ip6t_ah *ahinfo = matchinfo;       unsigned int temp;       int len;       u8 nexthdr;       unsigned int ptr;       unsigned int hdrlen = 0;       /*DEBUGP("IPv6 AH entered\n");*/       /* if (opt->auth == 0) return 0;       * It does not filled on output */       /* type of the 1st exthdr */       nexthdr = skb->nh.ipv6h->nexthdr;       /* pointer to the 1st exthdr */       ptr = sizeof(struct ipv6hdr);       /* available length */       len = skb->len - ptr;       temp = 0;        while (ip6t_ext_hdr(nexthdr)) {               struct ipv6_opt_hdr *hdr;              DEBUGP("ipv6_ah header iteration \n");              /* Is there enough space for the next ext header? */                if (len < (int)sizeof(struct ipv6_opt_hdr))                        return 0;              /* No more exthdr -> evaluate */                if (nexthdr == NEXTHDR_NONE) {                     break;              }              /* ESP -> evaluate */                if (nexthdr == NEXTHDR_ESP) {                     break;              }              hdr=(struct ipv6_opt_hdr *)skb->data+ptr;              /* Calculate the header length */                if (nexthdr == NEXTHDR_FRAGMENT) {                        hdrlen = 8;                } else if (nexthdr == NEXTHDR_AUTH)                        hdrlen = (hdr->hdrlen+2)<<2;                else                        hdrlen = ipv6_optlen(hdr);              /* AH -> evaluate */                if (nexthdr == NEXTHDR_AUTH) {                     temp |= MASK_AH;                     break;              }              /* set the flag */              switch (nexthdr){                     case NEXTHDR_HOP:                     case NEXTHDR_ROUTING:                     case NEXTHDR_FRAGMENT:                     case NEXTHDR_AUTH:                     case NEXTHDR_DEST:                            break;                     default:                            DEBUGP("ipv6_ah match: unknown nextheader %u\n",nexthdr);                            return 0;                            break;              }                nexthdr = hdr->nexthdr;                len -= hdrlen;                ptr += hdrlen;		if ( ptr > skb->len ) {			DEBUGP("ipv6_ah: new pointer too large! \n");			break;		}        }       /* AH header not found */       if ( temp != MASK_AH ) return 0;       if (len < (int)sizeof(struct ip_auth_hdr)){	       *hotdrop = 1;       		return 0;       }       ah = (struct ip_auth_hdr *) (skb->data + ptr);       DEBUGP("IPv6 AH LEN %u %u ", hdrlen, ah->hdrlen);       DEBUGP("RES %04X ", ah->reserved);       DEBUGP("SPI %u %08X\n", ntohl(ah->spi), ntohl(ah->spi));       DEBUGP("IPv6 AH spi %02X ",       		(spi_match(ahinfo->spis[0], ahinfo->spis[1],                           ntohl(ah->spi),                           !!(ahinfo->invflags & IP6T_AH_INV_SPI))));       DEBUGP("len %02X %04X %02X ",       		ahinfo->hdrlen, hdrlen,       		(!ahinfo->hdrlen ||                           (ahinfo->hdrlen == hdrlen) ^                           !!(ahinfo->invflags & IP6T_AH_INV_LEN)));       DEBUGP("res %02X %04X %02X\n",        		ahinfo->hdrres, ah->reserved,       		!(ahinfo->hdrres && ah->reserved));       return (ah != NULL)              &&              (spi_match(ahinfo->spis[0], ahinfo->spis[1],                           ntohl(ah->spi),                           !!(ahinfo->invflags & IP6T_AH_INV_SPI)))              &&              (!ahinfo->hdrlen ||                           (ahinfo->hdrlen == hdrlen) ^                           !!(ahinfo->invflags & IP6T_AH_INV_LEN))              &&              !(ahinfo->hdrres && ah->reserved);}/* Called when user tries to insert an entry of this type. */static intcheckentry(const char *tablename,          const struct ip6t_ip6 *ip,          void *matchinfo,          unsigned int matchinfosize,          unsigned int hook_mask){       const struct ip6t_ah *ahinfo = matchinfo;       if (matchinfosize != IP6T_ALIGN(sizeof(struct ip6t_ah))) {              DEBUGP("ip6t_ah: matchsize %u != %u\n",                      matchinfosize, IP6T_ALIGN(sizeof(struct ip6t_ah)));              return 0;       }       if (ahinfo->invflags & ~IP6T_AH_INV_MASK) {              DEBUGP("ip6t_ah: unknown flags %X\n",                      ahinfo->invflags);              return 0;       }       return 1;}static struct ip6t_match ah_match = {	.name		= "ah",	.match		= &match,	.checkentry	= &checkentry,	.me		= THIS_MODULE,};static int __init init(void){       return ip6t_register_match(&ah_match);}static void __exit cleanup(void){       ip6t_unregister_match(&ah_match);}module_init(init);module_exit(cleanup);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人无遮挡在线视频| 欧美xxxxxxxx| 精品国产乱码久久久久久牛牛| 中文字幕中文乱码欧美一区二区 | 久久亚洲精精品中文字幕早川悠里| 久久久91精品国产一区二区精品| 欧美激情一区二区三区四区| 日欧美一区二区| 欧美专区亚洲专区| 亚洲色图在线播放| 成人高清伦理免费影院在线观看| 日韩欧美一二三| 三级成人在线视频| 欧美伊人久久久久久久久影院| 136国产福利精品导航| 国产精品一卡二卡| 精品国产自在久精品国产| 亚洲成人资源在线| 欧美日韩中文国产| 亚洲国产美女搞黄色| 91尤物视频在线观看| 国产精品免费视频一区| 国产麻豆视频精品| 久久蜜桃av一区精品变态类天堂| 久久精品免费观看| 日韩欧美高清一区| 美国精品在线观看| 欧美大胆一级视频| 久久99精品久久久久久| 日韩欧美一级精品久久| 亚洲成av人片一区二区| 日本一区二区三区四区| 狠狠色丁香久久婷婷综| 2023国产精品自拍| 国产一本一道久久香蕉| 国产精品日韩成人| av网站一区二区三区| 亚洲精品一二三| 在线成人免费视频| 美女国产一区二区三区| 久久久国产午夜精品| 国产精一区二区三区| 中文一区在线播放| 91美女在线观看| 亚洲不卡在线观看| 日韩一区二区免费电影| 狠狠久久亚洲欧美| 国产精品免费aⅴ片在线观看| 成人18视频日本| 亚洲国产你懂的| 日韩欧美久久一区| 成人免费毛片app| 亚洲精品中文字幕乱码三区| 欧美久久免费观看| 久久99国产精品免费网站| 国产日韩高清在线| 欧美色图在线观看| 国产伦理精品不卡| 亚洲精品亚洲人成人网在线播放| 欧美喷水一区二区| 韩国中文字幕2020精品| 国产精品婷婷午夜在线观看| 欧美在线观看18| 久久国产欧美日韩精品| 综合色中文字幕| 日韩三级中文字幕| 色婷婷亚洲综合| 久久99精品久久久| 亚洲伊人伊色伊影伊综合网| 久久先锋影音av| 欧美丝袜自拍制服另类| 国产一区二区三区久久悠悠色av| 亚洲精品视频自拍| 久久日一线二线三线suv| 日本高清无吗v一区| 国产乱国产乱300精品| 亚洲国产精品一区二区久久| 久久九九久久九九| 日韩欧美综合在线| 欧美色男人天堂| 成人精品免费视频| 国产一区二区不卡在线| 三级不卡在线观看| 亚洲一区二区三区四区五区中文| 久久免费视频一区| 欧美一级片在线看| 在线亚洲一区观看| 91网址在线看| 夫妻av一区二区| 久久 天天综合| 亚洲亚洲精品在线观看| 亚洲欧洲制服丝袜| 国产精品久久久久7777按摩| 亚洲精品在线观| 日韩免费看的电影| 91麻豆精品国产91久久久久| 欧美日韩综合在线免费观看| av电影天堂一区二区在线观看| 精品亚洲国产成人av制服丝袜| 日本午夜一本久久久综合| 一区二区视频在线看| 亚洲欧洲日产国产综合网| 国产清纯白嫩初高生在线观看91| 欧美成人乱码一区二区三区| 欧美伦理电影网| 在线区一区二视频| 欧美曰成人黄网| 91黄色激情网站| 欧洲精品视频在线观看| 91国偷自产一区二区使用方法| av午夜一区麻豆| 91国模大尺度私拍在线视频| 91国产免费看| 欧美男同性恋视频网站| 制服.丝袜.亚洲.另类.中文| 91精品国产综合久久久久久久久久 | 国产精品久久久久永久免费观看| 中文字幕精品一区二区精品绿巨人| 久久影音资源网| 国产精品人人做人人爽人人添| 日本一区二区三区电影| 中文字幕 久热精品 视频在线| 国产精品国产a| 亚洲夂夂婷婷色拍ww47| 日日夜夜精品视频天天综合网| 日韩av电影天堂| 国产一区二区久久| 91亚洲永久精品| 91麻豆精品国产91久久久久| 久久品道一品道久久精品| 欧美国产一区二区| 一区二区久久久| 蜜乳av一区二区三区| 国产成人av一区二区三区在线| 99这里都是精品| 在线不卡中文字幕| 精品福利在线导航| 专区另类欧美日韩| 天堂蜜桃一区二区三区| 激情六月婷婷综合| jlzzjlzz欧美大全| 欧美日韩国产欧美日美国产精品| 日韩欧美色综合| 日韩毛片视频在线看| 丝袜脚交一区二区| 成人久久18免费网站麻豆| 欧美视频一区二区三区| 久久久久久久久蜜桃| 亚洲精品v日韩精品| 九色综合狠狠综合久久| 99re8在线精品视频免费播放| 欧美久久久久久久久中文字幕| 久久午夜羞羞影院免费观看| 亚洲精选一二三| 国产精品自拍三区| 欧美日韩黄色影视| 国产欧美一区视频| 日韩高清一区在线| 日本高清成人免费播放| 精品久久久久久久久久久久久久久 | 亚洲综合999| 国产一区三区三区| 欧美性一二三区| 国产视频一区不卡| 日本特黄久久久高潮| 91久久久免费一区二区| 久久久777精品电影网影网| 日韩精品亚洲一区| 日本久久一区二区| 国产精品久久三区| 国产高清在线观看免费不卡| 欧美一区二区三区免费大片| 亚洲欧美激情一区二区| 国产99久久久国产精品免费看 | 麻豆91免费看| 欧美色综合久久| 亚洲女女做受ⅹxx高潮| 国产精品亚洲第一| www欧美成人18+| 免费精品99久久国产综合精品| 在线免费亚洲电影| 亚洲天堂福利av| 91亚洲午夜精品久久久久久| 国产亚洲短视频| 国产一本一道久久香蕉| 久久综合网色—综合色88| 免费看欧美美女黄的网站| 欧美视频在线观看一区二区| 中文字幕亚洲区| 91在线视频免费观看| 国产精品区一区二区三| 丁香六月久久综合狠狠色| 精品国产成人系列| 韩国欧美国产一区| 国产亚洲精品超碰| 成人h版在线观看| 中文字幕一区二区三区四区 | 亚洲与欧洲av电影| 欧美在线视频日韩| 天天色天天操综合|