日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅析libcurl多线程安全问题

發(fā)布時間:2025/3/15 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析libcurl多线程安全问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景:使用多線程libcurl發(fā)送請求,在未設(shè)置超時或長超時的情況下程序運行良好。但只要設(shè)置了較短超時(小于180s),程序就會出現(xiàn)隨機的coredump。并且棧里面找不到任何有用的信息。

問題:1.為什么未設(shè)置超時,或者長超時時間(比如601s)的情況下多線程libcurl不會core?

問題:2.進程coredump并不是必現(xiàn),是否在libcurl內(nèi)多線程同時修改了全局變量導(dǎo)致?

?

先來看下官方libcurl的說明:

libcurl is?free,?thread-safe,?IPv6 compatible,?feature rich,?well supported,?fast,?thoroughly documented?and is already used by many known, big and successful?companies?and numerous?applications.

可以看到官方自稱licurl是線程安全的,是否真的如此?再來看看代碼中用到的超時選項的說明:

CURLOPT_TIMEOUT

Pass a long as parameter containing the maximum time in seconds that you allow the libcurl transfer operation to take. Normally, name lookups can take a considerable time and limiting operations to less than a few minutes risk aborting perfectly normal operations. This option will cause curl to use the SIGALRM to enable time-outing system calls.

In unix-like systems, this might cause signals to be used unless?CURLOPT_NOSIGNAL?is set.

Default timeout is 0 (zero) which means it never times out.

選項提到了超時機制是使用SIGALRM信號量來實現(xiàn)的,并且在unix-like操作系統(tǒng)中又提到了另外一個選項CURLOPT_NOSIGNAL:

CURLOPT_NOSIGNAL

Pass a long. If it is 1, libcurl will not use any functions that install signal handlers or any functions that cause signals to be sent to the process. This option is mainly here to allow multi-threaded unix applications to still set/use all timeout options etc, without risking getting signals. The default value for this parameter is 0. (Added in 7.10)

If this option is set and libcurl has been built with the standard name resolver, timeouts will not occur while the name resolve takes place. Consider building libcurl with c-ares support to enable asynchronous DNS lookups, which enables nice timeouts for name resolves without signals.

Setting?CURLOPT_NOSIGNAL?to 1 makes libcurl NOT ask the system to ignore SIGPIPE signals, which otherwise are sent by the system when trying to send data to a socket which is closed in the other end. libcurl makes an effort to never cause such SIGPIPEs to trigger, but some operating systems have no way to avoid them and even on those that have there are some corner cases when they may still happen, contrary to our desire. In addition, usingCURLAUTH_NTLM_WB?authentication could cause a SIGCHLD signal to be raised.

該選項說明提到,為了在多線程中允許程序去設(shè)置timeout選項,但不是使用signals,需要設(shè)置CURLOPT_NOSIGNAL為1 。

于是在代碼中加上了這句,測試再沒有發(fā)現(xiàn)有coredump的情況。

?1?easy_setopt(curl, CURLOPT_NOSIGNAL, (long)1);?

問題:3.timeout機制實現(xiàn)機制是什么,為什么設(shè)置了選項CURLOPT_NOSIGNAL線程就安全了?

?

為了解答上面的問題,需要查看libcurl的相關(guān)源代碼,以下是DNS解析的函數(shù):

