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

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

?? ipvsadm.c

?? 實(shí)現(xiàn)了集群的實(shí)現(xiàn) 完成了資源負(fù)載平衡等問題
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
/* *      ipvsadm - IP Virtual Server ADMinistration program *                for IPVS NetFilter Module in kernel 2.4 * *      Version: $Id: ipvsadm.c,v 1.27 2005/12/10 16:00:07 wensong Exp $ * *      Authors: Wensong Zhang <wensong@linuxvirtualserver.org> *               Peter Kese <peter.kese@ijs.si> * *      This program is based on ippfvsadm. * *      Changes: *        Wensong Zhang       :   added the editting service & destination support *        Wensong Zhang       :   added the feature to specify persistent port *        Jacob Rief          :   found the bug that masquerading dest of *                                different vport and dport cannot be deleted. *        Wensong Zhang       :   fixed it and changed some cosmetic things *        Wensong Zhang       :   added the timeout setting for persistent service *        Wensong Zhang       :   added specifying the dest weight zero *        Wensong Zhang       :   fixed the -E and -e options *        Wensong Zhang       :   added the long options *        Wensong Zhang       :   added the hostname and portname input *        Wensong Zhang       :   added the hostname and portname output *	  Lars Marowsky-Br閑  :   added persistence granularity support *        Julian Anastasov    :   fixed the (null) print for unknown services *        Wensong Zhang       :   added the port_to_anyname function *        Horms               :   added option to read commands from stdin *        Horms               :   modified usage function so it prints to *                            :   stdout if an exit value of 0 is used and *                            :   stdout otherwise. Program is then terminated *                            :   with the supplied exit value. *        Horms               :   updated manpage and usage funtion so *                            :   the reflect the options available *        Wensong Zhang       :   added option to write rules to stdout *        Horms               :   added ability to specify a fwmark *                            :   instead of a server and port for *                            :   a virtual service *        Horms               :   tightened up checking of services *                            :   in parse_service *        Horms               :   ensure that a -r is passed when needed *        Wensong Zhang       :   fixed the output of fwmark rules *        Horms               :   added kernel version verification *        Horms               :   Specifying command and option options *                                (e.g. -Ln or -At) in one short option *                                with popt problem fixed. *        Wensong Zhang       :   split the process_options and make *                                two versions of parse_options. *        Horms               :   attempting to save or restore when *                                compiled against getopt_long now results *                                in an informative error message rather *                                than the usage information *        Horms               :   added -v option *        Wensong Zhang       :   rewrite most code of parsing options and *                                processing options. *        Alexandre Cassen    :   added ipvs_syncd SyncdID support to filter *                                incoming sync messages. *        Guy Waugh & Ratz    :   added --exact option and spelling cleanup * * *      ippfvsadm - Port Fowarding & Virtual Server ADMinistration program * *      Copyright (c) 1998 Wensong Zhang *      All rights reserved. * *      Author: Wensong Zhang <wensong@iinchina.net> * *      This ippfvsadm is derived from Steven Clarke's ipportfw program. * *      portfw - Port Forwarding Table Editing v1.1 * *      Copyright (c) 1997 Steven Clarke *      All rights reserved. * *      Author: Steven Clarke <steven@monmouth.demon.co.uk> * *      This program is free software; you can redistribute it and/or modify *      it under the terms of the GNU General Public License as published by *      the Free Software Foundation; either version 2 of the License, or *      (at your option) any later version. * *      This program is distributed in the hope that it will be useful, *      but WITHOUT ANY WARRANTY; without even the implied warranty of *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *      GNU General Public License for more details. * *      You should have received a copy of the GNU General Public License *      along with this program; if not, write to the Free Software *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */#undef __KERNEL__	/* Makefile lazyness ;) */#include <stdio.h>#include <stdlib.h>#include <getopt.h>#include <netdb.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <ctype.h>#include <stdarg.h>#include <netinet/in.h>#include <sys/socket.h>#include <sys/types.h>#include <sys/param.h>#include <sys/wait.h>           /* For waitpid */#include <arpa/inet.h>#include <net/if.h>#include <netinet/ip_icmp.h>#include <netinet/udp.h>#include <netinet/tcp.h>#ifdef HAVE_POPT#include "popt.h"#define IPVS_OPTION_PROCESSING	"popt"#else#define IPVS_OPTION_PROCESSING	"getopt_long"#endif#include "config_stream.h"#include "libipvs/libipvs.h"#define IPVSADM_VERSION_NO	"v" VERSION#define IPVSADM_VERSION_DATE	"2005/12/10"#define IPVSADM_VERSION		IPVSADM_VERSION_NO " " IPVSADM_VERSION_DATE#define MAX_TIMEOUT		(86400*31)	/* 31 days */#define CMD_NONE		0#define CMD_ADD			(CMD_NONE+1)#define CMD_EDIT		(CMD_NONE+2)#define CMD_DEL			(CMD_NONE+3)#define CMD_FLUSH		(CMD_NONE+4)#define CMD_LIST		(CMD_NONE+5)#define CMD_ADDDEST		(CMD_NONE+6)#define CMD_DELDEST		(CMD_NONE+7)#define CMD_EDITDEST		(CMD_NONE+8)#define CMD_TIMEOUT		(CMD_NONE+9)#define CMD_STARTDAEMON		(CMD_NONE+10)#define CMD_STOPDAEMON		(CMD_NONE+11)#define CMD_RESTORE		(CMD_NONE+12)#define CMD_SAVE		(CMD_NONE+13)#define CMD_ZERO		(CMD_NONE+14)#define CMD_MAX			CMD_ZERO#define NUMBER_OF_CMD		(CMD_MAX - CMD_NONE)static const char* cmdnames[] = {	"add-service",	"edit-service",	"delete-service",	"flush",	"list",	"add-server",	"delete-server",	"edit-server",	"set",	"start-daemon",	"stop-daemon",	"restore",	"save",	"zero",};#define OPT_NONE		0x000000#define OPT_NUMERIC		0x000001#define OPT_CONNECTION		0x000002#define OPT_SERVICE		0x000004#define OPT_SCHEDULER		0x000008#define OPT_PERSISTENT		0x000010#define OPT_NETMASK		0x000020#define OPT_SERVER		0x000040#define OPT_FORWARD		0x000080#define OPT_WEIGHT		0x000100#define OPT_UTHRESHOLD		0x000200#define OPT_LTHRESHOLD		0x000400#define OPT_MCAST		0x000800#define OPT_TIMEOUT		0x001000#define OPT_DAEMON		0x002000#define OPT_STATS		0x004000#define OPT_RATE		0x008000#define OPT_THRESHOLDS		0x010000#define OPT_PERSISTENTCONN	0x020000#define OPT_SORT		0x040000#define OPT_SYNCID		0x080000#define OPT_EXACT		0x100000#define NUMBER_OF_OPT		21static const char* optnames[] = {	"numeric",	"connection",	"service-address",	"scheduler",	"persistent",	"netmask",	"real-server",	"forwarding-method",	"weight",	"u-threshold",	"l-threshold",	"mcast-interface",	"timeout",	"daemon",	"stats",	"rate",	"thresholds",	"persistent-conn",	"sort",	"syncid",	"exact",};/* * Table of legal combinations of commands and options. * Key: *  '+'  compulsory *  'x'  illegal *  '1'  exclusive (only one '1' option can be supplied) *  ' '  optional */static const char commands_v_options[NUMBER_OF_CMD][NUMBER_OF_OPT] ={	/*   -n   -c   svc  -s   -p   -M   -r   fwd  -w   -x   -y   -mc  tot  dmn  -st  -rt  thr  -pc  srt  sid  -ex *//*ADD*/     {'x', 'x', '+', ' ', ' ', ' ', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*EDIT*/    {'x', 'x', '+', ' ', ' ', ' ', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*DEL*/     {'x', 'x', '+', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*FLUSH*/   {'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*LIST*/    {' ', '1', '1', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', '1', '1', ' ', ' ', ' ', ' ', ' ', ' ', ' '},/*ADDSRV*/  {'x', 'x', '+', 'x', 'x', 'x', '+', ' ', ' ', ' ', ' ', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*DELSRV*/  {'x', 'x', '+', 'x', 'x', 'x', '+', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*EDITSRV*/ {'x', 'x', '+', 'x', 'x', 'x', '+', ' ', ' ', ' ', ' ', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*TIMEOUT*/ {'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*STARTD*/  {'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', ' ', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*STOPD*/   {'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*RESTORE*/ {'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*SAVE*/    {' ', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},/*ZERO*/    {'x', 'x', ' ', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'},};/* printing format flags */#define FMT_NONE		0x0000#define FMT_NUMERIC		0x0001#define FMT_RULE		0x0002#define FMT_STATS		0x0004#define FMT_RATE		0x0008#define FMT_THRESHOLDS		0x0010#define FMT_PERSISTENTCONN	0x0020#define FMT_SORT		0x0040#define FMT_EXACT		0x0080#define SERVICE_NONE		0x0000#define SERVICE_ADDR		0x0001#define SERVICE_PORT		0x0002/* default scheduler */#define DEF_SCHED		"wlc"/* default multicast interface name */#define DEF_MCAST_IFN		"eth0"#define CONN_PROC_FILE		"/proc/net/ip_vs_conn"struct ipvs_command_entry {	int			cmd;	ipvs_service_t		svc;	ipvs_dest_t		dest;	ipvs_timeout_t		timeout;	ipvs_daemon_t		daemon;};/* various parsing helpers & parsing functions */static int str_is_digit(const char *str);static int string_to_number(const char *s, int min, int max);static int host_to_addr(const char *name, struct in_addr *addr);static char * addr_to_host(struct in_addr *addr);static char * addr_to_anyname(struct in_addr *addr);static int service_to_port(const char *name, unsigned short proto);static char * port_to_service(unsigned short port, unsigned short proto);static char * port_to_anyname(unsigned short port, unsigned short proto);static char * addrport_to_anyname(struct in_addr *addr, unsigned short port,				  unsigned short proto, unsigned int format);static int parse_service(char *buf, u_int16_t proto,			 u_int32_t *addr, u_int16_t *port);static int parse_netmask(char *buf, u_int32_t *addr);static int parse_timeout(char *buf, int min, int max);static unsigned int parse_fwmark(char *buf);/* check the options based on the commands_v_options table */static void generic_opt_check(int command, int options);static void set_command(int *cmd, const int newcmd);static void set_option(unsigned int *options, unsigned int option);static void tryhelp_exit(const char *program, const int exit_status);static void usage_exit(const char *program, const int exit_status);static void version_exit(int exit_status);static void version(FILE *stream);static void fail(int err, char *msg, ...);/* various listing functions */static void list_conn(unsigned int format);static void list_service(ipvs_service_t *svc, unsigned int format);static void list_all(unsigned int format);static void list_timeout(void);static void list_daemon(void);static int modprobe_ipvs(void);static void check_ipvs_version(void);static int process_options(int argc, char **argv, int reading_stdin);int main(int argc, char **argv){	int result;	if (ipvs_init()) {		/* try to insmod the ip_vs module if ipvs_init failed */		if (modprobe_ipvs() || ipvs_init())			fail(2, "Can't initialize ipvs: %s\n"				"Are you sure that IP Virtual Server is "				"built in the kernel or as module?",			     ipvs_strerror(errno));	}	/* warn the user if the IPVS version is out of date */	check_ipvs_version();	/* list the table if there is no other arguement */	if (argc == 1){		list_all(FMT_NONE);		ipvs_close();		return 0;	}	/* process command line arguments */	result = process_options(argc, argv, 0);	ipvs_close();	return result;}#ifdef HAVE_POPTstatic intparse_options(int argc, char **argv, struct ipvs_command_entry *ce,	      unsigned int *options, unsigned int *format){	int c, parse;	poptContext context;	char *optarg=NULL;	struct poptOption options_table[] = {		{"add-service", 'A', POPT_ARG_NONE, NULL, 'A'},		{"edit-service", 'E', POPT_ARG_NONE, NULL, 'E'},		{"delete-service", 'D', POPT_ARG_NONE, NULL, 'D'},		{"clear", 'C', POPT_ARG_NONE, NULL, 'C'},		{"list", 'L', POPT_ARG_NONE, NULL, 'L'},		{"list", 'l', POPT_ARG_NONE, NULL, 'l'},		{"zero", 'Z', POPT_ARG_NONE, NULL, 'Z'},		{"add-server", 'a', POPT_ARG_NONE, NULL, 'a'},		{"edit-server", 'e', POPT_ARG_NONE, NULL, 'e'},		{"delete-server", 'd', POPT_ARG_NONE, NULL, 'd'},		{"set", '\0', POPT_ARG_NONE, NULL, '4'},		{"help", 'h', POPT_ARG_NONE, NULL, 'h'},		{"version", 'v', POPT_ARG_NONE, NULL, 'v'},		{"restore", 'R', POPT_ARG_NONE, NULL, 'R'},		{"save", 'S', POPT_ARG_NONE, NULL, 'S'},		{"start-daemon", '\0', POPT_ARG_STRING, &optarg, '1'},		{"stop-daemon", '\0', POPT_ARG_STRING, &optarg, '2'},		{"tcp-service", 't', POPT_ARG_STRING, &optarg, 't'},		{"udp-service", 'u', POPT_ARG_STRING, &optarg, 'u'},		{"fwmark-service", 'f', POPT_ARG_STRING, &optarg, 'f'},		{"scheduler", 's', POPT_ARG_STRING, &optarg, 's'},		{"persistent", 'p', POPT_ARG_STRING|POPT_ARGFLAG_OPTIONAL,		 &optarg, 'p'},		{"netmask", 'M', POPT_ARG_STRING, &optarg, 'M'},		{"real-server", 'r', POPT_ARG_STRING, &optarg, 'r'},		{"masquerading", 'm', POPT_ARG_NONE, NULL, 'm'},		{"ipip", 'i', POPT_ARG_NONE, NULL, 'i'},		{"gatewaying", 'g', POPT_ARG_NONE, NULL, 'g'},		{"weight", 'w', POPT_ARG_STRING, &optarg, 'w'},		{"u-threshold", 'x', POPT_ARG_STRING, &optarg, 'x'},		{"l-threshold", 'y', POPT_ARG_STRING, &optarg, 'y'},		{"numeric", 'n', POPT_ARG_NONE, NULL, 'n'},		{"connection", 'c', POPT_ARG_NONE, NULL, 'c'},		{"mcast-interface", '\0', POPT_ARG_STRING, &optarg, '3'},		{"syncid", '\0', POPT_ARG_STRING, &optarg, 'I'},		{"timeout", '\0', POPT_ARG_NONE, NULL, '5'},		{"daemon", '\0', POPT_ARG_NONE, NULL, '6'},		{"stats", '\0', POPT_ARG_NONE, NULL, '7'},		{"rate", '\0', POPT_ARG_NONE, NULL, '8'},		{"thresholds", '\0', POPT_ARG_NONE, NULL, '9'},		{"persistent-conn", '\0', POPT_ARG_NONE, NULL, 'P'},		{"sort", '\0', POPT_ARG_NONE, NULL, '0'},		{"exact", 'X', POPT_ARG_NONE, NULL, 'X'},		{NULL, 0, 0, NULL, 0}	};	context = poptGetContext("ipvsadm", argc, (const char **)argv,				 options_table, 0);	if ((c = poptGetNextOpt(context)) < 0)		tryhelp_exit(argv[0], -1);	switch (c) {	case 'A':		set_command(&ce->cmd, CMD_ADD);		break;	case 'E':		set_command(&ce->cmd, CMD_EDIT);		break;	case 'D':		set_command(&ce->cmd, CMD_DEL);		break;	case 'a':		set_command(&ce->cmd, CMD_ADDDEST);		break;	case 'e':		set_command(&ce->cmd, CMD_EDITDEST);		break;	case 'd':		set_command(&ce->cmd, CMD_DELDEST);		break;	case 'C':		set_command(&ce->cmd, CMD_FLUSH);		break;	case 'L':	case 'l':		set_command(&ce->cmd, CMD_LIST);		break;	case 'Z':		set_command(&ce->cmd, CMD_ZERO);		break;	case '4':		set_command(&ce->cmd, CMD_TIMEOUT);		break;	case 'R':		set_command(&ce->cmd, CMD_RESTORE);		break;	case 'S':		set_command(&ce->cmd, CMD_SAVE);		break;	case '1':		set_command(&ce->cmd, CMD_STARTDAEMON);		if (!strcmp(optarg, "master"))			ce->daemon.state = IP_VS_STATE_MASTER;		else if (!strcmp(optarg, "backup"))			ce->daemon.state = IP_VS_STATE_BACKUP;		else fail(2, "illegal start-daemon parameter specified");		break;	case '2':		set_command(&ce->cmd, CMD_STOPDAEMON);		if (!strcmp(optarg, "master"))			ce->daemon.state = IP_VS_STATE_MASTER;		else if (!strcmp(optarg, "backup"))			ce->daemon.state = IP_VS_STATE_BACKUP;		else fail(2, "illegal start_daemon specified");		break;	case 'h':		usage_exit(argv[0], 0);		break;	case 'v':		version_exit(0);		break;	default:		tryhelp_exit(argv[0], -1);	}	while ((c=poptGetNextOpt(context)) >= 0){		switch (c) {		case 't':		case 'u':			set_option(options, OPT_SERVICE);			ce->svc.protocol =				(c=='t' ? IPPROTO_TCP : IPPROTO_UDP);			parse = parse_service(optarg,					      ce->svc.protocol,					      &ce->svc.addr,					      &ce->svc.port);			if (!(parse & SERVICE_ADDR))				fail(2, "illegal virtual server "

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费电影| 欧美精品一区二区三区在线播放 | 欧美三级乱人伦电影| a美女胸又www黄视频久久| 色婷婷av一区二区三区大白胸 | 99久久免费精品高清特色大片| 99国内精品久久| 欧美精品视频www在线观看| 精品久久久久久最新网址| 中文字幕中文字幕一区二区 | 日韩亚洲欧美综合| 国产欧美精品一区二区三区四区 | 一本到一区二区三区| 日韩久久精品一区| 亚洲人精品午夜| 日韩不卡在线观看日韩不卡视频| 国产美女精品一区二区三区| 色8久久人人97超碰香蕉987| 欧美大胆一级视频| 亚洲精品视频免费观看| 激情丁香综合五月| 欧美最猛黑人xxxxx猛交| 亚洲精品一线二线三线无人区| 中文字幕视频一区| 美腿丝袜一区二区三区| caoporm超碰国产精品| 日韩三级伦理片妻子的秘密按摩| 亚洲丝袜美腿综合| 精品一区二区综合| 欧美午夜精品电影| 最新日韩在线视频| 精品系列免费在线观看| 欧美午夜精品电影| 亚洲同性同志一二三专区| 精东粉嫩av免费一区二区三区| 色中色一区二区| 日韩精品资源二区在线| 久久精子c满五个校花| 看片网站欧美日韩| 在线视频一区二区三区| 国产日韩欧美综合一区| 蜜桃视频在线一区| 91久久精品网| 亚洲男人的天堂一区二区| 成人免费视频播放| 国产女主播视频一区二区| 亚洲图片欧美综合| 国产精品色哟哟| 7777精品伊人久久久大香线蕉| 亚洲国产经典视频| 狠狠色丁香久久婷婷综| 4438亚洲最大| 亚洲国产精品久久久男人的天堂| av在线不卡电影| 国产校园另类小说区| 精品影视av免费| 777色狠狠一区二区三区| 一区二区三区免费网站| aaa欧美大片| 中文字幕一区二区三区在线观看 | 欧美日韩国产一级二级| 亚洲另类在线视频| 成人av在线电影| 久久久久国产成人精品亚洲午夜| 麻豆久久一区二区| 日韩欧美亚洲国产另类| 美女任你摸久久| 91精品国产综合久久精品app| 亚洲国产精品视频| 欧美午夜一区二区三区| 一区二区三区在线看| 日本高清成人免费播放| 亚洲日本成人在线观看| 9i在线看片成人免费| 国产精品白丝在线| 一本色道a无线码一区v| 亚洲午夜免费福利视频| 婷婷综合另类小说色区| 在线免费观看视频一区| 亚洲午夜视频在线| 欧美视频一区二区三区| 天堂一区二区在线| 欧美精品久久天天躁| 青青草原综合久久大伊人精品优势 | 日韩一区二区中文字幕| 日韩情涩欧美日韩视频| 欧美亚州韩日在线看免费版国语版| 精品国产sm最大网站| 色香蕉成人二区免费| 人人狠狠综合久久亚洲| 亚洲激情综合网| 精品乱码亚洲一区二区不卡| 91原创在线视频| 激情文学综合丁香| 亚洲一区二区三区自拍| 国产精品嫩草影院com| 国模冰冰炮一区二区| 色综合天天综合狠狠| 一区二区三区中文字幕电影| 欧美日韩成人在线一区| 欧美在线观看一二区| 日韩精品一卡二卡三卡四卡无卡| 欧美一级片在线观看| 国产一区91精品张津瑜| 国产精品久久久久久久久久久免费看 | 国产传媒久久文化传媒| 成人欧美一区二区三区视频网页| 在线看不卡av| 久久精品99久久久| 日韩一区欧美小说| 欧美日韩高清一区| 国产一区二区女| 亚洲美女视频在线观看| 欧美一级在线视频| 成人免费视频一区| 日韩电影在线一区二区三区| 久久久午夜电影| 日本韩国欧美国产| 久草在线在线精品观看| 亚洲天堂网中文字| 日韩欧美国产一区二区在线播放| kk眼镜猥琐国模调教系列一区二区| 亚洲午夜久久久久久久久久久 | 国产成人欧美日韩在线电影| 亚洲一区二区综合| 337p日本欧洲亚洲大胆色噜噜| 色婷婷久久久久swag精品| 美女一区二区久久| 亚洲三级在线观看| 欧美va亚洲va| 色婷婷亚洲精品| 国产一区二区三区黄视频| 一区二区三区精品视频在线| 2020日本不卡一区二区视频| 在线观看免费一区| 国产精品88av| 日韩在线a电影| 亚洲欧美日韩一区二区三区在线观看 | 亚洲欧美日韩电影| 日韩欧美国产不卡| 色又黄又爽网站www久久| 国内成+人亚洲+欧美+综合在线| 中文字幕日韩av资源站| 日韩中文欧美在线| 精品视频一区二区三区免费| 美腿丝袜亚洲色图| 欧美丝袜丝交足nylons图片| 久久综合精品国产一区二区三区| 自拍av一区二区三区| 免费成人在线观看| 日韩欧美国产小视频| 亚洲精品久久嫩草网站秘色| 九色|91porny| 91精品久久久久久蜜臀| 国产精品久久久久7777按摩| 国产成人av网站| 日韩高清在线电影| 国产网站一区二区三区| 日韩一卡二卡三卡国产欧美| 欧美在线看片a免费观看| 99久久精品免费精品国产| 国产久卡久卡久卡久卡视频精品| 日韩综合小视频| 亚洲综合无码一区二区| 日韩理论在线观看| 国产欧美日韩综合精品一区二区| 欧美大片在线观看一区| 91.麻豆视频| 精品视频资源站| 欧洲亚洲国产日韩| 欧美亚洲一区二区在线| 色天天综合色天天久久| 色婷婷精品久久二区二区蜜臂av| 99视频一区二区| 成人短视频下载| 成人少妇影院yyyy| 成a人片国产精品| 国产a区久久久| 丁香啪啪综合成人亚洲小说| 国产福利一区在线观看| 国产精品亚洲人在线观看| 国产精品一区在线观看乱码| 国产一区二区在线视频| 国产一区二区美女诱惑| 国产精品伊人色| 成人午夜视频免费看| 成人国产精品免费观看动漫| 成人黄色小视频在线观看| 成人97人人超碰人人99| 色综合久久久久综合体| 欧美午夜在线一二页| 制服丝袜中文字幕亚洲| 欧美大白屁股肥臀xxxxxx| 精品国产乱子伦一区| 国产丝袜在线精品| 国产精品另类一区| 亚洲精品欧美综合四区| 亚洲h在线观看| 九九在线精品视频| 处破女av一区二区|