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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ftfil.c

?? netflow,抓包
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/* * Copyright (c) 2001 Mark Fullmer and The Ohio State University * 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. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. * *      $Id: ftfil.c,v 1.18 2003/04/02 16:07:12 maf Exp $ */#include "ftconfig.h"#include "ftlib.h"#include <sys/time.h>#include <sys/types.h>#include <sys/uio.h>#include <sys/socket.h>#include <sys/resource.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/stat.h>#include <ctype.h>#include <syslog.h>#include <dirent.h>#include <limits.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <time.h>#include <fcntl.h>#include <zlib.h>#if HAVE_STRINGS_H #include <strings.h>#endif#if HAVE_STRING_H  #include <string.h>#endif#if !HAVE_STRSEP  char    *strsep (char **, const char *);#endif#define PARSE_PRIMITIVE_TYPE_INIT(A)\  if (!(A = malloc (sizeof *A))) {\    fterr_warn("malloc()");\    return -1;\  }\  bzero(A, sizeof *A);\  A->init = 1;\  A->default_mode = FT_FIL_MODE_DENY;\  lp->cur_primitive->lookup = A;\#define RADIX_TRIE_INIT\  if (!rn_init_called) {\    max_keylen = sizeof(struct radix_sockaddr_in);\    rn_init();\    rn_init_called = 1;\  }\extern int max_keylen;extern u_int32 mask_lookup[];static int rn_init_called;static struct radix_node_head *rhead;enum ftfil_op { FT_FIL_OP_UNSET, FT_FIL_OP_LT, FT_FIL_OP_GT,                   FT_FIL_OP_EQ, FT_FIL_OP_NE, FT_FIL_OP_GE,                   FT_FIL_OP_LE };    enum ftfil_parse_state { PARSE_STATE_UNSET, PARSE_STATE_PRIMITIVE,                          PARSE_STATE_DEFINITION };    enum ftfil_def_match { FT_FIL_DEFINITION_MATCH_UNSET,                               FT_FIL_DEFINITION_MATCH_SRC_AS,                               FT_FIL_DEFINITION_MATCH_DST_AS,                               FT_FIL_DEFINITION_MATCH_IP_SRC_ADDR,                               FT_FIL_DEFINITION_MATCH_IP_DST_ADDR,                               FT_FIL_DEFINITION_MATCH_IP_EXPORTER_ADDR,                               FT_FIL_DEFINITION_MATCH_IP_NEXT_HOP_ADDR,                               FT_FIL_DEFINITION_MATCH_IP_SC_ADDR,                               FT_FIL_DEFINITION_MATCH_IP_PROTOCOL,                               FT_FIL_DEFINITION_MATCH_IP_SRC_PREFIX_LEN,                               FT_FIL_DEFINITION_MATCH_IP_DST_PREFIX_LEN,                               FT_FIL_DEFINITION_MATCH_IP_TOS,                               FT_FIL_DEFINITION_MATCH_IP_MARKED_TOS,                               FT_FIL_DEFINITION_MATCH_IP_TCP_FLAGS,                               FT_FIL_DEFINITION_MATCH_IP_SRC_PORT,                               FT_FIL_DEFINITION_MATCH_IP_DST_PORT,                               FT_FIL_DEFINITION_MATCH_INPUT_IF,                               FT_FIL_DEFINITION_MATCH_OUTPUT_IF,                               FT_FIL_DEFINITION_MATCH_START_TIME,                               FT_FIL_DEFINITION_MATCH_END_TIME,                               FT_FIL_DEFINITION_MATCH_FLOWS,                               FT_FIL_DEFINITION_MATCH_OCTETS,                               FT_FIL_DEFINITION_MATCH_PACKETS,                               FT_FIL_DEFINITION_MATCH_XTRA_PACKETS,                               FT_FIL_DEFINITION_MATCH_DURATION,                               FT_FIL_DEFINITION_MATCH_ENGINE_ID,                               FT_FIL_DEFINITION_MATCH_ENGINE_TYPE,                               FT_FIL_DEFINITION_MATCH_SRC_TAG,                               FT_FIL_DEFINITION_MATCH_DST_TAG,                               FT_FIL_DEFINITION_MATCH_PPS,                               FT_FIL_DEFINITION_MATCH_BPS,                               FT_FIL_DEFINITION_MATCH_RANDOM_SAMPLE };char *op_name_lookup[] = {"Unset", "lt", "gt", "eq", "ne", "ge", "le"};char *mode_name_lookup[] = {"Unset", "permit", "deny"};struct line_parser {  enum ftfil_parse_state state;  enum ftfil_primitive_type type;  enum ftfil_mode mode;  struct ftfil_primitive *cur_primitive;  struct ftfil_def *cur_def;  struct ftfil_match *cur_def_match;  struct ftsym *sym_ip_prot;  struct ftsym *sym_ip_tcp_port;  struct ftsym *sym_asn;  struct ftsym *sym_tag;  struct ftsym *sym_cur;  int lineno;  char *buf, *fname, *word;  };struct ftfil_lookup_ip_address {  struct ftchash *ftch;  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_ip_mask {  FT_STAILQ_HEAD(filipmhead, ftfil_lookup_ip_mask_rec) list;  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_ip_mask_rec {  FT_STAILQ_ENTRY(ftfil_lookup_ip_mask_rec) chain;  u_int32 ip, mask;  int mode; /* FT_FIL_MODE_PERMIT/DENY */};struct ftfil_lookup_ip_prefix_rec {  struct radix_node rt_nodes[2]; /* radix tree glue */  struct radix_sockaddr_in addr;  u_int8 masklen;  int mode; /* FT_FIL_MODE_PERMIT/DENY */};struct ftfil_lookup_ip_prefix {  struct radix_node_head *rhead;  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_as {  u_int8 mode[65536];  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_ip_prot {  u_int8 mode[256];  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_ip_port {  u_int8 mode[65536];  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_ip_tos {  u_int8 mask;  u_int8 mode[256];  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_ip_tcp_flags {  u_int8 mask;  u_int8 mode[256];  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_if_index {  u_int8 mode[65536];  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_engine {  u_int8 mode[256];  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_ip_prefix_len {  u_int8 mode[33];  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_counter_rec {  FT_STAILQ_ENTRY(ftfil_lookup_counter_rec) chain;  u_int32 val;  enum ftfil_op op; /* FT_FIL_OP */  int mode;};struct ftfil_lookup_counter {  FT_STAILQ_HEAD(fillchead, ftfil_lookup_counter_rec) list;  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_double_rec {  FT_STAILQ_ENTRY(ftfil_lookup_double_rec) chain;  double val;  enum ftfil_op op; /* FT_FIL_OP */  int mode;};struct ftfil_lookup_double {  FT_STAILQ_HEAD(filldhead, ftfil_lookup_double_rec) list;  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_tag {  struct ftchash *ftch;  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_tag_mask_rec {  FT_STAILQ_ENTRY(ftfil_lookup_tag_mask_rec) chain;  u_int32 tag, mask;  int mode; /* FT_FIL_MODE_PERMIT/DENY */};struct ftfil_lookup_tag_mask {  FT_STAILQ_HEAD(filtmhead, ftfil_lookup_tag_mask_rec) list;  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_time_rec {  FT_STAILQ_ENTRY(ftfil_lookup_time_rec) chain;  int hour, min, sec;  enum ftfil_op op; /* FT_FIL_OP */  int mode;};struct ftfil_lookup_time {  FT_STAILQ_HEAD(filltmehead, ftfil_lookup_time_rec) list;  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_lookup_rate {  int rate;  enum ftfil_mode mode; /* FT_FIL_MODE_PERMIT/DENY */  enum ftfil_mode default_mode; /* FT_FIL_MODE_PERMIT/DENY */  int init; /* initialized? */};struct ftfil_match_item_cache {  FT_SLIST_ENTRY(ftfil_match_item_cache) chain;  u_int32 time; /* cache time -- only valid for flow == curflow+1 */  void *flow; /* address of flow evaluating -- used to invalidate cache */  enum ftfil_mode mode; /* result FT_FIL_MODE_* */  void *lookup; /* data for evaluator */  int (*eval)(void *lookup, void *rec, struct fts3rec_offsets *fo);};static int walk_free(struct radix_node *rn, struct walkarg *UNUSED);static int ftfil_load_lookup(struct line_parser *lp, char *s, int size,  char *list, int mode);static int parse_definition(struct line_parser *lp,  struct ftfil *ftfil);static int parse_definition_match(struct line_parser *lp,  struct ftfil *ftfil);static int parse_definition_or(struct line_parser *lp,  struct ftfil *ftfil);static int parse_definition_invert(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive(struct line_parser *lp, struct ftfil *ftfil);static int parse_primitive_type(struct line_parser *lp, struct ftfil *ftfil);static int parse_primitive_deny(struct line_parser *lp, struct ftfil *ftfil);static int parse_primitive_permit(struct line_parser *lp, struct ftfil *ftfil);static int parse2_primitive_permitdeny(struct line_parser *lp,  struct ftfil *ftfil, int flag);static int parse_primitive_default(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_mask(struct line_parser *lp, struct ftfil *ftfil);static int parse_primitive_type_asn(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_ip_prot(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_ip_port(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_ip_prefix_len(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_if_index(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_ip_tos(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_ip_tcp_flags(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_engine(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_ip_address(struct line_parser *lp,  struct ftfil *ftfil);int parse_primitive_type_ip_mask(struct line_parser *lp,  struct ftfil *ftfil);int parse_primitive_type_ip_prefix(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_tag(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_tag_mask(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_counter(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_time_date(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_time(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_double(struct line_parser *lp,  struct ftfil *ftfil);static int parse_primitive_type_rate(struct line_parser *lp,  struct ftfil *ftfil);inline int eval_match_src_as(struct ftfil_lookup_as *lookup, char *rec,  struct fts3rec_offsets *fo);inline int eval_match_dst_as(struct ftfil_lookup_as *lookup, char *rec,  struct fts3rec_offsets *fo);inline int eval_match_engine_type(struct ftfil_lookup_engine *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_engine_id(struct ftfil_lookup_engine *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_dst_if_index(struct ftfil_lookup_if_index *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_src_if_index(struct ftfil_lookup_if_index *lookup,  char *rec, struct fts3rec_offsets *fo); inline int eval_match_ip_dst_port(struct ftfil_lookup_ip_port *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_src_port(struct ftfil_lookup_ip_port *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_tcp_flags(struct ftfil_lookup_ip_tcp_flags *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_marked_tos(struct ftfil_lookup_ip_tos *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_tos(struct ftfil_lookup_ip_tos *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_dst_prefix_len(struct ftfil_lookup_ip_prefix_len  *lookup, char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_src_prefix_len(struct ftfil_lookup_ip_prefix_len  *lookup, char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_prot(struct ftfil_lookup_ip_prot *lookup, char *rec,  struct fts3rec_offsets *fo);inline int eval_match_flows(struct ftfil_lookup_counter *lookup, char *rec,  struct fts3rec_offsets *fo);inline int eval_match_octets(struct ftfil_lookup_counter *lookup, char *rec,  struct fts3rec_offsets *fo);inline int eval_match_packets(struct ftfil_lookup_counter *lookup, char *rec,  struct fts3rec_offsets *fo);inline int eval_match_xtra_packets(struct ftfil_lookup_counter *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_duration(struct ftfil_lookup_counter *lookup, char *rec,  struct fts3rec_offsets *fo);inline int eval_match_start_time_date(struct ftfil_lookup_counter *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_end_time_date(struct ftfil_lookup_counter *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_start_time(struct ftfil_lookup_time *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_end_time(struct ftfil_lookup_time *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_src_tag_l(struct ftfil_lookup_tag_mask *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_src_tag_h(struct ftfil_lookup_tag *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_dst_tag_l(struct ftfil_lookup_tag_mask *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_dst_tag_h(struct ftfil_lookup_tag *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_sc_addr_l(struct ftfil_lookup_ip_mask *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_sc_addr_h(struct ftfil_lookup_ip_address *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_sc_addr_r(struct ftfil_lookup_ip_prefix *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_nexthop_addr_l(struct ftfil_lookup_ip_mask *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_nexthop_addr_h(struct ftfil_lookup_ip_address *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_nexthop_addr_r(struct ftfil_lookup_ip_prefix *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_src_addr_l(struct ftfil_lookup_ip_mask *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_src_addr_h(struct ftfil_lookup_ip_address *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_src_addr_r(struct ftfil_lookup_ip_prefix *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_dst_addr_l(struct ftfil_lookup_ip_mask *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_dst_addr_h(struct ftfil_lookup_ip_address *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_dst_addr_r(struct ftfil_lookup_ip_prefix *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_exporter_addr_l(struct ftfil_lookup_ip_mask *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_exporter_addr_h(struct ftfil_lookup_ip_address *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_ip_exporter_addr_r(struct ftfil_lookup_ip_prefix *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_pps(struct ftfil_lookup_double *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_bps(struct ftfil_lookup_double *lookup,  char *rec, struct fts3rec_offsets *fo);inline int eval_match_random_sample(struct ftfil_lookup_rate *lookup,  char *rec, struct fts3rec_offsets *fo);static int resolve_primitives(struct ftfil *ftfil);#define NEXT_WORD(A,B)\  for (;;) {\    B = strsep(A, " \t");\    if ((B && *B != 0) || (!B))\      break;\  }\ struct jump {  char *name;  enum ftfil_parse_state state;  int (*func)(struct line_parser *lp, struct ftfil *ftfil);};static struct jump pjump[] = {          {"filter-primitive", 0, parse_primitive},          {"type", PARSE_STATE_PRIMITIVE, parse_primitive_type},          {"permit", PARSE_STATE_PRIMITIVE, parse_primitive_permit},          {"deny", PARSE_STATE_PRIMITIVE, parse_primitive_deny},          {"default", PARSE_STATE_PRIMITIVE, parse_primitive_default},          {"mask", PARSE_STATE_PRIMITIVE, parse_primitive_mask},          {"filter-definition", 0, parse_definition},          {"match", PARSE_STATE_DEFINITION, parse_definition_match},          {"or", PARSE_STATE_DEFINITION, parse_definition_or},          {"invert", PARSE_STATE_DEFINITION, parse_definition_invert},          {0, 0, 0},          };/* * data structures: * * Each primitive is stored in a linked list of struct ftfil_primitive.  The * head is ftfil.primitives.  Each primitive has a lookup entry which  * points to a struct ftfil_lookup_* based on the enum ftfil_primitive_type * stored as type.  Some lookup entries allocate further storage (ie * a hash, radix tree, or linked list for the linear lookups). * * Each definition is stored in a linked list of struct ftfil_def. * The head is ftfil.defs.  Each definition has a list of * ftfil_match matches.  The matches have a list of ftfil_match_items. * For a match to be satisfied each each item in the match must evaluate * true (AND).  For a definition to be satisfied (permitted) one of the * entries in the match list must be satisfied (OR). * * Each primitive (enum ftfil_primitive_type) has an associated * parse_primitive_type_xxx(). * * Each match type (enum ftfil_def_match) has an associated * eval_match_xxx(). * * ftfil_eval() walks the matches and the match items for the definition * passed to it looking for a match.  If every match item in a match * evaluated to permit (enum ftfil_mode) a permit is returned, else * a deny. * * The current evaluator code does not cache results.  For example * * match src-ip-addr test1 * match ip-protocol test2 * or * match src-ip-addr test1 * match ip-port test3 * * If the first two matches fail the result from "match src-ip-addr test1" * will need to be calculated a second time.  In practice this doesn't * seem to be a problem -- the performance impact is minimal for real * world definitions.  Adding a cache would most likely reduce performance * for most cases due to overhead of the cache test/update code. *

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级日韩一级| 男男gaygay亚洲| 国产东北露脸精品视频| 亚洲国产精品成人综合| 成人av资源站| 一区二区三区不卡视频在线观看 | 99精品国产91久久久久久| 日韩电影在线免费看| 青青青伊人色综合久久| 天天综合色天天综合| 久久蜜桃av一区二区天堂| www.亚洲精品| 日韩国产欧美在线视频| 喷白浆一区二区| 久久99国产乱子伦精品免费| 中文字幕在线不卡一区二区三区| 色婷婷综合激情| 秋霞电影一区二区| 精品一区二区三区在线播放| 国产成人精品免费一区二区| 成人免费视频caoporn| 亚洲一区在线免费观看| 国产午夜精品福利| 欧美精品一卡两卡| 成人网页在线观看| 91色porny在线视频| 国产精品18久久久| av激情成人网| 欧美三级日本三级少妇99| 成人在线综合网| 色老汉av一区二区三区| 国产精品996| 视频一区二区三区入口| 亚洲黄色片在线观看| 中文字幕乱码亚洲精品一区| 亚洲色欲色欲www| 中文字幕第一区| 一区二区久久久久| 麻豆视频观看网址久久| 午夜精品一区二区三区免费视频| 夜夜嗨av一区二区三区中文字幕 | 91在线观看免费视频| 欧美这里有精品| 不卡的电视剧免费网站有什么| 色哟哟国产精品| 91精品国产一区二区三区| 欧美激情综合网| 亚洲va欧美va人人爽午夜| 一区二区三区蜜桃网| 日韩精品一级中文字幕精品视频免费观看| 久久不见久久见免费视频7| 日韩av中文字幕一区二区| 韩日欧美一区二区三区| 激情综合色丁香一区二区| av在线播放不卡| 日韩精品最新网址| 欧美一区二区三区播放老司机| 日韩精品一区在线观看| 国产精品久久久久毛片软件| 国产精品久久久久久久午夜片| 五月天丁香久久| 成人免费观看av| 日韩欧美区一区二| 一区二区三区小说| 成人免费视频一区| 日韩一区二区免费在线观看| 制服丝袜av成人在线看| 欧美一区二区人人喊爽| 亚洲少妇30p| 国产九色精品成人porny| 欧美视频在线播放| 91精品国产一区二区三区蜜臀 | 色呦呦一区二区三区| 国产一区二区三区四区五区入口| 性欧美大战久久久久久久久| 高清视频一区二区| 欧美亚洲另类激情小说| 色欧美乱欧美15图片| 久久久久久久久久电影| 日韩不卡免费视频| 欧美日韩国产精品自在自线| 欧美一区二区女人| 亚洲成a人在线观看| 91精品1区2区| 国产精品乱人伦| 亚洲v日本v欧美v久久精品| av网站免费线看精品| 国产日韩三级在线| 一区二区三区美女视频| 成人激情小说乱人伦| 国产欧美日韩亚州综合| 黄一区二区三区| 欧美一级夜夜爽| 天堂影院一区二区| 欧美日韩国产欧美日美国产精品| 这里是久久伊人| 亚洲午夜久久久久久久久电影院| 日韩国产欧美在线观看| 精品视频色一区| 亚洲一区在线观看免费观看电影高清 | 一区二区视频在线看| voyeur盗摄精品| 国产精品久久久久影院| 成人h版在线观看| 中文字幕免费一区| 亚洲国产综合在线| 91久久香蕉国产日韩欧美9色| 综合精品久久久| 久久久激情视频| 久久久亚洲精华液精华液精华液| 久草中文综合在线| 久久这里只有精品6| 国产欧美精品一区二区三区四区| 国产精品资源站在线| 国产亚洲自拍一区| 高清国产一区二区| 亚洲婷婷在线视频| 色拍拍在线精品视频8848| 中文字幕一区二| 在线观看日韩av先锋影音电影院| 亚洲人成小说网站色在线| 日日摸夜夜添夜夜添亚洲女人| 欧美疯狂做受xxxx富婆| 久久丁香综合五月国产三级网站| 久久毛片高清国产| 99精品久久99久久久久| 亚洲综合在线电影| 欧美一区二区三区在线观看视频 | 欧美色精品天天在线观看视频| 一区二区三区不卡视频| 91精品国产综合久久久久| 国产精品理论片在线观看| 91行情网站电视在线观看高清版| 亚洲主播在线观看| 日韩一级大片在线| 国产69精品一区二区亚洲孕妇| 中文字幕一区av| 欧美日本在线一区| 国产尤物一区二区在线| 亚洲人成7777| 在线成人高清不卡| 高清国产一区二区| 午夜影视日本亚洲欧洲精品| 久久综合九色综合欧美98| 亚洲aⅴ怡春院| 久久久亚洲综合| 欧美日韩亚洲丝袜制服| 国内成+人亚洲+欧美+综合在线| 中文字幕日韩一区二区| 欧美一区二区三区四区久久| 麻豆一区二区99久久久久| 中文字幕一区二区三| 日韩一区二区三区三四区视频在线观看| 国产成人av影院| 亚洲国产一区二区三区| 久久嫩草精品久久久久| 色视频欧美一区二区三区| 国产一区二区剧情av在线| 亚洲欧美日韩一区| 日韩精品影音先锋| 欧洲日韩一区二区三区| 激情久久五月天| 天堂成人免费av电影一区| 中文字幕中文字幕一区| 日韩欧美国产成人一区二区| 99国产精品国产精品久久| 久久国产综合精品| 亚洲综合色视频| 中文一区二区在线观看| 欧美一区二区三区免费| 色婷婷综合久久久久中文 | 91精品国产色综合久久不卡电影 | 国产精品久久久久久久久动漫| 欧美高清www午色夜在线视频| 波多野结衣在线aⅴ中文字幕不卡| 一级精品视频在线观看宜春院| 久久综合久久综合亚洲| 欧美人妖巨大在线| 91丨九色porny丨蝌蚪| 国产精品自拍三区| 日本中文字幕一区二区有限公司| 亚洲欧美日韩在线不卡| 国产精品女主播在线观看| www国产精品av| 日韩欧美一区二区在线视频| 欧美专区亚洲专区| 成人18精品视频| 国产伦精品一区二区三区免费迷| 视频一区二区三区在线| 中文字幕日本乱码精品影院| 久久久久久免费网| 精品国产免费一区二区三区香蕉| 日本伊人午夜精品| 亚洲国产精品精华液网站| 亚洲蜜桃精久久久久久久| 亚洲国产精品传媒在线观看| 久久久久国产免费免费| 久久综合九色综合97婷婷| 26uuu亚洲| 日韩免费视频线观看|