1 int Curl_resolv_timeout(struct connectdata *conn, 2 const char *hostname, 3 int port, 4 struct Curl_dns_entry **entry, 5 long timeoutms) 6 { 7 #ifdef USE_ALARM_TIMEOUT 8 #ifdef HAVE_SIGACTION 9 struct sigaction keep_sigact; /* store the old struct here */ 10 volatile bool keep_copysig = FALSE; /* wether old sigact has been saved */ 11 struct sigaction sigact; 12 #else 13 #ifdef HAVE_SIGNAL 14 void (*keep_sigact)(int); /* store the old handler here */ 15 #endif /* HAVE_SIGNAL */ 16 #endif /* HAVE_SIGACTION */ 17 volatile long timeout; 18 volatile unsigned int prev_alarm = 0; 19 struct SessionHandle *data = conn->data; 20 #endif /* USE_ALARM_TIMEOUT */ 21 int rc; 22 23 *entry = NULL; 24 25 if(timeoutms < 0) 26 /* got an already expired timeout */ 27 return CURLRESOLV_TIMEDOUT; 28 29 #ifdef USE_ALARM_TIMEOUT 30 if(data->set.no_signal) 31 /* Ignore the timeout when signals are disabled */ 32 timeout = 0; 33 else 34 timeout = timeoutms; 35 36 if(!timeout) 37 /* USE_ALARM_TIMEOUT defined, but no timeout actually requested */ 38 return Curl_resolv(conn, hostname, port, entry); 39 40 if(timeout < 1000) 41 /* The alarm() function only provides integer second resolution, so if 42 we want to wait less than one second we must bail out already now. */ 43 return CURLRESOLV_TIMEDOUT; 44 45 /************************************************************* 46 * Set signal handler to catch SIGALRM 47 * Store the old value to be able to set it back later! 48 *************************************************************/ 49 #ifdef HAVE_SIGACTION 50 sigaction(SIGALRM, NULL, &sigact); 51 keep_sigact = sigact; 52 keep_copysig = TRUE; /* yes, we have a copy */ 53 sigact.sa_handler = alarmfunc; 54 #ifdef SA_RESTART 55 /* HPUX doesn't have SA_RESTART but defaults to that behaviour! */ 56 sigact.sa_flags &= ~SA_RESTART; 57 #endif 58 /* now set the new struct */ 59 sigaction(SIGALRM, &sigact, NULL); 60 #else /* HAVE_SIGACTION */ 61 /* no sigaction(), revert to the much lamer signal() */ 62 #ifdef HAVE_SIGNAL 63 keep_sigact = signal(SIGALRM, alarmfunc); 64 #endif 65 #endif /* HAVE_SIGACTION */ 66 67 /* alarm() makes a signal get sent when the timeout fires off, and that 68 will abort system calls */ 69 prev_alarm = alarm(curlx_sltoui(timeout/1000L)); 70 71 /* This allows us to time-out from the name resolver, as the timeout 72 will generate a signal and we will siglongjmp() from that here. 73 This technique has problems (see alarmfunc). 74 This should be the last thing we do before calling Curl_resolv(), 75 as otherwise we'd have to worry about variables that get modified 76 before we invoke Curl_resolv() (and thus use "volatile"). */ 77 if(sigsetjmp(curl_jmpenv, 1)) { 78 /* this is coming from a siglongjmp() after an alarm signal */ 79 failf(data, "name lookup timed out"); 80 rc = CURLRESOLV_ERROR; 81 goto clean_up; 82 } 83 84 #else 85 #ifndef CURLRES_ASYNCH 86 if(timeoutms) 87 infof(conn->data, "timeout on name lookup is not supported\n"); 88 #else 89 (void)timeoutms; /* timeoutms not used with an async resolver */ 90 #endif 91 #endif /* USE_ALARM_TIMEOUT */ 92 93 /* Perform the actual name resolution. This might be interrupted by an 94 * alarm if it takes too long. 95 */ 96 rc = Curl_resolv(conn, hostname, port, entry); 97 98 #ifdef USE_ALARM_TIMEOUT 99 clean_up: 100 101 if(!prev_alarm) 102 /* deactivate a possibly active alarm before uninstalling the handler */ 103 alarm(0); 104 105 #ifdef HAVE_SIGACTION 106 if(keep_copysig) { 107 /* we got a struct as it looked before, now put that one back nice 108 and clean */ 109 sigaction(SIGALRM, &keep_sigact, NULL); /* put it back */ 110 } 111 #else 112 #ifdef HAVE_SIGNAL 113 /* restore the previous SIGALRM handler */ 114 signal(SIGALRM, keep_sigact); 115 #endif 116 #endif /* HAVE_SIGACTION */ 117 118 /* switch back the alarm() to either zero or to what it was before minus 119 the time we spent until now! */ 120 if(prev_alarm) { 121 /* there was an alarm() set before us, now put it back */ 122 unsigned long elapsed_ms = Curl_tvdiff(Curl_tvnow(), conn->created); 123 124 /* the alarm period is counted in even number of seconds */ 125 unsigned long alarm_set = prev_alarm - elapsed_ms/1000; 126 127 if(!alarm_set || 128 ((alarm_set >= 0x80000000) && (prev_alarm < 0x80000000)) ) { 129 /* if the alarm time-left reached zero or turned "negative" (counted 130 with unsigned values), we should fire off a SIGALRM here, but we 131 won't, and zero would be to switch it off so we never set it to 132 less than 1! */ 133 alarm(1); 134 rc = CURLRESOLV_TIMEDOUT; 135 failf(data, "Previous alarm fired off!"); 136 } 137 else 138 alarm((unsigned int)alarm_set); 139 } 140 #endif /* USE_ALARM_TIMEOUT */ 141 142 return rc; 143 }

由此可見,DNS解析階段timeout的實現(xiàn)機制是通過SIGALRM+sigsetjmp/siglongjmp來實現(xiàn)的。

解析前,通過alarm設(shè)定超時時間,并設(shè)置跳轉(zhuǎn)的標(biāo)記:

1 /* alarm() makes a signal get sent when the timeout fires off, and that 2 will abort system calls */ 3 prev_alarm = alarm(curlx_sltoui(timeout/1000L)); 4 5 /* This allows us to time-out from the name resolver, as the timeout 6 will generate a signal and we will siglongjmp() from that here. 7 This technique has problems (see alarmfunc). 8 This should be the last thing we do before calling Curl_resolv(), 9 as otherwise we'd have to worry about variables that get modified 10 before we invoke Curl_resolv() (and thus use "volatile"). */ 11 if(sigsetjmp(curl_jmpenv, 1)) { 12 /* this is coming from a siglongjmp() after an alarm signal */ 13 failf(data, "name lookup timed out"); 14 rc = CURLRESOLV_ERROR; 15 goto clean_up; 16 }

在等到超時后,進入alarmfunc函數(shù)實現(xiàn)跳轉(zhuǎn):

1 #ifdef USE_ALARM_TIMEOUT 2 /* 3 * This signal handler jumps back into the main libcurl code and continues 4 * execution. This effectively causes the remainder of the application to run 5 * within a signal handler which is nonportable and could lead to problems. 6 */ 7 static 8 RETSIGTYPE alarmfunc(int sig) 9 { 10 /* this is for "-ansi -Wall -pedantic" to stop complaining! (rabe) */ 11 (void)sig; 12 siglongjmp(curl_jmpenv, 1); 13 return; 14 } 15 #endif /* USE_ALARM_TIMEOUT */

而CURLOPT_NOSIGNAL選項的作用是什么呢?

1 case CURLOPT_NOSIGNAL: 2 /* 3 * The application asks not to set any signal() or alarm() handlers, 4 * even when using a timeout. 5 */ 6 data->set.no_signal = (0 != va_arg(param, long))?TRUE:FALSE; 7 break;

再回過頭看看DNS解析的那段代碼,你會發(fā)現(xiàn)在超時設(shè)定前有如下代碼:

1 #ifdef USE_ALARM_TIMEOUT 2 if(data->set.no_signal) 3 /* Ignore the timeout when signals are disabled */ 4 timeout = 0; 5 else 6 timeout = timeoutms; 7 8 if(!timeout) 9 /* USE_ALARM_TIMEOUT defined, but no timeout actually requested */ 10 return Curl_resolv(conn, hostname, port, entry);

沒錯!設(shè)置了CURLOPT_NOSIGNAL選項,會把超時時間設(shè)置為0,也就是DNS解析不設(shè)置超時時間!以此來繞過SIGALRM+sigsetjmp/siglongjmp的超時機制。以此引來新的問題,DNS解析沒有超時限制,不過這個官方有推薦的解決方法了。

了解了這些選項的原理之后,回到問題3,為什么使用了CURLOPT_NOSIGNAL選項后就保證了線程安全?繼續(xù)看sigsetjmp/siglongjmp實現(xiàn)就會發(fā)現(xiàn):

1 #ifdef HAVE_SIGSETJMP 2 /* Beware this is a global and unique instance. This is used to store the 3 return address that we can jump back to from inside a signal handler. This 4 is not thread-safe stuff. */ 5 sigjmp_buf curl_jmpenv; 6 #endif

sigsetjmp/siglongjmp使用的curl_jmpenv是個全局唯一的變量!多個線程都會去修改該變量,破壞了棧的內(nèi)容并導(dǎo)致coredump。看來這還是libcurl的實現(xiàn)問題,如果每個線程都有一個sigjmp_buf變量,是否就可以解決上面的問題呢?

看到這里,問題2也有了答案:當(dāng)多個線程同時修改sigjmp_buf會出現(xiàn)問題,但線程間是串行的sigsetjmp/siglongjmp并不會出現(xiàn)問題,這有一定的隨機性。

問題1,未設(shè)置超時不會有問題這很好理解,但是為什么設(shè)置長超時也不會出現(xiàn)問題?

原因就是在libcurl超時前,apache服務(wù)器端先超時返回了。apache超時時間一般是180s。只要libcurl超時大于180s,libcurl客戶端永遠都不會觸發(fā)超時。而是直接返回504的錯誤。

是否設(shè)置了CURLOPT_NOSIGNAL就可以保證線程安全了呢?官方文檔還提到了另外兩個函數(shù):

CURL *curl_easy_init( );

This function must be the first function to call, and it returns a CURL easy handle that you must use as input to other easy-functions. curl_easy_init initializes curl and this call?MUST?have a corresponding call to?curl_easy_cleanup(3)?when the operation is complete.

If you did not already call?curl_global_init(3),?curl_easy_init(3)?does it automatically. This may be lethal in multi-threaded cases, since?curl_global_init(3)?is not thread-safe, and it may result in resource problems because there is no corresponding cleanup.

You are strongly advised to not allow this automatic behaviour, by calling?curl_global_init(3)?yourself properly. See the description in?libcurl(3) of global environment requirements for details of how to use this function.

其中curl_easy_init函數(shù)體內(nèi)會調(diào)用curl_global_init,而后者是非線程安全的。

在curl_easy_init函數(shù)體內(nèi),有且僅調(diào)用一次curl_global_init:

1 /* 2 * curl_easy_init() is the external interface to alloc, setup and init an 3 * easy handle that is returned. If anything goes wrong, NULL is returned. 4 */ 5 CURL *curl_easy_init(void) 6 { 7 CURLcode res; 8 struct SessionHandle *data; 9 10 /* Make sure we inited the global SSL stuff */ 11 if(!initialized) { 12 res = curl_global_init(CURL_GLOBAL_DEFAULT); 13 if(res) { 14 /* something in the global init failed, return nothing */ 15 DEBUGF(fprintf(stderr, "Error: curl_global_init failed\n")); 16 return NULL; 17 } 18 } 19 20 /* We use curl_open() with undefined URL so far */ 21 res = Curl_open(&data); 22 if(res != CURLE_OK) { 23 DEBUGF(fprintf(stderr, "Error: Curl_open failed\n")); 24 return NULL; 25 } 26 27 return data; 28 }

但是在curl_global_init函數(shù)體內(nèi),是非線程安全的。initialized++并非原子操作,有可能出現(xiàn)多個線程重復(fù)執(zhí)行curl_global_init。

1 CURLcode curl_global_init(long flags) 2 { 3 if(initialized++) 4 return CURLE_OK; 5 6 /* Setup the default memory functions here (again) */ 7 Curl_cmalloc = (curl_malloc_callback)malloc; 8 Curl_cfree = (curl_free_callback)free; 9 Curl_crealloc = (curl_realloc_callback)realloc; 10 Curl_cstrdup = (curl_strdup_callback)system_strdup; 11 Curl_ccalloc = (curl_calloc_callback)calloc; 12 #if defined(WIN32) && defined(UNICODE) 13 Curl_cwcsdup = (curl_wcsdup_callback)_wcsdup; 14 #endif 15 16 if(flags & CURL_GLOBAL_SSL) 17 if(!Curl_ssl_init()) { 18 DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n")); 19 return CURLE_FAILED_INIT; 20 } 21 22 if(flags & CURL_GLOBAL_WIN32) 23 if(win32_init() != CURLE_OK) { 24 DEBUGF(fprintf(stderr, "Error: win32_init failed\n")); 25 return CURLE_FAILED_INIT; 26 } 27 28 #ifdef __AMIGA__ 29 if(!Curl_amiga_init()) { 30 DEBUGF(fprintf(stderr, "Error: Curl_amiga_init failed\n")); 31 return CURLE_FAILED_INIT; 32 } 33 #endif 34 35 #ifdef NETWARE 36 if(netware_init()) { 37 DEBUGF(fprintf(stderr, "Warning: LONG namespace not available\n")); 38 } 39 #endif 40 41 #ifdef USE_LIBIDN 42 idna_init(); 43 #endif 44 45 if(Curl_resolver_global_init() != CURLE_OK) { 46 DEBUGF(fprintf(stderr, "Error: resolver_global_init failed\n")); 47 return CURLE_FAILED_INIT; 48 } 49 50 #if defined(USE_LIBSSH2) && defined(HAVE_LIBSSH2_INIT) 51 if(libssh2_init(0)) { 52 DEBUGF(fprintf(stderr, "Error: libssh2_init failed\n")); 53 return CURLE_FAILED_INIT; 54 } 55 #endif 56 57 if(flags & CURL_GLOBAL_ACK_EINTR) 58 Curl_ack_eintr = 1; 59 60 init_flags = flags; 61 62 return CURLE_OK; 63 }

所以curl_global_init需要在單線程中執(zhí)行,例如在程序的開頭。

最后,貼一個官方給出的多線程例子,稍作修改(docs/examples/multithreads.c):

1 /*************************************************************************** 2 * _ _ ____ _ 3 * Project ___| | | | _ \| | 4 * / __| | | | |_) | | 5 * | (__| |_| | _ <| |___ 6 * \___|\___/|_| \_\_____| 7 * 8 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. 9 * 10 * This software is licensed as described in the file COPYING, which 11 * you should have received as part of this distribution. The terms 12 * are also available at http://curl.haxx.se/docs/copyright.html. 13 * 14 * You may opt to use, copy, modify, merge, publish, distribute and/or sell 15 * copies of the Software, and permit persons to whom the Software is 16 * furnished to do so, under the terms of the COPYING file. 17 * 18 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19 * KIND, either express or implied. 20 * 21 ***************************************************************************/ 22 /* A multi-threaded example that uses pthreads extensively to fetch 23 * X remote files at once */ 24 25 #include <stdio.h> 26 #include <pthread.h> 27 #include <curl/curl.h> 28 29 #define NUMT 4 30 31 /* 32 List of URLs to fetch. 33 34 If you intend to use a SSL-based protocol here you MUST setup the OpenSSL 35 callback functions as described here: 36 37 http://www.openssl.org/docs/crypto/threads.html#DESCRIPTION 38 39 */ 40 const char * const urls[NUMT]= { 41 "http://curl.haxx.se/", 42 "ftp://cool.haxx.se/", 43 "http://www.contactor.se/", 44 "www.haxx.se" 45 }; 46 47 static void *pull_one_url(void *url) 48 { 49 CURL *curl; 50 51 curl = curl_easy_init(); 52 curl_easy_setopt(curl, CURLOPT_URL, url); 53 curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30L); /*timeout 30s,add by edgeyang*/ 54 curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L); /*no signal,add by edgeyang*/ 55 curl_easy_perform(curl); /* ignores error */ 56 curl_easy_cleanup(curl); 57 58 return NULL; 59 } 60 61 62 /* 63 int pthread_create(pthread_t *new_thread_ID, 64 const pthread_attr_t *attr, 65 void * (*start_func)(void *), void *arg); 66 */ 67 68 int main(int argc, char **argv) 69 { 70 pthread_t tid[NUMT]; 71 int i; 72 int error; 73 74 /* Must initialize libcurl before any threads are started */ 75 curl_global_init(CURL_GLOBAL_ALL); 76 77 for(i=0; i< NUMT; i++) { 78 error = pthread_create(&tid[i], 79 NULL, /* default attributes please */ 80 pull_one_url, 81 (void *)urls[i]); 82 if(0 != error) 83 fprintf(stderr, "Couldn't run thread number %d, errno %d\n", i, error); 84 else 85 fprintf(stderr, "Thread %d, gets %s\n", i, urls[i]); 86 } 87 88 /* now wait for all threads to terminate */ 89 for(i=0; i< NUMT; i++) { 90 error = pthread_join(tid[i], NULL); 91 fprintf(stderr, "Thread %d terminated\n", i); 92 } 93 94 curl_global_cleanup(); /*add by edgeyang*/ 95 return 0; 96 }

總結(jié)

以上是生活随笔為你收集整理的浅析libcurl多线程安全问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

高清av在线免费观看 | 欧美精品亚洲精品 | 波多野结衣理论片 | 欧美性久久久 | av电影 一区二区 | 欧美色插 | 黄色毛片一级片 | 日日草视频 | 在线日本看片免费人成视久网 | 久久久国产一区二区 | 天天干天天操 | 日日爽夜夜爽 | 国产精品久久久久久久久久免费 | 精品在线观| 中文免费 | 国产精品网站一区二区三区 | 国产不卡精品 | 久久最新| 久久这里只有精品1 | 欧美黄网站 | 天堂网av在线 | 日韩视频免费 | 国产黑丝袜在线 | 美女黄久久 | 欧美精品xxx| 91av在线免费观看 | 久久影院精品 | 亚洲高清精品在线 | 97在线观看视频国产 | 久久人操| 日本黄色一级电影 | 日韩三级av | www久久九 | 黄色影院在线免费观看 | 色操插 | 久久免费播放视频 | 人人草人人草 | 国产91学生粉嫩喷水 | 日韩免费观看一区二区三区 | 久久最新| 美腿丝袜一区二区三区 | 91精品国产福利 | 狠狠躁18三区二区一区ai明星 | 久久黄色精品视频 | 久久成人人人人精品欧 | 不卡电影一区二区三区 | 91大神一区二区三区 | av电影免费观看 | 有没有在线观看av | 成人黄色片在线播放 | 久久免费视频在线 | 欧美一区二区三区在线播放 | 天天干干| 欧美日韩国产xxx | 免费av在线网 | 久久久久久久久久久国产精品 | 久久国产精品99久久久久久老狼 | 国产999精品久久久影片官网 | 国产黄色免费观看 | 久久精品99国产精品亚洲最刺激 | 午夜精品久久久久久久久久久久久久 | 成人黄色中文字幕 | 日本精品视频网站 | 午夜久久美女 | 9热精品 | 国产成人一区二区三区影院在线 | 国产精品1区 | av看片在线观看 | 欧美一区二区三区激情视频 | 国产精品久久久久久久久久尿 | 国产精选在线 | 婷婷国产在线 | 国产男女爽爽爽免费视频 | 午夜精品久久久久久久99 | 激情视频一区 | 人人爽人人乐 | 婷婷综合 | 日韩av电影免费观看 | 午夜久久成人 | 日韩精品久久久免费观看夜色 | 久久激五月天综合精品 | 日本h在线播放 | 四虎永久视频 | 国产综合精品一区二区三区 | 狠狠色伊人亚洲综合网站色 | 黄色av高清 | 国产成a人亚洲精v品在线观看 | 欧美,日韩| 成人黄色小说视频 | 成人小视频在线 | 午夜视频在线观看欧美 | 国产精品一区在线 | www.久热| 欧美日韩国产一区二区三区在线观看 | 天天做天天爽 | 欧美 亚洲 另类 激情 另类 | 5月丁香婷婷综合 | 少妇自拍av| 国产午夜精品福利视频 | 婷婷综合 | 中文字幕在线观看完整版电影 | 国产精品99久久久精品免费观看 | 午夜在线国产 | www.久艹 | 国内揄拍国内精品 | 国产日韩欧美在线影视 | 成人免费观看网址 | 成年人免费在线观看 | 黄色三几片 | 国产又粗又猛又黄 | 国产三级香港三韩国三级 | 国内视频在线观看 | 超碰在线97国产 | 国产高清成人在线 | 91精品国产高清自在线观看 | 黄色视屏免费在线观看 | 久久国产精品免费视频 | 欧美大片第1页 | 日日干天天插 | 久久婷婷一区二区三区 | 色吊丝在线永久观看最新版本 | 国产又粗又猛又黄视频 | 黄色一区二区在线观看 | 黄网站色| 麻豆传媒视频观看 | 日韩高清片| 日韩精品免费在线 | 亚洲人成精品久久久久 | 91av视频| 亚洲精品午夜视频 | 欧美日韩色婷婷 | 欧美日韩天堂 | 欧美激情视频一二区 | 亚洲国产欧洲综合997久久, | 成人黄色影片在线 | 日韩欧美在线观看一区 | 五月黄色 | 久久久午夜精品理论片中文字幕 | 曰韩精品 | 韩日精品在线观看 | 美女久久久久久久久久久 | 日韩羞羞| 最新国产精品视频 | 999在线精品 | 天天操狠狠操夜夜操 | av成人免费网站 | 免费合欢视频成人app | 三级av网站 | 国产成人久久精品亚洲 | 日韩免费观看视频 | 91色网址 | 在线观看黄 | 91精品国产一区 | 欧美 日韩 性| 色多多污污在线观看 | 午夜av一区 | 四虎在线免费视频 | 国产精品6999成人免费视频 | 国产一区二区综合 | 欧美精品免费在线 | 91精品网站在线观看 | a级片网站 | 久久久久久高清 | 激情久久影院 | 91麻豆精品国产午夜天堂 | 在线一级片 | 亚洲国产精品成人va在线观看 | 玖玖玖影院 | av免费网 | 国产精品video爽爽爽爽 | 免费国产在线视频 | 手机在线日韩视频 | www黄com | 国内外激情视频 | 亚洲视频免费在线观看 | 婷婷五月在线视频 | 中文字幕免费观看全部电影 | 国产成人av网站 | 国产一区私人高清影院 | 久草在| 国产精品美女999 | 久久精品久久国产 | 91在线影院| 99自拍视频在线观看 | www.狠狠色.com | 欧美午夜理伦三级在线观看 | 特级西西444www高清大视频 | 久久精品国产亚洲精品 | 欧美一区二区视频97 | 国产小视频免费观看 | 不卡在线一区 | 碰超在线 | 最新国产在线 | 欧美久久久久久久久久 | 国产日韩中文在线 | www.午夜色.com | 国产精品日韩久久久久 | 日日摸日日| 综合国产在线观看 | 视频成人永久免费视频 | 狠狠操影视 | 少妇精品久久久一区二区免费 | 日韩免费电影网 | 免费h视频| 中文区中文字幕免费看 | 国产精品久久久久久久久久尿 | 亚洲综合在线五月 | 丁香一区二区 | 粉嫩高清一区二区三区 | 日韩成人免费观看 | 国产精品欧美一区二区三区不卡 | 黄色av网站在线观看免费 | 在线观看免费一级片 | 国产亚洲精品久久久久久 | 国产一区二区中文字幕 | 亚洲精品动漫成人3d无尽在线 | 五月天免费网站 | 在线观看国产成人av片 | 久久婷婷国产色一区二区三区 | 亚洲91av | 久久xx视频 | 91av欧美| 亚洲涩涩涩 | 狠狠色伊人亚洲综合成人 | 亚洲免费公开视频 | 亚洲色图美腿丝袜 | 日韩理论视频 | www.一区二区三区 | 国产美女主播精品一区二区三区 | 欧美精品久久久久性色 | 婷婷丁香五 | 国产精品久久久久久久久软件 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国产精品免费久久久久久久久久中文 | 亚洲.www| 亚洲少妇天堂 | 午夜精品久久久久久久爽 | 91成人精品一区在线播放 | 玖玖玖影院| 欧美精品xxx | 黄色的网站免费看 | av电影不卡 | 免费在线国产 | 97人人人| 亚洲天堂网在线视频观看 | 婷婷在线观看视频 | 97操碰 | 成x99人av在线www | 友田真希av | 在线成人免费电影 | 亚洲精品麻豆视频 | av在线免费网站 | 一区二区三区在线视频观看58 | 国产免费不卡 | 午夜久久影院 | 国产高清不卡av | 国产精品一区二区久久久久 | 国产一区高清在线 | 日韩欧美精品在线 | 日韩精品视频免费 | 美女免费av | 午夜色婷婷 | 涩涩成人在线 | 日韩大片在线 | 久久久噜噜噜久久久 | 亚洲精品在线观看中文字幕 | 亚洲国产精品va在线看黑人动漫 | 在线观看精品一区 | 亚洲一区久久久 | 91网站免费观看 | 国产精品人人做人人爽人人添 | 97超在线视频 | 国产99中文字幕 | 国产午夜精品一区二区三区嫩草 | 久久超级碰视频 | 丁香婷婷久久久综合精品国产 | 午夜视频久久久 | 日韩理论片在线观看 | 中文字幕永久在线 | 欧美一进一出抽搐大尺度视频 | 天天干天天射天天爽 | 一级a性色生活片久久毛片波多野 | 国产精品高潮呻吟久久av无 | 99在线免费视频 | 波多野结衣精品在线 | 99精品国产福利在线观看免费 | 蜜臀av性久久久久av蜜臀三区 | 色偷偷av男人天堂 | 国产精品一区二区三区四 | 亚洲日日日 | 日本高清中文字幕有码在线 | 少妇精品久久久一区二区免费 | 不卡av在线免费观看 | 五月激情电影 | 精品国产福利在线 | 国产精品乱码高清在线看 | 国产最新视频在线观看 | 免费国产一区二区视频 | 日韩av区| 毛片在线播放网址 | 黄色日批网站 | 久久超碰99 | 久久久国产精品一区二区三区 | 91精品免费| 黄色国产精品 | 看毛片的网址 | 日韩精品视频久久 | 成人在线免费看视频 | 国产成人在线网站 | 看毛片网站 | 国产精品色 | 久久97久久97精品免视看 | www夜夜操 | 国产不卡视频在线播放 | 夜夜操夜夜干 | 久碰视频在线观看 | 欧美亚洲国产日韩 | 久久视频精品在线观看 | 在线91播放 | 五月婷婷在线综合 | 国产成人61精品免费看片 | www.天天干.com | 国产亚洲欧美日韩高清 | 91免费黄视频 | 精品中文字幕视频 | 久久美女高清视频 | 最新av网址在线观看 | 一区二区伦理 | 91c网站色版视频 | 久久久久久久久久久国产精品 | 九色91在线视频 | 极品中文字幕 | 成人免费在线观看入口 | 人人射av | 日本成人黄色片 | 中文字幕人成不卡一区 | 国产在线国产 | 日韩电影一区二区三区在线观看 | 色开心| 丁香五香天综合情 | 99精品视频免费 | 国产精品96久久久久久吹潮 | 久久久久国 | www.五月天 | 日日夜夜av | 麻豆视频免费播放 | 91av色 | 久久五月天色综合 | 亚洲精品高清在线 | 中文字幕日本特黄aa毛片 | 超碰97在线资源站 | 国产福利一区在线观看 | www91在线观看 | 日韩欧美在线综合网 | 97成人免费 | 免费a v视频 | 日韩成人免费在线电影 | 日韩av成人在线观看 | 久久久久国产一区二区三区 | 国产不卡在线视频 | 久草在线最新视频 | 婷婷av色综合 | 国产精品9区 | 成人va视频| 久久精品专区 | 欧美性粗大hdvideo | 六月丁香在线视频 | 国产成人免费精品 | 九九热在线精品视频 | 国产精品 视频 | 国产亚洲视频在线观看 | 中文电影网 | 人人爱天天操 | 国产一级一片免费播放放 | 激情欧美丁香 | 亚洲激情av | 久久96国产精品久久99漫画 | 日韩视频免费在线观看 | 日韩在线在线 | 亚洲成色777777在线观看影院 | 黄免费网站 | 免费看久久久 | a一片一级 | 国产免费久久 | 日韩综合一区二区 | 99久久久国产免费 | av在线播放亚洲 | 久久久久久久久久久影院 | 天天综合网久久综合网 | 亚洲日本成人网 | 丝袜少妇在线 | 成人av视屏| 久久综合网色—综合色88 | 国产视频2区| 中文字幕中文字幕中文字幕 | 美女黄网久久 | av成人免费 | av观看免费在线 | 国产精品爽爽久久久久久蜜臀 | 久久免费黄色大片 | 在线看岛国av | 欧美日韩免费观看一区=区三区 | 久草青青在线观看 | 国产在线观看二区 | 视频二区 | 日韩美av在线 | 91精品无人成人www | 亚洲欧美日韩在线看 | 久久成人午夜 | 日韩中文字幕免费在线观看 | 欧美日韩二区在线 | 国产无遮挡又黄又爽馒头漫画 | 成人黄在线观看 | 久久亚洲免费 | 综合成人在线 | 天天射天天干天天插 | 欧美另类色图 | 99精品免费在线 | 亚洲aⅴ乱码精品成人区 | 久久国产乱 | 在线草 | 在线观看成人小视频 | 色噜噜日韩精品欧美一区二区 | 国产在线资源 | 毛片网站免费 | 国产精品综合在线观看 | 97香蕉超级碰碰久久免费软件 | 国产精品av电影 | 精品视频在线视频 | 国产中文字幕一区二区 | 美女亚洲精品 | 欧美日韩性视频在线 | 久久99在线观看 | 五月的婷婷 | avove黑丝 | 色噜噜日韩精品一区二区三区视频 | 国产成人精品一区二区 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 国产一区免费看 | 国产成人久久精品亚洲 | av网址aaa | 国产精品久久久久9999吃药 | 日本在线精品视频 | 操高跟美女 | 日韩av在线免费播放 | 99久久99久国产黄毛片 | 亚洲国产字幕 | 狠狠色丁香婷婷综合 | 婷婷综合亚洲 | 伊人天天操| 永久免费观看视频 | 国产字幕在线播放 | 久久99久久99精品免视看婷婷 | 国产福利免费看 | 久久五月婷婷丁香社区 | 久久社区视频 | 亚洲国产美女久久久久 | 狠狠色噜噜狠狠 | 国产一级片毛片 | 最新91在线视频 | 91视频国产高清 | 日本精品午夜 | 日韩com| 国产精品久久久久久久久久久久冷 | 国产精品毛片久久 | 免费观看成年人视频 | www狠狠| 婷婷久久亚洲 | 99久久精品费精品 | 一区二区三区日韩在线 | 色狠狠婷婷 | 五月婷婷在线视频观看 | 国产电影一区二区三区四区 | 五月开心婷婷 | 亚洲激情 欧美激情 | 日韩在线播放视频 | 国产精品久久久久永久免费 | 欧美日韩国产一区二区在线观看 | 久久精精品视频 | 久久婷婷网 | 亚洲午夜激情网 | 91在线精品视频 | 亚洲更新最快 | 狠狠插天天干 | 国产又粗又猛又黄又爽的视频 | 日韩电影在线观看一区二区 | 在线黄色国产电影 | 国产一级三级 | 色久综合| 日韩xxxxxxxxx | 国产精品99久久99久久久二8 | 久久精品爱爱视频 | 国产福利网站 | 亚洲黄色av网址 | 亚洲影院国产 | 国产精品久久久久久久久免费 | 日本精品视频一区二区 | 久久午夜网| 久久综合九色综合97婷婷女人 | 久久艹综合 | 91精品啪在线观看国产81旧版 | 欧美日本一区 | 日本中文在线观看 | 国产不卡视频在线播放 | 久草视频在线观 | 日本大片免费观看在线 | 国产中文字幕在线视频 | 精品嫩模福利一区二区蜜臀 | 日本久久久久久科技有限公司 | 午夜黄色一级片 | 97精品国产手机 | 日韩欧美精品免费 | 亚洲国产精品va在线 | 欧美成人中文字幕 | 欧美成人性战久久 | 国产乱码精品一区二区三区介绍 | 狠狠色伊人亚洲综合成人 | 亚洲国产精品资源 | 天天干夜夜爽 | 亚洲国产操 | 中文字幕网站视频在线 | 日本久久久久久久久久久 | .国产精品成人自产拍在线观看6 | 婷婷激情小说网 | 一区二区三区日韩视频在线观看 | 最新国产福利 | 亚州国产精品久久久 | 国产精品18久久久久白浆 | 亚洲最大激情中文字幕 | 国产日韩欧美在线观看 | 91资源在线视频 | 人人爱夜夜操 | 日韩区视频 | avav99| 在线观看视频黄色 | 日日日日干 | 97成人精品视频在线观看 | 美女搞黄国产视频网站 | 天天草天天 | 久久伊人八月婷婷综合激情 | www.久久久.com | 玖玖在线观看视频 | 日韩电影在线观看中文字幕 | 天天干天天干天天干天天干天天干天天干 | 欧美精品二区 | 色婷婷国产在线 | www.夜夜爱 | 久久观看免费视频 | 国产手机视频精品 | 2021国产精品| 丝袜美腿av | 最新在线你懂的 | 在线日韩亚洲 | 夜夜爽天天爽 | 国产美女精品视频 | 免费看的毛片 | 在线观看岛国 | 久草在线在线 | 亚洲涩涩涩| 免费h漫在线观看 | 久久视频免费 | 久草国产在线观看 | 欧美精品久久久久性色 | 91精品久久久久久粉嫩 | 国产精品成人免费精品自在线观看 | 日本xxxx.com | 亚洲黄色小说网址 | 六月色播 | 亚洲国产精品成人va在线观看 | 中文字幕亚洲精品在线观看 | 黄色的片子 | 日本精品视频网站 | 久久视频这里有久久精品视频11 | 亚洲欧美在线观看视频 | 在线免费观看国产 | 激情欧美一区二区免费视频 | 精品日本视频 | 天堂av观看 | 日韩理论电影在线 | 久久99亚洲精品久久久久 | 久久av黄色| 国产91亚洲 | 亚洲黄色免费观看 | www.久久色 | 久久精品国产v日韩v亚洲 | 国产精品v a免费视频 | 91精品国产高清自在线观看 | 欧美成人免费在线 | 在线视频久 | 欧美国产日韩一区 | 久草视频在 | 日韩mv欧美mv国产精品 | 久草精品在线播放 | 中文字幕资源站 | 最新91在线视频 | 国产成人久久久77777 | 久久不卡国产精品一区二区 | 911精品美国片911久久久 | 亚洲精品视频网 | 国产精品九九久久久久久久 | 亚洲作爱 | 狠狠操在线 | 国产精品视频永久免费播放 | 久久视频在线观看 | 成人国产精品久久久 | 青春草免费视频 | av先锋中文字幕 | 免费在线观看中文字幕 | 久久五月天综合 | 成人黄色电影视频 | 五月激情视频 | 综合久色| 视频一区久久 | 欧美一级裸体视频 | 国产精品剧情在线亚洲 | 干干日日 | 五月亚洲 | 99精品视频免费 | 精品免费在线视频 | 国产精品嫩草影院9 | 婷婷丁香花五月天 | 天堂va在线高清一区 | 在线天堂8√ | 久久综合电影 | 亚洲视频资源在线 | 国产一级视屏 | 毛片在线网 | 欧美精品在线一区 | 中文在线亚洲 | 国产精品美女999 | 99精品黄色片免费大全 | 中文字幕一区二区三区四区视频 | 亚洲精品白浆高清久久久久久 | 久久男人免费视频 | 91九色最新地址 | 成人久久18免费 | 国产精品网在线观看 | 免费看av片网站 | 色综合久久88色综合天天免费 | 精品少妇一区二区三区在线 | 国产1区在线观看 | 九九爱免费视频 | 久久99精品久久只有精品 | 日本黄色免费网站 | 久久久国内精品 | 九九九九九九精品 | 精品国产网址 | 国产高清专区 | 在线 高清 中文字幕 | 精品99免费 | 亚欧日韩成人h片 | 91在线免费播放 | 91精品久久久久久综合五月天 | 成人在线网站观看 | 国产精品成人久久久久久久 | 亚洲综合色视频 | 国产精品白浆视频 | av中文字幕亚洲 | 中文字幕 国产 一区 | 亚洲一区二区三区毛片 | 欧美日韩视频一区二区 | 色av男人的天堂免费在线 | 亚洲精品乱码久久久久久蜜桃欧美 | av色影院 | 毛片网站观看 | 9999精品视频 | 天天综合网久久综合网 | 亚洲成人xxx| 激情综合久久 | 成人精品久久 | 久久视频免费在线观看 | 九九九热 | 西西444www大胆高清视频 | 91视频在线免费看 | 狠狠色狠狠色综合系列 | 免费看黄在线 | 国产精品福利在线播放 | 久久综合综合久久综合 | 日韩特级黄色片 | 一本一道波多野毛片中文在线 | 91爱爱中文字幕 | 婷婷综合伊人 | 久久99国产一区二区三区 | 伊人伊成久久人综合网站 | 日韩一区二区三区高清免费看看 | 亚洲国产中文字幕 | 欧美了一区在线观看 | 国产精品一区二区三区视频免费 | 天天操综合 | av3级在线 | 在线激情小视频 | 欧美 激情 国产 91 在线 | 亚洲国产免费网站 | 亚洲电影av在线 | 日日天天| 97视频免费在线观看 | 午夜色场 | 日韩视频在线观看免费 | 日本久久精 | 玖草影院| 免费激情网 | 黄色精品国产 | 免费a网址 | 亚洲精品国产精品乱码在线观看 | 欧美成人免费在线 | 久久99精品国产99久久6尤 | 五月天激情视频 | 999成人免费视频 | 69精品在线 | 天天曰天天 | 国产一区在线视频观看 | 久久有精品 | 久久好看免费视频 | 成年人在线免费看片 | 精品99在线 | 天天插天天干 | 国产成视频在线观看 | 免费进去里的视频 | 久久精品国产免费观看 | 日韩精品免费在线观看 | 中文字幕制服丝袜av久久 | 亚洲男人天堂a | 婷婷色伊人 | 国产又粗又硬又长又爽的视频 | 国产伦精品一区二区三区四区视频 | 久久精品视频免费 | 国产精品v欧美精品v日韩 | 亚洲最大色 | 96视频在线| 五月婷婷中文网 | 久久精品国产免费看久久精品 | 在线观看视频国产 | 亚洲无线视频 | 欧美一二三四在线 | av免费在线观看1 | 久久久人人人 | 久久精品2 | 国产精品日韩在线 | 国产精品欧美日韩在线观看 | 六月激情网 | 久久久久久久网站 | 一区二区视频在线观看免费 | 国产麻豆成人传媒免费观看 | 伊人宗合网 | 欧美在线视频精品 | 99re久久精品国产 | 国产欧美久久久精品影院 | 91传媒视频在线观看 | 在线观看一区二区精品 | 久久视频在线观看免费 | 国内精品视频在线 | 免费在线色电影 | 99久久这里有精品 | 天天干夜夜夜 | www.xxxx欧美| 免费在线观看一区二区三区 | 成年人黄色大片在线 | 97精产国品一二三产区在线 | 五月天中文在线 | 欧美日韩综合在线观看 | 成人97人人超碰人人99 | 久久图| 国产色网| 国产不卡av在线播放 | 欧美激情视频一区二区三区免费 | 在线亚洲精品 | 亚洲国产成人在线 | www.五月天婷婷.com | 黄网站app在线观看免费视频 | av免费在线免费观看 | 免费影视大全推荐 | 午夜在线观看影院 | 91香蕉国产 | 精品少妇一区二区三区在线 | 国产精品中文字幕在线播放 | 97av视频在线| 国产成人久久久77777 | 四虎永久视频 | 日韩在线一级 | 在线国产片 | 久影院 | 色资源网免费观看视频 | 国产v视频 | 欧美激情xxxx性bbbb | 日韩在线免费观看视频 | 天天射天天操天天 | 最近中文字幕视频网 | 国产高清在线免费观看 | 91最新在线视频 | 亚洲天天干 | 精品在线一区二区 | 久久视频免费看 | 免费中午字幕无吗 | 久久99精品久久久久久 | 中文字幕中文字幕在线中文字幕三区 | 美女视频黄的免费的 | 日本高清dvd | 丁香婷婷在线观看 | 日韩美一区二区三区 | 久久99国产精品久久99 | 国产精品 亚洲精品 | 在线观看第一页 | 一级黄色片毛片 | 国产精品久久二区 | 97视频久久久 | 91网站在线视频 | 麻豆视频免费网站 | 亚洲人成精品久久久久 | 午夜私人影院久久久久 | 免费av网址在线观看 | 丁香激情综合 | 国产一线天在线观看 | 一区三区视频 | 亚洲精选久久 | 久草视频免费在线播放 | 中文字幕专区高清在线观看 | 午夜精品婷婷 | 黄av免费在线观看 | 黄网在线免费观看 | 日韩艹 | 亚洲欧洲中文日韩久久av乱码 | 玖玖玖精品 | 综合在线色| 一区二区三区韩国免费中文网站 | 亚洲精品女| 亚洲国产网站 | 在线播放亚洲 | 久久精品男人的天堂 | 色欲综合视频天天天 | 人人超碰97 | 黄色av大片 | 久久夜av | 99久久精品国产免费看不卡 | 深爱五月激情网 | 开心激情网五月天 | 久久夜av | 91tv国产成人福利 | 欧美另类交在线观看 | 蜜臀av性久久久久av蜜臀妖精 | 免费看的黄色片 | 国产精品视频app | 亚洲一级片在线观看 | av最新资源 | 99成人精品 | 五月婷婷丁香色 | 亚洲a成人v | 亚洲国产精品成人va在线观看 | 国产一区在线免费 | 水蜜桃亚洲一二三四在线 | 欧美日韩亚洲国产一区 | 丁香高清视频在线看看 | 久久天天躁夜夜躁狠狠85麻豆 | 91精品国产乱码久久桃 | 免费成人在线观看 | 日日摸日日 | 99久热在线精品视频观看 | 中文字幕电影在线 | 国产999视频在线观看 | 久热免费在线 | 免费看的视频 | 四虎永久国产精品 | 91大神dom调教在线观看 | 亚洲欧美激情精品一区二区 | www.eeuss影院av撸| 日韩久久影院 | 亚洲美女在线一区 | 免费在线黄色av | 狠狠干免费 | 免费黄色一区 | 日日干视频| 最新99热| 国产亚洲精品久 | 91精品国自产在线观看欧美 | 国产精品免费大片视频 | 国产精品久久久久久爽爽爽 | 精品视频在线看 | 日韩欧美一区二区三区在线 | 草莓视频在线观看免费观看 | 免费观看一级特黄欧美大片 | 96亚洲精品久久 | 狠狠色丁香婷婷综合久久片 | 天天射日| 国产传媒一区在线 | 亚洲综合色婷婷 | 日韩欧美精品在线观看 | 亚洲精品456在线播放 | 操久久网 | 国产精品99久久久久久小说 | 婷婷伊人五月 | 免费av成人在线 | 欧美一级日韩免费不卡 | 精品久久网站 | 久久亚洲私人国产精品 | 精品久久片| 久久人人爽人人爽人人片av免费 | 国产综合91 | 免费看黄色91 | 亚洲精品ww| 欧美一区二区三区特黄 | 97久久久免费福利网址 | 亚洲国产成人高清精品 | 国产精品理论片 | 97视频在线观看网址 | 久久久久久久久久久久久影院 | 久久久片 | 久草视频视频在线播放 | 操操操日日日干干干 | 久久久免费看 | 天天操天天是 | 青草视频免费观看 | 国产高清视频在线 | 日本中文字幕网站 | 九九在线高清精品视频 | 四虎影视成人永久免费观看视频 | 天堂av在线 | 成人免费亚洲 | 天天草网站 | 国产在线观看一 | 日本女人的性生活视频 | 国产精品网红直播 | 午夜精品视频免费在线观看 | 免费久久99精品国产 | www.色午夜.com | 激情图片区 | 高清在线一区 | av日韩在线网站 | 又爽又黄又无遮挡网站动态图 | 中文字幕在线观看一区二区三区 | 日韩av免费一区 | 国产 在线观看 | 国内三级在线观看 | 免费观看视频黄 | 精品国产欧美一区二区三区不卡 | 五月婷婷久草 | 99热在线观看免费 | 亚洲精品乱码 | 国产91影视| 国产高清av在线播放 | 91精品在线免费观看视频 | 欧美成人一区二区 | 成人久久网 | 伊人www22综合色 | 久久久久黄 | 在线免费观看视频一区二区三区 | 国产原创在线 | 亚洲精品视频国产 | 天天操天天摸天天射 | 久久人人爽爽人人爽人人片av | 亚洲丝袜一区二区 | 国产精品成人一区 | 国产亚洲精品久久久久久久久久 | 欧美日韩国产精品一区 | 手机看片午夜 | 国产成人福利在线 | 日韩精品一区电影 | 97视频免费在线 | 一区二区不卡在线观看 | 一区二区中文字幕在线 | 成年人免费电影在线观看 | 久精品一区 | 91av中文字幕 | 97人人人人| www..com黄色片 | 91漂亮少妇露脸在线播放 | 成人91视频 | 天天人人| 视频一区在线免费观看 | 亚洲中字幕 | 91精品久久久久久综合乱菊 | 绯色av一区 | 四虎精品成人免费网站 | 在线电影日韩 | 天堂在线一区二区三区 | 国产精品国产亚洲精品看不卡 | 国产中文字幕一区二区三区 | 97色婷婷| 免费久久视频 | 中文字幕人成乱码在线观看 | 亚洲人在线7777777精品 | 国产高清中文字幕 | 伊人欧美 | 娇妻呻吟一区二区三区 | 亚洲国产视频直播 | 久久人人插 | 欧美成人精品三级在线观看播放 | 天天干中文字幕 | 免费黄在线看 | 久久中文视频 | 亚洲区精品视频 | 国产精品资源在线观看 | 免费在线观看日韩视频 | 91看片一区二区三区 | 国产精品av免费观看 | 亚洲精品综合欧美二区变态 | 久久国产香蕉视频 | 亚洲男男gaygayxxxgv| 黄色一级在线视频 | 国内视频1区 |