5#include6#include7#include8#include9#include10#include

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

redis源碼筆記 - aof

系統(tǒng) 2649 0

aof是redis提供的一種數(shù)據(jù)持久化機(jī)制,通過將每一條命令dump下來,保持?jǐn)?shù)據(jù)和內(nèi)存中的數(shù)據(jù)一致。

      
          1
      
       #include 
      
        "
      
      
        redis.h
      
      
        "
      
      
          2
      
       #include 
      
        "
      
      
        bio.h
      
      
        "
      
      
          3
      
      
          4
      
       #include <signal.h>
      
          5
      
       #include <fcntl.h>
      
          6
      
       #include <sys/stat.h>
      
          7
      
       #include <sys/types.h>
      
          8
      
       #include <sys/time.h>
      
          9
      
       #include <sys/resource.h>
      
         10
      
       #include <sys/wait.h>
      
         11
      
      
         12
      
      
        void
      
       aofUpdateCurrentSize(
      
        void
      
      
        );
      
      
         13
      
      
         14
      
      
        void
      
       aof_background_fsync(
      
        int
      
      
         fd) {
      
      
         15
      
           bioCreateBackgroundJob(REDIS_BIO_AOF_FSYNC,(
      
        void
      
      *)(
      
        long
      
      
        )fd,NULL,NULL);
      
      
         16
      
      
        }
      
      
         17
      
      
         18
      
      
        /*
      
      
         Called when the user switches from "appendonly yes" to "appendonly no"
      
      
         19
      
      
         * at runtime using the CONFIG command. 
      
      
        */
      
      
         20
      
      
        void
      
       stopAppendOnly(
      
        void
      
      
        ) {
      
      
         21
      
           flushAppendOnlyFile(
      
        1
      
      
        );
      
      
         22
      
      
            aof_fsync(server.appendfd);
      
      
         23
      
      
            close(server.appendfd);
      
      
         24
      
      
         25
      
           server.appendfd = -
      
        1
      
      
        ;
      
      
         26
      
           server.appendseldb = -
      
        1
      
      
        ;
      
      
         27
      
           server.appendonly = 
      
        0
      
      
        ;
      
      
         28
      
      
        /*
      
      
         rewrite operation in progress? kill it, wait child exit 
      
      
        */
      
      
         29
      
      
        if
      
       (server.bgrewritechildpid != -
      
        1
      
      
        ) {
      
      
         30
      
      
        int
      
      
         statloc;
      
      
         31
      
      
         32
      
      
        if
      
       (kill(server.bgrewritechildpid,SIGKILL) != -
      
        1
      
      
        )
      
      
         33
      
                   wait3(&statloc,
      
        0
      
      
        ,NULL);
      
      
         34
      
      
        /*
      
      
         reset the buffer accumulating changes while the child saves 
      
      
        */
      
      
         35
      
      
                sdsfree(server.bgrewritebuf);
      
      
         36
      
               server.bgrewritebuf =
      
         sdsempty();
      
      
         37
      
               server.bgrewritechildpid = -
      
        1
      
      
        ;
      
      
         38
      
      
            }
      
      
         39
      
      
        }
      
      
         40
      
      
         41
      
      
        /*
      
      
         Called when the user switches from "appendonly no" to "appendonly yes"
      
      
         42
      
      
         * at runtime using the CONFIG command. 
      
      
        */
      
      
         43
      
      
        int
      
       startAppendOnly(
      
        void
      
      
        ) {
      
      
         44
      
           server.appendonly = 
      
        1
      
      
        ;
      
      
         45
      
           server.lastfsync =
      
         time(NULL);
      
      
         46
      
           server.appendfd = open(server.appendfilename,O_WRONLY|O_APPEND|O_CREAT,
      
        0644
      
      
        );
      
      
         47
      
      
        if
      
       (server.appendfd == -
      
        1
      
      
        ) {
      
      
         48
      
               redisLog(REDIS_WARNING,
      
        "
      
      
        Used tried to switch on AOF via CONFIG, but I can't open the AOF file: %s
      
      
        "
      
      
        ,strerror(errno));
      
      
         49
      
      
        return
      
      
         REDIS_ERR;
      
      
         50
      
      
            }
      
      
         51
      
      
        if
      
       (rewriteAppendOnlyFileBackground() ==
      
         REDIS_ERR) {
      
      
         52
      
               server.appendonly = 
      
        0
      
      
        ;
      
      
         53
      
      
                close(server.appendfd);
      
      
         54
      
               redisLog(REDIS_WARNING,
      
        "
      
      
        Used tried to switch on AOF via CONFIG, I can't trigger a background AOF rewrite operation. Check the above logs for more info about the error.
      
      
        "
      
      
        ,strerror(errno));
      
      
         55
      
      
        return
      
      
         REDIS_ERR;
      
      
         56
      
      
            }
      
      
         57
      
      
        return
      
      
         REDIS_OK;
      
      
         58
      
      
        }
      
      
         59
      
      
         60
      
      
        /*
      
      
         Write the append only file buffer on disk.
      
      
         61
      
      
         *
      
      
         62
      
      
         * Since we are required to write the AOF before replying to the client,
      
      
         63
      
      
         * and the only way the client socket can get a write is entering when the
      
      
         64
      
      
         * the event loop, we accumulate all the AOF writes in a memory
      
      
         65
      
      
         * buffer and write it on disk using this function just before entering
      
      
         66
      
      
         * the event loop again.
      
      
         67
      
      
         *
      
      
         68
      
      
         * About the 'force' argument:
      
      
         69
      
      
         *
      
      
         70
      
      
         * When the fsync policy is set to 'everysec' we may delay the flush if there
      
      
         71
      
      
         * is still an fsync() going on in the background thread, since for instance
      
      
         72
      
      
         * on Linux write(2) will be blocked by the background fsync anyway.
      
      
         73
      
      
         * When this happens we remember that there is some aof buffer to be
      
      
         74
      
      
         * flushed ASAP, and will try to do that in the serverCron() function.
      
      
         75
      
      
         *
      
      
         76
      
      
         * However if force is set to 1 we'll write regardless of the background
      
      
         77
      
      
         * fsync. 
      
      
        */
      
      
         78
      
      
        void
      
       flushAppendOnlyFile(
      
        int
      
      
         force) {
      
      
         79
      
      
            ssize_t nwritten;
      
      
         80
      
      
        int
      
       sync_in_progress = 
      
        0
      
      
        ;
      
      
         81
      
      
         82
      
      
        if
      
       (sdslen(server.aofbuf) == 
      
        0
      
      ) 
      
        return
      
      
        ;
      
      
         83
      
      
         84
      
      
        if
      
       (server.appendfsync ==
      
         APPENDFSYNC_EVERYSEC)
      
      
         85
      
               sync_in_progress = bioPendingJobsOfType(REDIS_BIO_AOF_FSYNC) != 
      
        0
      
      
        ;
      
      
         86
      
      
         87
      
      
        if
      
       (server.appendfsync == APPENDFSYNC_EVERYSEC && !
      
        force) {
      
      
         88
      
      
        /*
      
      
         With this append fsync policy we do background fsyncing.
      
      
         89
      
      
                 * If the fsync is still in progress we can try to delay
      
      
         90
      
      
                 * the write for a couple of seconds. 
      
      
        */
      
      
         91
      
      
        if
      
      
         (sync_in_progress) {
      
      
         92
      
      
        if
      
       (server.aof_flush_postponed_start == 
      
        0
      
      
        ) {
      
      
         93
      
      
        /*
      
      
         No previous write postponinig, remember that we are
      
      
         94
      
      
                         * postponing the flush and return. 
      
      
        */
      
      
         95
      
                       server.aof_flush_postponed_start =
      
         server.unixtime;
      
      
         96
      
      
        return
      
      
        ;
      
      
         97
      
                   } 
      
        else
      
      
        if
      
       (server.unixtime - server.aof_flush_postponed_start < 
      
        2
      
      
        ) {
      
      
         98
      
      
        /*
      
      
         We were already waiting for fsync to finish, but for less
      
      
         99
      
      
                         * than two seconds this is still ok. Postpone again. 
      
      
        */
      
      
        100
      
      
        return
      
      
        ;
      
      
        101
      
      
                    }
      
      
        102
      
      
        /*
      
      
         Otherwise fall trough, and go write since we can't wait
      
      
        103
      
      
                     * over two seconds. 
      
      
        */
      
      
        104
      
                   redisLog(REDIS_NOTICE,
      
        "
      
      
        Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
      
      
        "
      
      
        );
      
      
        105
      
      
                }
      
      
        106
      
      
            }
      
      
        107
      
      
        /*
      
      
         If you are following this code path, then we are going to write so
      
      
        108
      
      
             * set reset the postponed flush sentinel to zero. 
      
      
        */
      
      
        109
      
           server.aof_flush_postponed_start = 
      
        0
      
      
        ;
      
      
        110
      
      
        111
      
      
        /*
      
      
         We want to perform a single write. This should be guaranteed atomic
      
      
        112
      
      
             * at least if the filesystem we are writing is a real physical one.
      
      
        113
      
      
             * While this will save us against the server being killed I don't think
      
      
        114
      
      
             * there is much to do about the whole server stopping for power problems
      
      
        115
      
      
             * or alike 
      
      
        */
      
      
        116
      
           nwritten =
      
         write(server.appendfd,server.aofbuf,sdslen(server.aofbuf));
      
      
        117
      
      
        if
      
       (nwritten !=
      
         (signed)sdslen(server.aofbuf)) {
      
      
        118
      
      
        /*
      
      
         Ooops, we are in troubles. The best thing to do for now is
      
      
        119
      
      
                 * aborting instead of giving the illusion that everything is
      
      
        120
      
      
                 * working as expected. 
      
      
        */
      
      
        121
      
      
        if
      
       (nwritten == -
      
        1
      
      
        ) {
      
      
        122
      
                   redisLog(REDIS_WARNING,
      
        "
      
      
        Exiting on error writing to the append-only file: %s
      
      
        "
      
      
        ,strerror(errno));
      
      
        123
      
               } 
      
        else
      
      
         {
      
      
        124
      
                   redisLog(REDIS_WARNING,
      
        "
      
      
        Exiting on short write while writing to the append-only file: %s
      
      
        "
      
      
        ,strerror(errno));
      
      
        125
      
      
                }
      
      
        126
      
               exit(
      
        1
      
      
        );
      
      
        127
      
      
            }
      
      
        128
      
           server.appendonly_current_size +=
      
         nwritten;
      
      
        129
      
      
        130
      
      
        /*
      
      
         Re-use AOF buffer when it is small enough. The maximum comes from the
      
      
        131
      
      
             * arena size of 4k minus some overhead (but is otherwise arbitrary). 
      
      
        */
      
      
        132
      
      
        if
      
       ((sdslen(server.aofbuf)+sdsavail(server.aofbuf)) < 
      
        4000
      
      
        ) {
      
      
        133
      
      
                sdsclear(server.aofbuf);
      
      
        134
      
           } 
      
        else
      
      
         {
      
      
        135
      
      
                sdsfree(server.aofbuf);
      
      
        136
      
               server.aofbuf =
      
         sdsempty();
      
      
        137
      
      
            }
      
      
        138
      
      
        139
      
      
        /*
      
      
         Don't fsync if no-appendfsync-on-rewrite is set to yes and there are
      
      
        140
      
      
             * children doing I/O in the background. 
      
      
        */
      
      
        141
      
      
        if
      
       (server.no_appendfsync_on_rewrite &&
      
        142
      
               (server.bgrewritechildpid != -
      
        1
      
       || server.bgsavechildpid != -
      
        1
      
      
        ))
      
      
        143
      
      
        return
      
      
        ;
      
      
        144
      
      
        145
      
      
        /*
      
      
         Perform the fsync if needed. 
      
      
        */
      
      
        146
      
      
        if
      
       (server.appendfsync ==
      
         APPENDFSYNC_ALWAYS) {
      
      
        147
      
      
        /*
      
      
         aof_fsync is defined as fdatasync() for Linux in order to avoid
      
      
        148
      
      
                 * flushing metadata. 
      
      
        */
      
      
        149
      
               aof_fsync(server.appendfd); 
      
        /*
      
      
         Let's try to get this data on the disk 
      
      
        */
      
      
        150
      
               server.lastfsync =
      
         server.unixtime;
      
      
        151
      
           } 
      
        else
      
      
        if
      
       ((server.appendfsync == APPENDFSYNC_EVERYSEC &&
      
        152
      
                       server.unixtime >
      
         server.lastfsync)) {
      
      
        153
      
      
        if
      
       (!
      
        sync_in_progress) aof_background_fsync(server.appendfd);
      
      
        154
      
               server.lastfsync =
      
         server.unixtime;
      
      
        155
      
      
            }
      
      
        156
      
      
        }
      
      
        157
      
      
        158
      
       sds catAppendOnlyGenericCommand(sds dst, 
      
        int
      
       argc, robj **
      
        argv) {
      
      
        159
      
      
        char
      
       buf[
      
        32
      
      
        ];
      
      
        160
      
      
        int
      
      
         len, j;
      
      
        161
      
           robj *
      
        o;
      
      
        162
      
      
        163
      
           buf[
      
        0
      
      ] = 
      
        '
      
      
        *
      
      
        '
      
      
        ;
      
      
        164
      
           len = 
      
        1
      
      +ll2string(buf+
      
        1
      
      ,
      
        sizeof
      
      (buf)-
      
        1
      
      
        ,argc);
      
      
        165
      
           buf[len++] = 
      
        '
      
      
        \r
      
      
        '
      
      
        ;
      
      
        166
      
           buf[len++] = 
      
        '
      
      
        \n
      
      
        '
      
      
        ;
      
      
        167
      
           dst =
      
         sdscatlen(dst,buf,len);
      
      
        168
      
      
        169
      
      
        for
      
       (j = 
      
        0
      
      ; j < argc; j++
      
        ) {
      
      
        170
      
               o =
      
         getDecodedObject(argv[j]);
      
      
        171
      
               buf[
      
        0
      
      ] = 
      
        '
      
      
        $
      
      
        '
      
      
        ;
      
      
        172
      
               len = 
      
        1
      
      +ll2string(buf+
      
        1
      
      ,
      
        sizeof
      
      (buf)-
      
        1
      
      ,sdslen(o->
      
        ptr));
      
      
        173
      
               buf[len++] = 
      
        '
      
      
        \r
      
      
        '
      
      
        ;
      
      
        174
      
               buf[len++] = 
      
        '
      
      
        \n
      
      
        '
      
      
        ;
      
      
        175
      
               dst =
      
         sdscatlen(dst,buf,len);
      
      
        176
      
               dst = sdscatlen(dst,o->ptr,sdslen(o->
      
        ptr));
      
      
        177
      
               dst = sdscatlen(dst,
      
        "
      
      
        \r\n
      
      
        "
      
      ,
      
        2
      
      
        );
      
      
        178
      
      
                decrRefCount(o);
      
      
        179
      
      
            }
      
      
        180
      
      
        return
      
      
         dst;
      
      
        181
      
      
        }
      
      
        182
      
      
        183
      
       sds catAppendOnlyExpireAtCommand(sds buf, robj *key, robj *
      
        seconds) {
      
      
        184
      
      
        int
      
       argc = 
      
        3
      
      
        ;
      
      
        185
      
      
        long
      
      
         when;
      
      
        186
      
           robj *argv[
      
        3
      
      
        ];
      
      
        187
      
      
        188
      
      
        /*
      
      
         Make sure we can use strtol 
      
      
        */
      
      
        189
      
           seconds =
      
         getDecodedObject(seconds);
      
      
        190
      
           when = time(NULL)+strtol(seconds->ptr,NULL,
      
        10
      
      
        );
      
      
        191
      
      
            decrRefCount(seconds);
      
      
        192
      
      
        193
      
           argv[
      
        0
      
      ] = createStringObject(
      
        "
      
      
        EXPIREAT
      
      
        "
      
      ,
      
        8
      
      
        );
      
      
        194
      
           argv[
      
        1
      
      ] =
      
         key;
      
      
        195
      
           argv[
      
        2
      
      ] =
      
         createObject(REDIS_STRING,
      
      
        196
      
               sdscatprintf(sdsempty(),
      
        "
      
      
        %ld
      
      
        "
      
      
        ,when));
      
      
        197
      
           buf =
      
         catAppendOnlyGenericCommand(buf, argc, argv);
      
      
        198
      
           decrRefCount(argv[
      
        0
      
      
        ]);
      
      
        199
      
           decrRefCount(argv[
      
        2
      
      
        ]);
      
      
        200
      
      
        return
      
      
         buf;
      
      
        201
      
      
        }
      
      
        202
      
      
        203
      
      
        void
      
       feedAppendOnlyFile(
      
        struct
      
       redisCommand *cmd, 
      
        int
      
       dictid, robj **argv, 
      
        int
      
      
         argc) {
      
      
        204
      
           sds buf =
      
         sdsempty();
      
      
        205
      
           robj *tmpargv[
      
        3
      
      
        ];
      
      
        206
      
      
        207
      
      
        /*
      
      
         The DB this command was targetting is not the same as the last command
      
      
        208
      
      
             * we appendend. To issue a SELECT command is needed. 
      
      
        */
      
      
        209
      
      
        if
      
       (dictid !=
      
         server.appendseldb) {
      
      
        210
      
      
        char
      
       seldb[
      
        64
      
      
        ];
      
      
        211
      
      
        212
      
               snprintf(seldb,
      
        sizeof
      
      (seldb),
      
        "
      
      
        %d
      
      
        "
      
      
        ,dictid);
      
      
        213
      
               buf = sdscatprintf(buf,
      
        "
      
      
        *2\r\n$6\r\nSELECT\r\n$%lu\r\n%s\r\n
      
      
        "
      
      
        ,
      
      
        214
      
                   (unsigned 
      
        long
      
      
        )strlen(seldb),seldb);
      
      
        215
      
               server.appendseldb =
      
         dictid;
      
      
        216
      
      
            }
      
      
        217
      
      
        218
      
      
        if
      
       (cmd->proc ==
      
         expireCommand) {
      
      
        219
      
      
        /*
      
      
         Translate EXPIRE into EXPIREAT 
      
      
        */
      
      
        220
      
               buf = catAppendOnlyExpireAtCommand(buf,argv[
      
        1
      
      ],argv[
      
        2
      
      
        ]);
      
      
        221
      
           } 
      
        else
      
      
        if
      
       (cmd->proc ==
      
         setexCommand) {
      
      
        222
      
      
        /*
      
      
         Translate SETEX to SET and EXPIREAT 
      
      
        */
      
      
        223
      
               tmpargv[
      
        0
      
      ] = createStringObject(
      
        "
      
      
        SET
      
      
        "
      
      ,
      
        3
      
      
        );
      
      
        224
      
               tmpargv[
      
        1
      
      ] = argv[
      
        1
      
      
        ];
      
      
        225
      
               tmpargv[
      
        2
      
      ] = argv[
      
        3
      
      
        ];
      
      
        226
      
               buf = catAppendOnlyGenericCommand(buf,
      
        3
      
      
        ,tmpargv);
      
      
        227
      
               decrRefCount(tmpargv[
      
        0
      
      
        ]);
      
      
        228
      
               buf = catAppendOnlyExpireAtCommand(buf,argv[
      
        1
      
      ],argv[
      
        2
      
      
        ]);
      
      
        229
      
           } 
      
        else
      
      
         {
      
      
        230
      
               buf =
      
         catAppendOnlyGenericCommand(buf,argc,argv);
      
      
        231
      
      
            }
      
      
        232
      
      
        233
      
      
        /*
      
      
         Append to the AOF buffer. This will be flushed on disk just before
      
      
        234
      
      
             * of re-entering the event loop, so before the client will get a
      
      
        235
      
      
             * positive reply about the operation performed. 
      
      
        */
      
      
        236
      
           server.aofbuf =
      
         sdscatlen(server.aofbuf,buf,sdslen(buf));
      
      
        237
      
      
        238
      
      
        /*
      
      
         If a background append only file rewriting is in progress we want to
      
      
        239
      
      
             * accumulate the differences between the child DB and the current one
      
      
        240
      
      
             * in a buffer, so that when the child process will do its work we
      
      
        241
      
      
             * can append the differences to the new append only file. 
      
      
        */
      
      
        242
      
      
        if
      
       (server.bgrewritechildpid != -
      
        1
      
      
        )
      
      
        243
      
               server.bgrewritebuf =
      
         sdscatlen(server.bgrewritebuf,buf,sdslen(buf));
      
      
        244
      
      
        245
      
      
            sdsfree(buf);
      
      
        246
      
      
        }
      
      
        247
      
      
        248
      
      
        /*
      
      
         In Redis commands are always executed in the context of a client, so in
      
      
        249
      
      
         * order to load the append only file we need to create a fake client. 
      
      
        */
      
      
        250
      
      
        struct
      
       redisClient *createFakeClient(
      
        void
      
      
        ) {
      
      
        251
      
      
        struct
      
       redisClient *c = zmalloc(
      
        sizeof
      
      (*
      
        c));
      
      
        252
      
      
        253
      
           selectDb(c,
      
        0
      
      
        );
      
      
        254
      
           c->fd = -
      
        1
      
      
        ;
      
      
        255
      
           c->querybuf =
      
         sdsempty();
      
      
        256
      
           c->argc = 
      
        0
      
      
        ;
      
      
        257
      
           c->argv =
      
         NULL;
      
      
        258
      
           c->bufpos = 
      
        0
      
      
        ;
      
      
        259
      
           c->flags = 
      
        0
      
      
        ;
      
      
        260
      
      
        /*
      
      
         We set the fake client as a slave waiting for the synchronization
      
      
        261
      
      
             * so that Redis will not try to send replies to this client. 
      
      
        */
      
      
        262
      
           c->replstate =
      
         REDIS_REPL_WAIT_BGSAVE_START;
      
      
        263
      
           c->reply =
      
         listCreate();
      
      
        264
      
           c->reply_bytes = 
      
        0
      
      
        ;
      
      
        265
      
           c->watched_keys =
      
         listCreate();
      
      
        266
      
           listSetFreeMethod(c->
      
        reply,decrRefCount);
      
      
        267
      
           listSetDupMethod(c->
      
        reply,dupClientReplyValue);
      
      
        268
      
      
            initClientMultiState(c);
      
      
        269
      
      
        return
      
      
         c;
      
      
        270
      
      
        }
      
      
        271
      
      
        272
      
      
        void
      
       freeFakeClient(
      
        struct
      
       redisClient *
      
        c) {
      
      
        273
      
           sdsfree(c->
      
        querybuf);
      
      
        274
      
           listRelease(c->
      
        reply);
      
      
        275
      
           listRelease(c->
      
        watched_keys);
      
      
        276
      
      
            freeClientMultiState(c);
      
      
        277
      
      
            zfree(c);
      
      
        278
      
      
        }
      
      
        279
      
      
        280
      
      
        /*
      
      
         Replay the append log file. On error REDIS_OK is returned. On non fatal
      
      
        281
      
      
         * error (the append only file is zero-length) REDIS_ERR is returned. On
      
      
        282
      
      
         * fatal error an error message is logged and the program exists. 
      
      
        */
      
      
        283
      
      
        int
      
       loadAppendOnlyFile(
      
        char
      
       *
      
        filename) {
      
      
        284
      
      
        struct
      
       redisClient *
      
        fakeClient;
      
      
        285
      
           FILE *fp = fopen(filename,
      
        "
      
      
        r
      
      
        "
      
      
        );
      
      
        286
      
      
        struct
      
      
         redis_stat sb;
      
      
        287
      
      
        int
      
       appendonly =
      
         server.appendonly;
      
      
        288
      
      
        long
      
       loops = 
      
        0
      
      
        ;
      
      
        289
      
      
        290
      
      
        if
      
       (fp && redis_fstat(fileno(fp),&sb) != -
      
        1
      
       && sb.st_size == 
      
        0
      
      
        ) {
      
      
        291
      
               server.appendonly_current_size = 
      
        0
      
      
        ;
      
      
        292
      
      
                fclose(fp);
      
      
        293
      
      
        return
      
      
         REDIS_ERR;
      
      
        294
      
      
            }
      
      
        295
      
      
        296
      
      
        if
      
       (fp ==
      
         NULL) {
      
      
        297
      
               redisLog(REDIS_WARNING,
      
        "
      
      
        Fatal error: can't open the append log file for reading: %s
      
      
        "
      
      
        ,strerror(errno));
      
      
        298
      
               exit(
      
        1
      
      
        );
      
      
        299
      
      
            }
      
      
        300
      
      
        301
      
      
        /*
      
      
         Temporarily disable AOF, to prevent EXEC from feeding a MULTI
      
      
        302
      
      
             * to the same file we're about to read. 
      
      
        */
      
      
        303
      
           server.appendonly = 
      
        0
      
      
        ;
      
      
        304
      
      
        305
      
           fakeClient =
      
         createFakeClient();
      
      
        306
      
      
            startLoading(fp);
      
      
        307
      
      
        308
      
      
        while
      
      (
      
        1
      
      
        ) {
      
      
        309
      
      
        int
      
      
         argc, j;
      
      
        310
      
               unsigned 
      
        long
      
      
         len;
      
      
        311
      
               robj **
      
        argv;
      
      
        312
      
      
        char
      
       buf[
      
        128
      
      
        ];
      
      
        313
      
      
                sds argsds;
      
      
        314
      
      
        struct
      
       redisCommand *
      
        cmd;
      
      
        315
      
      
        int
      
      
         force_swapout;
      
      
        316
      
      
        317
      
      
        /*
      
      
         Serve the clients from time to time 
      
      
        */
      
      
        318
      
      
        if
      
       (!(loops++ % 
      
        1000
      
      
        )) {
      
      
        319
      
      
                    loadingProgress(ftello(fp));
      
      
        320
      
                   aeProcessEvents(server.el, AE_FILE_EVENTS|
      
        AE_DONT_WAIT);
      
      
        321
      
      
                }
      
      
        322
      
      
        323
      
      
        if
      
       (fgets(buf,
      
        sizeof
      
      (buf),fp) ==
      
         NULL) {
      
      
        324
      
      
        if
      
      
         (feof(fp))
      
      
        325
      
      
        break
      
      
        ;
      
      
        326
      
      
        else
      
      
        327
      
      
        goto
      
      
         readerr;
      
      
        328
      
      
                }
      
      
        329
      
      
        if
      
       (buf[
      
        0
      
      ] != 
      
        '
      
      
        *
      
      
        '
      
      ) 
      
        goto
      
      
         fmterr;
      
      
        330
      
               argc = atoi(buf+
      
        1
      
      
        );
      
      
        331
      
      
        if
      
       (argc < 
      
        1
      
      ) 
      
        goto
      
      
         fmterr;
      
      
        332
      
      
        333
      
               argv = zmalloc(
      
        sizeof
      
      (robj*)*
      
        argc);
      
      
        334
      
      
        for
      
       (j = 
      
        0
      
      ; j < argc; j++
      
        ) {
      
      
        335
      
      
        if
      
       (fgets(buf,
      
        sizeof
      
      (buf),fp) == NULL) 
      
        goto
      
      
         readerr;
      
      
        336
      
      
        if
      
       (buf[
      
        0
      
      ] != 
      
        '
      
      
        $
      
      
        '
      
      ) 
      
        goto
      
      
         fmterr;
      
      
        337
      
                   len = strtol(buf+
      
        1
      
      ,NULL,
      
        10
      
      
        );
      
      
        338
      
                   argsds =
      
         sdsnewlen(NULL,len);
      
      
        339
      
      
        if
      
       (len && fread(argsds,len,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         fmterr;
      
      
        340
      
                   argv[j] =
      
         createObject(REDIS_STRING,argsds);
      
      
        341
      
      
        if
      
       (fread(buf,
      
        2
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
       fmterr; 
      
        /*
      
      
         discard CRLF 
      
      
        */
      
      
        342
      
      
                }
      
      
        343
      
      
        344
      
      
        /*
      
      
         Command lookup 
      
      
        */
      
      
        345
      
               cmd = lookupCommand(argv[
      
        0
      
      ]->
      
        ptr);
      
      
        346
      
      
        if
      
       (!
      
        cmd) {
      
      
        347
      
                   redisLog(REDIS_WARNING,
      
        "
      
      
        Unknown command '%s' reading the append only file
      
      
        "
      
      , argv[
      
        0
      
      ]->
      
        ptr);
      
      
        348
      
                   exit(
      
        1
      
      
        );
      
      
        349
      
      
                }
      
      
        350
      
      
        /*
      
      
         Run the command in the context of a fake client 
      
      
        */
      
      
        351
      
               fakeClient->argc =
      
         argc;
      
      
        352
      
               fakeClient->argv =
      
         argv;
      
      
        353
      
               cmd->
      
        proc(fakeClient);
      
      
        354
      
      
        355
      
      
        /*
      
      
         The fake client should not have a reply 
      
      
        */
      
      
        356
      
               redisAssert(fakeClient->bufpos == 
      
        0
      
       && listLength(fakeClient->reply) == 
      
        0
      
      
        );
      
      
        357
      
      
        /*
      
      
         The fake client should never get blocked 
      
      
        */
      
      
        358
      
               redisAssert((fakeClient->flags & REDIS_BLOCKED) == 
      
        0
      
      
        );
      
      
        359
      
      
        360
      
      
        /*
      
      
         Clean up. Command code may have changed argv/argc so we use the
      
      
        361
      
      
                 * argv/argc of the client instead of the local variables. 
      
      
        */
      
      
        362
      
      
        for
      
       (j = 
      
        0
      
      ; j < fakeClient->argc; j++
      
        )
      
      
        363
      
                   decrRefCount(fakeClient->
      
        argv[j]);
      
      
        364
      
               zfree(fakeClient->
      
        argv);
      
      
        365
      
      
        366
      
      
        /*
      
      
         Handle swapping while loading big datasets when VM is on 
      
      
        */
      
      
        367
      
               force_swapout = 
      
        0
      
      
        ;
      
      
        368
      
      
        if
      
       ((zmalloc_used_memory() - server.vm_max_memory) > 
      
        1024
      
      *
      
        1024
      
      *
      
        32
      
      
        )
      
      
        369
      
                   force_swapout = 
      
        1
      
      
        ;
      
      
        370
      
      
        371
      
      
        if
      
       (server.vm_enabled &&
      
         force_swapout) {
      
      
        372
      
      
        while
      
       (zmalloc_used_memory() >
      
         server.vm_max_memory) {
      
      
        373
      
      
        if
      
       (vmSwapOneObjectBlocking() == REDIS_ERR) 
      
        break
      
      
        ;
      
      
        374
      
      
                    }
      
      
        375
      
      
                }
      
      
        376
      
      
            }
      
      
        377
      
      
        378
      
      
        /*
      
      
         This point can only be reached when EOF is reached without errors.
      
      
        379
      
      
             * If the client is in the middle of a MULTI/EXEC, log error and quit. 
      
      
        */
      
      
        380
      
      
        if
      
       (fakeClient->flags & REDIS_MULTI) 
      
        goto
      
      
         readerr;
      
      
        381
      
      
        382
      
      
            fclose(fp);
      
      
        383
      
      
            freeFakeClient(fakeClient);
      
      
        384
      
           server.appendonly =
      
         appendonly;
      
      
        385
      
      
            stopLoading();
      
      
        386
      
      
            aofUpdateCurrentSize();
      
      
        387
      
           server.auto_aofrewrite_base_size =
      
         server.appendonly_current_size;
      
      
        388
      
      
        return
      
      
         REDIS_OK;
      
      
        389
      
      
        390
      
      
        readerr:
      
      
        391
      
      
        if
      
      
         (feof(fp)) {
      
      
        392
      
               redisLog(REDIS_WARNING,
      
        "
      
      
        Unexpected end of file reading the append only file
      
      
        "
      
      
        );
      
      
        393
      
           } 
      
        else
      
      
         {
      
      
        394
      
               redisLog(REDIS_WARNING,
      
        "
      
      
        Unrecoverable error reading the append only file: %s
      
      
        "
      
      
        , strerror(errno));
      
      
        395
      
      
            }
      
      
        396
      
           exit(
      
        1
      
      
        );
      
      
        397
      
      
        fmterr:
      
      
        398
      
           redisLog(REDIS_WARNING,
      
        "
      
      
        Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>
      
      
        "
      
      
        );
      
      
        399
      
           exit(
      
        1
      
      
        );
      
      
        400
      
      
        }
      
      
        401
      
      
        402
      
      
        /*
      
      
         Write a sequence of commands able to fully rebuild the dataset into
      
      
        403
      
      
         * "filename". Used both by REWRITEAOF and BGREWRITEAOF. 
      
      
        */
      
      
        404
      
      
        int
      
       rewriteAppendOnlyFile(
      
        char
      
       *
      
        filename) {
      
      
        405
      
           dictIterator *di =
      
         NULL;
      
      
        406
      
           dictEntry *
      
        de;
      
      
        407
      
           FILE *
      
        fp;
      
      
        408
      
      
        char
      
       tmpfile[
      
        256
      
      
        ];
      
      
        409
      
      
        int
      
      
         j;
      
      
        410
      
           time_t now =
      
         time(NULL);
      
      
        411
      
      
        412
      
      
        /*
      
      
         Note that we have to use a different temp name here compared to the
      
      
        413
      
      
             * one used by rewriteAppendOnlyFileBackground() function. 
      
      
        */
      
      
        414
      
           snprintf(tmpfile,
      
        256
      
      ,
      
        "
      
      
        temp-rewriteaof-%d.aof
      
      
        "
      
      , (
      
        int
      
      
        ) getpid());
      
      
        415
      
           fp = fopen(tmpfile,
      
        "
      
      
        w
      
      
        "
      
      
        );
      
      
        416
      
      
        if
      
       (!
      
        fp) {
      
      
        417
      
               redisLog(REDIS_WARNING, 
      
        "
      
      
        Failed rewriting the append only file: %s
      
      
        "
      
      
        , strerror(errno));
      
      
        418
      
      
        return
      
      
         REDIS_ERR;
      
      
        419
      
      
            }
      
      
        420
      
      
        for
      
       (j = 
      
        0
      
      ; j < server.dbnum; j++
      
        ) {
      
      
        421
      
      
        char
      
       selectcmd[] = 
      
        "
      
      
        *2\r\n$6\r\nSELECT\r\n
      
      
        "
      
      
        ;
      
      
        422
      
               redisDb *db = server.db+
      
        j;
      
      
        423
      
               dict *d = db->
      
        dict;
      
      
        424
      
      
        if
      
       (dictSize(d) == 
      
        0
      
      ) 
      
        continue
      
      
        ;
      
      
        425
      
               di =
      
         dictGetSafeIterator(d);
      
      
        426
      
      
        if
      
       (!
      
        di) {
      
      
        427
      
      
                    fclose(fp);
      
      
        428
      
      
        return
      
      
         REDIS_ERR;
      
      
        429
      
      
                }
      
      
        430
      
      
        431
      
      
        /*
      
      
         SELECT the new DB 
      
      
        */
      
      
        432
      
      
        if
      
       (fwrite(selectcmd,
      
        sizeof
      
      (selectcmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        433
      
      
        if
      
       (fwriteBulkLongLong(fp,j) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        434
      
      
        435
      
      
        /*
      
      
         Iterate this DB writing every entry 
      
      
        */
      
      
        436
      
      
        while
      
      ((de = dictNext(di)) !=
      
         NULL) {
      
      
        437
      
                   sds keystr =
      
         dictGetEntryKey(de);
      
      
        438
      
                   robj key, *
      
        o;
      
      
        439
      
      
                    time_t expiretime;
      
      
        440
      
      
        int
      
      
         swapped;
      
      
        441
      
      
        442
      
                   keystr =
      
         dictGetEntryKey(de);
      
      
        443
      
                   o =
      
         dictGetEntryVal(de);
      
      
        444
      
      
                    initStaticStringObject(key,keystr);
      
      
        445
      
      
        /*
      
      
         If the value for this key is swapped, load a preview in memory.
      
      
        446
      
      
                     * We use a "swapped" flag to remember if we need to free the
      
      
        447
      
      
                     * value object instead to just increment the ref count anyway
      
      
        448
      
      
                     * in order to avoid copy-on-write of pages if we are forked() 
      
      
        */
      
      
        449
      
      
        if
      
       (!server.vm_enabled || o->storage == REDIS_VM_MEMORY ||
      
        450
      
                       o->storage ==
      
         REDIS_VM_SWAPPING) {
      
      
        451
      
                       swapped = 
      
        0
      
      
        ;
      
      
        452
      
                   } 
      
        else
      
      
         {
      
      
        453
      
                       o =
      
         vmPreviewObject(o);
      
      
        454
      
                       swapped = 
      
        1
      
      
        ;
      
      
        455
      
      
                    }
      
      
        456
      
                   expiretime = getExpire(db,&
      
        key);
      
      
        457
      
      
        458
      
      
        /*
      
      
         Save the key and associated value 
      
      
        */
      
      
        459
      
      
        if
      
       (o->type ==
      
         REDIS_STRING) {
      
      
        460
      
      
        /*
      
      
         Emit a SET command 
      
      
        */
      
      
        461
      
      
        char
      
       cmd[]=
      
        "
      
      
        *3\r\n$3\r\nSET\r\n
      
      
        "
      
      
        ;
      
      
        462
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        463
      
      
        /*
      
      
         Key and value 
      
      
        */
      
      
        464
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        465
      
      
        if
      
       (fwriteBulkObject(fp,o) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        466
      
                   } 
      
        else
      
      
        if
      
       (o->type ==
      
         REDIS_LIST) {
      
      
        467
      
      
        /*
      
      
         Emit the RPUSHes needed to rebuild the list 
      
      
        */
      
      
        468
      
      
        char
      
       cmd[]=
      
        "
      
      
        *3\r\n$5\r\nRPUSH\r\n
      
      
        "
      
      
        ;
      
      
        469
      
      
        if
      
       (o->encoding ==
      
         REDIS_ENCODING_ZIPLIST) {
      
      
        470
      
                           unsigned 
      
        char
      
       *zl = o->
      
        ptr;
      
      
        471
      
                           unsigned 
      
        char
      
       *p = ziplistIndex(zl,
      
        0
      
      
        );
      
      
        472
      
                           unsigned 
      
        char
      
       *
      
        vstr;
      
      
        473
      
                           unsigned 
      
        int
      
      
         vlen;
      
      
        474
      
      
        long
      
      
        long
      
      
         vlong;
      
      
        475
      
      
        476
      
      
        while
      
      (ziplistGet(p,&vstr,&vlen,&
      
        vlong)) {
      
      
        477
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        478
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        479
      
      
        if
      
      
         (vstr) {
      
      
        480
      
      
        if
      
       (fwriteBulkString(fp,(
      
        char
      
      *)vstr,vlen) == 
      
        0
      
      
        )
      
      
        481
      
      
        goto
      
      
         werr;
      
      
        482
      
                               } 
      
        else
      
      
         {
      
      
        483
      
      
        if
      
       (fwriteBulkLongLong(fp,vlong) == 
      
        0
      
      
        )
      
      
        484
      
      
        goto
      
      
         werr;
      
      
        485
      
      
                                }
      
      
        486
      
                               p =
      
         ziplistNext(zl,p);
      
      
        487
      
      
                            }
      
      
        488
      
                       } 
      
        else
      
      
        if
      
       (o->encoding ==
      
         REDIS_ENCODING_LINKEDLIST) {
      
      
        489
      
                           list *list = o->
      
        ptr;
      
      
        490
      
                           listNode *
      
        ln;
      
      
        491
      
      
                            listIter li;
      
      
        492
      
      
        493
      
                           listRewind(list,&
      
        li);
      
      
        494
      
      
        while
      
      ((ln = listNext(&
      
        li))) {
      
      
        495
      
                               robj *eleobj =
      
         listNodeValue(ln);
      
      
        496
      
      
        497
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        498
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        499
      
      
        if
      
       (fwriteBulkObject(fp,eleobj) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        500
      
      
                            }
      
      
        501
      
                       } 
      
        else
      
      
         {
      
      
        502
      
                           redisPanic(
      
        "
      
      
        Unknown list encoding
      
      
        "
      
      
        );
      
      
        503
      
      
                        }
      
      
        504
      
                   } 
      
        else
      
      
        if
      
       (o->type ==
      
         REDIS_SET) {
      
      
        505
      
      
        char
      
       cmd[]=
      
        "
      
      
        *3\r\n$4\r\nSADD\r\n
      
      
        "
      
      
        ;
      
      
        506
      
      
        507
      
      
        /*
      
      
         Emit the SADDs needed to rebuild the set 
      
      
        */
      
      
        508
      
      
        if
      
       (o->encoding ==
      
         REDIS_ENCODING_INTSET) {
      
      
        509
      
      
        int
      
       ii = 
      
        0
      
      
        ;
      
      
        510
      
      
                            int64_t llval;
      
      
        511
      
      
        while
      
      (intsetGet(o->ptr,ii++,&
      
        llval)) {
      
      
        512
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        513
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        514
      
      
        if
      
       (fwriteBulkLongLong(fp,llval) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        515
      
      
                            }
      
      
        516
      
                       } 
      
        else
      
      
        if
      
       (o->encoding ==
      
         REDIS_ENCODING_HT) {
      
      
        517
      
                           dictIterator *di = dictGetIterator(o->
      
        ptr);
      
      
        518
      
                           dictEntry *
      
        de;
      
      
        519
      
      
        while
      
      ((de = dictNext(di)) !=
      
         NULL) {
      
      
        520
      
                               robj *eleobj =
      
         dictGetEntryKey(de);
      
      
        521
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        522
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        523
      
      
        if
      
       (fwriteBulkObject(fp,eleobj) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        524
      
      
                            }
      
      
        525
      
      
                            dictReleaseIterator(di);
      
      
        526
      
                       } 
      
        else
      
      
         {
      
      
        527
      
                           redisPanic(
      
        "
      
      
        Unknown set encoding
      
      
        "
      
      
        );
      
      
        528
      
      
                        }
      
      
        529
      
                   } 
      
        else
      
      
        if
      
       (o->type ==
      
         REDIS_ZSET) {
      
      
        530
      
      
        /*
      
      
         Emit the ZADDs needed to rebuild the sorted set 
      
      
        */
      
      
        531
      
      
        char
      
       cmd[]=
      
        "
      
      
        *4\r\n$4\r\nZADD\r\n
      
      
        "
      
      
        ;
      
      
        532
      
      
        533
      
      
        if
      
       (o->encoding ==
      
         REDIS_ENCODING_ZIPLIST) {
      
      
        534
      
                           unsigned 
      
        char
      
       *zl = o->
      
        ptr;
      
      
        535
      
                           unsigned 
      
        char
      
       *eptr, *
      
        sptr;
      
      
        536
      
                           unsigned 
      
        char
      
       *
      
        vstr;
      
      
        537
      
                           unsigned 
      
        int
      
      
         vlen;
      
      
        538
      
      
        long
      
      
        long
      
      
         vll;
      
      
        539
      
      
        double
      
      
         score;
      
      
        540
      
      
        541
      
                           eptr = ziplistIndex(zl,
      
        0
      
      
        );
      
      
        542
      
                           redisAssert(eptr !=
      
         NULL);
      
      
        543
      
                           sptr =
      
         ziplistNext(zl,eptr);
      
      
        544
      
                           redisAssert(sptr !=
      
         NULL);
      
      
        545
      
      
        546
      
      
        while
      
       (eptr !=
      
         NULL) {
      
      
        547
      
                               redisAssert(ziplistGet(eptr,&vstr,&vlen,&
      
        vll));
      
      
        548
      
                               score =
      
         zzlGetScore(sptr);
      
      
        549
      
      
        550
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        551
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        552
      
      
        if
      
       (fwriteBulkDouble(fp,score) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        553
      
      
        if
      
       (vstr !=
      
         NULL) {
      
      
        554
      
      
        if
      
       (fwriteBulkString(fp,(
      
        char
      
      *)vstr,vlen) == 
      
        0
      
      
        )
      
      
        555
      
      
        goto
      
      
         werr;
      
      
        556
      
                               } 
      
        else
      
      
         {
      
      
        557
      
      
        if
      
       (fwriteBulkLongLong(fp,vll) == 
      
        0
      
      
        )
      
      
        558
      
      
        goto
      
      
         werr;
      
      
        559
      
      
                                }
      
      
        560
      
                               zzlNext(zl,&eptr,&
      
        sptr);
      
      
        561
      
      
                            }
      
      
        562
      
                       } 
      
        else
      
      
        if
      
       (o->encoding ==
      
         REDIS_ENCODING_SKIPLIST) {
      
      
        563
      
                           zset *zs = o->
      
        ptr;
      
      
        564
      
                           dictIterator *di = dictGetIterator(zs->
      
        dict);
      
      
        565
      
                           dictEntry *
      
        de;
      
      
        566
      
      
        567
      
      
        while
      
      ((de = dictNext(di)) !=
      
         NULL) {
      
      
        568
      
                               robj *eleobj =
      
         dictGetEntryKey(de);
      
      
        569
      
      
        double
      
       *score =
      
         dictGetEntryVal(de);
      
      
        570
      
      
        571
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        572
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        573
      
      
        if
      
       (fwriteBulkDouble(fp,*score) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        574
      
      
        if
      
       (fwriteBulkObject(fp,eleobj) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        575
      
      
                            }
      
      
        576
      
      
                            dictReleaseIterator(di);
      
      
        577
      
                       } 
      
        else
      
      
         {
      
      
        578
      
                           redisPanic(
      
        "
      
      
        Unknown sorted set encoding
      
      
        "
      
      
        );
      
      
        579
      
      
                        }
      
      
        580
      
                   } 
      
        else
      
      
        if
      
       (o->type ==
      
         REDIS_HASH) {
      
      
        581
      
      
        char
      
       cmd[]=
      
        "
      
      
        *4\r\n$4\r\nHSET\r\n
      
      
        "
      
      
        ;
      
      
        582
      
      
        583
      
      
        /*
      
      
         Emit the HSETs needed to rebuild the hash 
      
      
        */
      
      
        584
      
      
        if
      
       (o->encoding ==
      
         REDIS_ENCODING_ZIPMAP) {
      
      
        585
      
                           unsigned 
      
        char
      
       *p = zipmapRewind(o->
      
        ptr);
      
      
        586
      
                           unsigned 
      
        char
      
       *field, *
      
        val;
      
      
        587
      
                           unsigned 
      
        int
      
      
         flen, vlen;
      
      
        588
      
      
        589
      
      
        while
      
      ((p = zipmapNext(p,&field,&flen,&val,&vlen)) !=
      
         NULL) {
      
      
        590
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        591
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        592
      
      
        if
      
       (fwriteBulkString(fp,(
      
        char
      
      *)field,flen) == 
      
        0
      
      
        )
      
      
        593
      
      
        goto
      
      
         werr;
      
      
        594
      
      
        if
      
       (fwriteBulkString(fp,(
      
        char
      
      *)val,vlen) == 
      
        0
      
      
        )
      
      
        595
      
      
        goto
      
      
         werr;
      
      
        596
      
      
                            }
      
      
        597
      
                       } 
      
        else
      
      
         {
      
      
        598
      
                           dictIterator *di = dictGetIterator(o->
      
        ptr);
      
      
        599
      
                           dictEntry *
      
        de;
      
      
        600
      
      
        601
      
      
        while
      
      ((de = dictNext(di)) !=
      
         NULL) {
      
      
        602
      
                               robj *field =
      
         dictGetEntryKey(de);
      
      
        603
      
                               robj *val =
      
         dictGetEntryVal(de);
      
      
        604
      
      
        605
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        606
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        607
      
      
        if
      
       (fwriteBulkObject(fp,field) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        608
      
      
        if
      
       (fwriteBulkObject(fp,val) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        609
      
      
                            }
      
      
        610
      
      
                            dictReleaseIterator(di);
      
      
        611
      
      
                        }
      
      
        612
      
                   } 
      
        else
      
      
         {
      
      
        613
      
                       redisPanic(
      
        "
      
      
        Unknown object type
      
      
        "
      
      
        );
      
      
        614
      
      
                    }
      
      
        615
      
      
        /*
      
      
         Save the expire time 
      
      
        */
      
      
        616
      
      
        if
      
       (expiretime != -
      
        1
      
      
        ) {
      
      
        617
      
      
        char
      
       cmd[]=
      
        "
      
      
        *3\r\n$8\r\nEXPIREAT\r\n
      
      
        "
      
      
        ;
      
      
        618
      
      
        /*
      
      
         If this key is already expired skip it 
      
      
        */
      
      
        619
      
      
        if
      
       (expiretime < now) 
      
        continue
      
      
        ;
      
      
        620
      
      
        if
      
       (fwrite(cmd,
      
        sizeof
      
      (cmd)-
      
        1
      
      ,
      
        1
      
      ,fp) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        621
      
      
        if
      
       (fwriteBulkObject(fp,&key) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        622
      
      
        if
      
       (fwriteBulkLongLong(fp,expiretime) == 
      
        0
      
      ) 
      
        goto
      
      
         werr;
      
      
        623
      
      
                    }
      
      
        624
      
      
        if
      
      
         (swapped) decrRefCount(o);
      
      
        625
      
      
                }
      
      
        626
      
      
                dictReleaseIterator(di);
      
      
        627
      
      
            }
      
      
        628
      
      
        629
      
      
        /*
      
      
         Make sure data will not remain on the OS's output buffers 
      
      
        */
      
      
        630
      
      
            fflush(fp);
      
      
        631
      
      
            aof_fsync(fileno(fp));
      
      
        632
      
      
            fclose(fp);
      
      
        633
      
      
        634
      
      
        /*
      
      
         Use RENAME to make sure the DB file is changed atomically only
      
      
        635
      
      
             * if the generate DB file is ok. 
      
      
        */
      
      
        636
      
      
        if
      
       (rename(tmpfile,filename) == -
      
        1
      
      
        ) {
      
      
        637
      
               redisLog(REDIS_WARNING,
      
        "
      
      
        Error moving temp append only file on the final destination: %s
      
      
        "
      
      
        , strerror(errno));
      
      
        638
      
      
                unlink(tmpfile);
      
      
        639
      
      
        return
      
      
         REDIS_ERR;
      
      
        640
      
      
            }
      
      
        641
      
           redisLog(REDIS_NOTICE,
      
        "
      
      
        SYNC append only file rewrite performed
      
      
        "
      
      
        );
      
      
        642
      
      
        return
      
      
         REDIS_OK;
      
      
        643
      
      
        644
      
      
        werr:
      
      
        645
      
      
            fclose(fp);
      
      
        646
      
      
            unlink(tmpfile);
      
      
        647
      
           redisLog(REDIS_WARNING,
      
        "
      
      
        Write error writing append only file on disk: %s
      
      
        "
      
      
        , strerror(errno));
      
      
        648
      
      
        if
      
      
         (di) dictReleaseIterator(di);
      
      
        649
      
      
        return
      
      
         REDIS_ERR;
      
      
        650
      
      
        }
      
      
        651
      
      
        652
      
      
        /*
      
      
         This is how rewriting of the append only file in background works:
      
      
        653
      
      
         *
      
      
        654
      
      
         * 1) The user calls BGREWRITEAOF
      
      
        655
      
      
         * 2) Redis calls this function, that forks():
      
      
        656
      
      
         *    2a) the child rewrite the append only file in a temp file.
      
      
        657
      
      
         *    2b) the parent accumulates differences in server.bgrewritebuf.
      
      
        658
      
      
         * 3) When the child finished '2a' exists.
      
      
        659
      
      
         * 4) The parent will trap the exit code, if it's OK, will append the
      
      
        660
      
      
         *    data accumulated into server.bgrewritebuf into the temp file, and
      
      
        661
      
      
         *    finally will rename(2) the temp file in the actual file name.
      
      
        662
      
      
         *    The the new file is reopened as the new append only file. Profit!
      
      
        663
      
      
        */
      
      
        664
      
      
        int
      
       rewriteAppendOnlyFileBackground(
      
        void
      
      
        ) {
      
      
        665
      
      
            pid_t childpid;
      
      
        666
      
      
        long
      
      
        long
      
      
         start;
      
      
        667
      
      
        668
      
      
        if
      
       (server.bgrewritechildpid != -
      
        1
      
      ) 
      
        return
      
      
         REDIS_ERR;
      
      
        669
      
      
        if
      
      
         (server.vm_enabled) waitEmptyIOJobsQueue();
      
      
        670
      
           start =
      
         ustime();
      
      
        671
      
      
        if
      
       ((childpid = fork()) == 
      
        0
      
      
        ) {
      
      
        672
      
      
        char
      
       tmpfile[
      
        256
      
      
        ];
      
      
        673
      
      
        674
      
      
        /*
      
      
         Child 
      
      
        */
      
      
        675
      
      
        if
      
      
         (server.vm_enabled) vmReopenSwapFile();
      
      
        676
      
      
        if
      
       (server.ipfd > 
      
        0
      
      
        ) close(server.ipfd);
      
      
        677
      
      
        if
      
       (server.sofd > 
      
        0
      
      
        ) close(server.sofd);
      
      
        678
      
               snprintf(tmpfile,
      
        256
      
      ,
      
        "
      
      
        temp-rewriteaof-bg-%d.aof
      
      
        "
      
      , (
      
        int
      
      
        ) getpid());
      
      
        679
      
      
        if
      
       (rewriteAppendOnlyFile(tmpfile) ==
      
         REDIS_OK) {
      
      
        680
      
                   _exit(
      
        0
      
      
        );
      
      
        681
      
               } 
      
        else
      
      
         {
      
      
        682
      
                   _exit(
      
        1
      
      
        );
      
      
        683
      
      
                }
      
      
        684
      
           } 
      
        else
      
      
         {
      
      
        685
      
      
        /*
      
      
         Parent 
      
      
        */
      
      
        686
      
               server.stat_fork_time = ustime()-
      
        start;
      
      
        687
      
      
        if
      
       (childpid == -
      
        1
      
      
        ) {
      
      
        688
      
      
                    redisLog(REDIS_WARNING,
      
      
        689
      
      
        "
      
      
        Can't rewrite append only file in background: fork: %s
      
      
        "
      
      
        ,
      
      
        690
      
      
                        strerror(errno));
      
      
        691
      
      
        return
      
      
         REDIS_ERR;
      
      
        692
      
      
                }
      
      
        693
      
      
                redisLog(REDIS_NOTICE,
      
      
        694
      
      
        "
      
      
        Background append only file rewriting started by pid %d
      
      
        "
      
      
        ,childpid);
      
      
        695
      
               server.aofrewrite_scheduled = 
      
        0
      
      
        ;
      
      
        696
      
               server.bgrewritechildpid =
      
         childpid;
      
      
        697
      
      
                updateDictResizePolicy();
      
      
        698
      
      
        /*
      
      
         We set appendseldb to -1 in order to force the next call to the
      
      
        699
      
      
                 * feedAppendOnlyFile() to issue a SELECT command, so the differences
      
      
        700
      
      
                 * accumulated by the parent into server.bgrewritebuf will start
      
      
        701
      
      
                 * with a SELECT statement and it will be safe to merge. 
      
      
        */
      
      
        702
      
               server.appendseldb = -
      
        1
      
      
        ;
      
      
        703
      
      
        return
      
      
         REDIS_OK;
      
      
        704
      
      
            }
      
      
        705
      
      
        return
      
       REDIS_OK; 
      
        /*
      
      
         unreached 
      
      
        */
      
      
        706
      
      
        }
      
      
        707
      
      
        708
      
      
        void
      
       bgrewriteaofCommand(redisClient *
      
        c) {
      
      
        709
      
      
        if
      
       (server.bgrewritechildpid != -
      
        1
      
      
        ) {
      
      
        710
      
               addReplyError(c,
      
        "
      
      
        Background append only file rewriting already in progress
      
      
        "
      
      
        );
      
      
        711
      
           } 
      
        else
      
      
        if
      
       (server.bgsavechildpid != -
      
        1
      
      
        ) {
      
      
        712
      
               server.aofrewrite_scheduled = 
      
        1
      
      
        ;
      
      
        713
      
               addReplyStatus(c,
      
        "
      
      
        Background append only file rewriting scheduled
      
      
        "
      
      
        );
      
      
        714
      
           } 
      
        else
      
      
        if
      
       (rewriteAppendOnlyFileBackground() ==
      
         REDIS_OK) {
      
      
        715
      
               addReplyStatus(c,
      
        "
      
      
        Background append only file rewriting started
      
      
        "
      
      
        );
      
      
        716
      
           } 
      
        else
      
      
         {
      
      
        717
      
      
                addReply(c,shared.err);
      
      
        718
      
      
            }
      
      
        719
      
      
        }
      
      
        720
      
      
        721
      
      
        void
      
      
         aofRemoveTempFile(pid_t childpid) {
      
      
        722
      
      
        char
      
       tmpfile[
      
        256
      
      
        ];
      
      
        723
      
      
        724
      
           snprintf(tmpfile,
      
        256
      
      ,
      
        "
      
      
        temp-rewriteaof-bg-%d.aof
      
      
        "
      
      , (
      
        int
      
      
        ) childpid);
      
      
        725
      
      
            unlink(tmpfile);
      
      
        726
      
      
        }
      
      
        727
      
      
        728
      
      
        /*
      
      
         Update the server.appendonly_current_size filed explicitly using stat(2)
      
      
        729
      
      
         * to check the size of the file. This is useful after a rewrite or after
      
      
        730
      
      
         * a restart, normally the size is updated just adding the write length
      
      
        731
      
      
         * to the current lenght, that is much faster. 
      
      
        */
      
      
        732
      
      
        void
      
       aofUpdateCurrentSize(
      
        void
      
      
        ) {
      
      
        733
      
      
        struct
      
      
         redis_stat sb;
      
      
        734
      
      
        735
      
      
        if
      
       (redis_fstat(server.appendfd,&sb) == -
      
        1
      
      
        ) {
      
      
        736
      
               redisLog(REDIS_WARNING,
      
        "
      
      
        Unable to check the AOF length: %s
      
      
        "
      
      
        ,
      
      
        737
      
      
                    strerror(errno));
      
      
        738
      
           } 
      
        else
      
      
         {
      
      
        739
      
               server.appendonly_current_size =
      
         sb.st_size;
      
      
        740
      
      
            }
      
      
        741
      
      
        }
      
      
        742
      
      
        743
      
      
        /*
      
      
         A background append only file rewriting (BGREWRITEAOF) terminated its work.
      
      
        744
      
      
         * Handle this. 
      
      
        */
      
      
        745
      
      
        void
      
       backgroundRewriteDoneHandler(
      
        int
      
      
         statloc) {
      
      
        746
      
      
        int
      
       exitcode =
      
         WEXITSTATUS(statloc);
      
      
        747
      
      
        int
      
       bysignal =
      
         WIFSIGNALED(statloc);
      
      
        748
      
      
        749
      
      
        if
      
       (!bysignal && exitcode == 
      
        0
      
      
        ) {
      
      
        750
      
      
        int
      
      
         newfd, oldfd;
      
      
        751
      
      
        int
      
      
         nwritten;
      
      
        752
      
      
        char
      
       tmpfile[
      
        256
      
      
        ];
      
      
        753
      
      
        long
      
      
        long
      
       now =
      
         ustime();
      
      
        754
      
      
        755
      
      
                redisLog(REDIS_NOTICE,
      
      
        756
      
      
        "
      
      
        Background AOF rewrite terminated with success
      
      
        "
      
      
        );
      
      
        757
      
      
        758
      
      
        /*
      
      
         Flush the differences accumulated by the parent to the
      
      
        759
      
      
                 * rewritten AOF. 
      
      
        */
      
      
        760
      
               snprintf(tmpfile,
      
        256
      
      ,
      
        "
      
      
        temp-rewriteaof-bg-%d.aof
      
      
        "
      
      
        ,
      
      
        761
      
                   (
      
        int
      
      
        )server.bgrewritechildpid);
      
      
        762
      
               newfd = open(tmpfile,O_WRONLY|
      
        O_APPEND);
      
      
        763
      
      
        if
      
       (newfd == -
      
        1
      
      
        ) {
      
      
        764
      
      
                    redisLog(REDIS_WARNING,
      
      
        765
      
      
        "
      
      
        Unable to open the temporary AOF produced by the child: %s
      
      
        "
      
      
        , strerror(errno));
      
      
        766
      
      
        goto
      
      
         cleanup;
      
      
        767
      
      
                }
      
      
        768
      
      
        769
      
               nwritten =
      
         write(newfd,server.bgrewritebuf,sdslen(server.bgrewritebuf));
      
      
        770
      
      
        if
      
       (nwritten !=
      
         (signed)sdslen(server.bgrewritebuf)) {
      
      
        771
      
      
        if
      
       (nwritten == -
      
        1
      
      
        ) {
      
      
        772
      
      
                        redisLog(REDIS_WARNING,
      
      
        773
      
      
        "
      
      
        Error trying to flush the parent diff to the rewritten AOF: %s
      
      
        "
      
      
        , strerror(errno));
      
      
        774
      
                   } 
      
        else
      
      
         {
      
      
        775
      
      
                        redisLog(REDIS_WARNING,
      
      
        776
      
      
        "
      
      
        Short write trying to flush the parent diff to the rewritten AOF: %s
      
      
        "
      
      
        , strerror(errno));
      
      
        777
      
      
                    }
      
      
        778
      
      
                    close(newfd);
      
      
        779
      
      
        goto
      
      
         cleanup;
      
      
        780
      
      
                }
      
      
        781
      
      
        782
      
      
                redisLog(REDIS_NOTICE,
      
      
        783
      
      
        "
      
      
        Parent diff successfully flushed to the rewritten AOF (%lu bytes)
      
      
        "
      
      
        , nwritten);
      
      
        784
      
      
        785
      
      
        /*
      
      
         The only remaining thing to do is to rename the temporary file to
      
      
        786
      
      
                 * the configured file and switch the file descriptor used to do AOF
      
      
        787
      
      
                 * writes. We don't want close(2) or rename(2) calls to block the
      
      
        788
      
      
                 * server on old file deletion.
      
      
        789
      
      
                 *
      
      
        790
      
      
                 * There are two possible scenarios:
      
      
        791
      
      
                 *
      
      
        792
      
      
                 * 1) AOF is DISABLED and this was a one time rewrite. The temporary
      
      
        793
      
      
                 * file will be renamed to the configured file. When this file already
      
      
        794
      
      
                 * exists, it will be unlinked, which may block the server.
      
      
        795
      
      
                 *
      
      
        796
      
      
                 * 2) AOF is ENABLED and the rewritten AOF will immediately start
      
      
        797
      
      
                 * receiving writes. After the temporary file is renamed to the
      
      
        798
      
      
                 * configured file, the original AOF file descriptor will be closed.
      
      
        799
      
      
                 * Since this will be the last reference to that file, closing it
      
      
        800
      
      
                 * causes the underlying file to be unlinked, which may block the
      
      
        801
      
      
                 * server.
      
      
        802
      
      
                 *
      
      
        803
      
      
                 * To mitigate the blocking effect of the unlink operation (either
      
      
        804
      
      
                 * caused by rename(2) in scenario 1, or by close(2) in scenario 2), we
      
      
        805
      
      
                 * use a background thread to take care of this. First, we
      
      
        806
      
      
                 * make scenario 1 identical to scenario 2 by opening the target file
      
      
        807
      
      
                 * when it exists. The unlink operation after the rename(2) will then
      
      
        808
      
      
                 * be executed upon calling close(2) for its descriptor. Everything to
      
      
        809
      
      
                 * guarantee atomicity for this switch has already happened by then, so
      
      
        810
      
      
                 * we don't care what the outcome or duration of that close operation
      
      
        811
      
      
                 * is, as long as the file descriptor is released again. 
      
      
        */
      
      
        812
      
      
        if
      
       (server.appendfd == -
      
        1
      
      
        ) {
      
      
        813
      
      
        /*
      
      
         AOF disabled 
      
      
        */
      
      
        814
      
      
        815
      
      
        /*
      
      
         Don't care if this fails: oldfd will be -1 and we handle that.
      
      
        816
      
      
                      * One notable case of -1 return is if the old file does
      
      
        817
      
      
                      * not exist. 
      
      
        */
      
      
        818
      
                    oldfd = open(server.appendfilename,O_RDONLY|
      
        O_NONBLOCK);
      
      
        819
      
               } 
      
        else
      
      
         {
      
      
        820
      
      
        /*
      
      
         AOF enabled 
      
      
        */
      
      
        821
      
                   oldfd = -
      
        1
      
      ; 
      
        /*
      
      
         We'll set this to the current AOF filedes later. 
      
      
        */
      
      
        822
      
      
                }
      
      
        823
      
      
        824
      
      
        /*
      
      
         Rename the temporary file. This will not unlink the target file if
      
      
        825
      
      
                 * it exists, because we reference it with "oldfd". 
      
      
        */
      
      
        826
      
      
        if
      
       (rename(tmpfile,server.appendfilename) == -
      
        1
      
      
        ) {
      
      
        827
      
      
                    redisLog(REDIS_WARNING,
      
      
        828
      
      
        "
      
      
        Error trying to rename the temporary AOF: %s
      
      
        "
      
      
        , strerror(errno));
      
      
        829
      
      
                    close(newfd);
      
      
        830
      
      
        if
      
       (oldfd != -
      
        1
      
      
        ) close(oldfd);
      
      
        831
      
      
        goto
      
      
         cleanup;
      
      
        832
      
      
                }
      
      
        833
      
      
        834
      
      
        if
      
       (server.appendfd == -
      
        1
      
      
        ) {
      
      
        835
      
      
        /*
      
      
         AOF disabled, we don't need to set the AOF file descriptor
      
      
        836
      
      
                     * to this new file, so we can close it. 
      
      
        */
      
      
        837
      
      
                    close(newfd);
      
      
        838
      
               } 
      
        else
      
      
         {
      
      
        839
      
      
        /*
      
      
         AOF enabled, replace the old fd with the new one. 
      
      
        */
      
      
        840
      
                   oldfd =
      
         server.appendfd;
      
      
        841
      
                   server.appendfd =
      
         newfd;
      
      
        842
      
      
        if
      
       (server.appendfsync ==
      
         APPENDFSYNC_ALWAYS)
      
      
        843
      
      
                        aof_fsync(newfd);
      
      
        844
      
      
        else
      
      
        if
      
       (server.appendfsync ==
      
         APPENDFSYNC_EVERYSEC)
      
      
        845
      
      
                        aof_background_fsync(newfd);
      
      
        846
      
                   server.appendseldb = -
      
        1
      
      ; 
      
        /*
      
      
         Make sure SELECT is re-issued 
      
      
        */
      
      
        847
      
      
                    aofUpdateCurrentSize();
      
      
        848
      
                   server.auto_aofrewrite_base_size =
      
         server.appendonly_current_size;
      
      
        849
      
      
        850
      
      
        /*
      
      
         Clear regular AOF buffer since its contents was just written to
      
      
        851
      
      
                     * the new AOF from the background rewrite buffer. 
      
      
        */
      
      
        852
      
      
                    sdsfree(server.aofbuf);
      
      
        853
      
                   server.aofbuf =
      
         sdsempty();
      
      
        854
      
      
                }
      
      
        855
      
      
        856
      
               redisLog(REDIS_NOTICE, 
      
        "
      
      
        Background AOF rewrite successful
      
      
        "
      
      
        );
      
      
        857
      
      
        858
      
      
        /*
      
      
         Asynchronously close the overwritten AOF. 
      
      
        */
      
      
        859
      
      
        if
      
       (oldfd != -
      
        1
      
      ) bioCreateBackgroundJob(REDIS_BIO_CLOSE_FILE,(
      
        void
      
      *)(
      
        long
      
      
        )oldfd,NULL,NULL);
      
      
        860
      
      
        861
      
      
                redisLog(REDIS_VERBOSE,
      
      
        862
      
      
        "
      
      
        Background AOF rewrite signal handler took %lldus
      
      
        "
      
      , ustime()-
      
        now);
      
      
        863
      
           } 
      
        else
      
      
        if
      
       (!bysignal && exitcode != 
      
        0
      
      
        ) {
      
      
        864
      
      
                redisLog(REDIS_WARNING,
      
      
        865
      
      
        "
      
      
        Background AOF rewrite terminated with error
      
      
        "
      
      
        );
      
      
        866
      
           } 
      
        else
      
      
         {
      
      
        867
      
      
                redisLog(REDIS_WARNING,
      
      
        868
      
      
        "
      
      
        Background AOF rewrite terminated by signal %d
      
      
        "
      
      
        ,
      
      
        869
      
      
                    WTERMSIG(statloc));
      
      
        870
      
      
            }
      
      
        871
      
      
        872
      
      
        cleanup:
      
      
        873
      
      
            sdsfree(server.bgrewritebuf);
      
      
        874
      
           server.bgrewritebuf =
      
         sdsempty();
      
      
        875
      
      
            aofRemoveTempFile(server.bgrewritechildpid);
      
      
        876
      
           server.bgrewritechildpid = -
      
        1
      
      
        ;
      
      
        877
      
       }
    

redis源碼筆記 - aof


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美成 人版在线观看 | 成人a毛片视频免费看 | 亚洲午夜精品久久久久久 | 国产美女mm131爽爽爽免费 | 国产一级片久久 | 俺也去射 | 久草热久草视频 | 色天天色综合 | 欧美成人亚洲高清在线观看 | 黄色大视频 | 青青草免费视频在线播放 | 国产极品粉嫩馒头一线天av | 黄色av免费在线播放 | 西野翔中文字幕 | 欧洲亚洲精品久久久久 | 国产成人av一区二区 | 国内精品久久人妻无码不卡 | 亚洲最大天堂无码精品区 | 国产成人av一区二区三区在线 | 激情文学亚洲 | 亚洲国产综合一区 | 看国产毛片 | 欧美在线资源 | 免费黄色大片网站 | 免费女人高潮流视频在线观看 | 久久入| 神马午夜福利不卡片在线 | sm调教视频在线观看 | 日韩欧美国产中文字幕 | 亚洲午夜无码久久久久小说 | 亚洲成av人片在线观看一区二区三区 | 久久久久久久香蕉国产30分钟 | 国产大学生援交视频在线观看 | 精品高潮呻吟99av无码视频 | 美女胸又黄又水 | 久久女同互慰一区二区三区 | 精品夜色国产国偷在线 | 久久免费播放视频 | 青青操在线观看视频 | 久久澡 | 少妇精油按摩av无码中字 | 中文字字幕| 日本中文视频 | 日本在线不卡一区二区 | avhd101高清在线迷片麻豆 | 青草青在线 | 免费三级网站 | 自拍欧美亚洲 | 天天干天天射天天爽 | 免费观看毛片 | 另类小说亚洲 | 色中文字幕 | 国产精品久久久久久av | 欧美成人精品网站 | 1000部拍拍拍18勿入免费视频下载 | 亚洲小少妇| 看片国产| 国产精品主播一区二区三区 | 先锋人妻无码av电影 | 国产99久久亚洲综合精品西瓜tv | 国产成人免费高潮激情视频 | 日本天天日噜噜噜 | 精品中文av | 国产丝袜一区二区 | 国产a级精品毛片 | 欧美黑人体内she精在线观看 | 国内老熟妇对白xxxxhd | 精品免费一区二区三区在 | 丁香五月亚洲综合深深爱 | 四虎影库久免费视频 | 韩国一级淫一片免费放 | 99久久精品无码专区 | 成人黄视频 | 污网站www | 超碰97国产 | 97久久天天综合色天天综合色hd | 亚洲精品成人网久久久久久 | 老司机精品成人无码av | av怡红院 | 免费观看黄网站在线播放 | 9l视频自拍九色9l视频 | 1024精品久久久久久久久 | 久久性色av亚洲电影 | 九九热精品在线播放 | 亚洲一级视频在线 | 国产午夜a理论毛片 | 国产 日韩 欧美 自拍 | 亚洲欧洲自拍 | xx视频 在线观看 | 浴室人妻的情欲hd三级 | 初尝黑人巨炮波多野结衣183 | 狠狠热在线视频免费 | 人人爽人人澡人人人妻 | 人妻耻辱中文字幕在线bd | 伊人久久久久久久久久久久久 | 亚洲性久久9久久爽 | 免费黄色毛片 | 欧美成人精品高清在线播放 | 尤物综合网 | 性推油按摩av无码专区 | 青青青国产成人久久111网站 | 六月婷婷综合 | 国产婷婷色一区二区三区四区 | 艳妇荡乳豪妇荡乳av精东 | 日韩中文一区二区三区 | 国产精品高潮久久av | 国产成人a在线观看网站站 久久久中文字幕日本无吗 欧美xxxx做受欧美人妖 | 在线亚洲精品国产二区图片欧美 | 十八禁午夜福利免费网站 | 国产九九在线观看 | 亚洲第一无码精品一区 | 小13箩利洗澡无码免费视频 | 少妇视频网站 | 亚洲欧美国产另类va | 亚洲国产成人精品女人久久久野战 | 欧美一区二区三区黄色 | 九九九久久久 | 少妇做爰免费视频了 | 2019最新中文字幕在线观看 | 久久制服诱惑 | 久久99精品久久久久久秒播蜜臀 | 亚洲欧美日本在线观看 | 久久不见久久见免费影院小说 | 日韩精品视频在线观看一区二区 | 宅男噜噜噜 | 娇小萝被两个黑人用半米长 | 极品老师腿张开粉嫩小泬 | 美日韩黄色大片 | 第四色男人天堂 | 夜夜高潮次次欢爽av女 | 免费国产a国产片高清 | 色眯眯影视 | 熟女俱乐部五十路二区av | 国产永久免费观看的黄网站 | 亚洲第一无码av无码专区 | 99精品久久久久久久久久综合 | 一级a爰片久久毛片 | 国产私拍大尺度在线视频 | 日产精品卡2卡三卡乱码网址 | 精品人人人人 | 少妇xxxxx性开放中出 | 热思思99re久久精品国产首页 | 国内久久久 | 欧美 日本 国产 | 在线观看日本国产成人免费 | 丁香花中文字幕mv在线免费观看 | 国产偷v | 午夜在线视频免费观看 | 又色又污又黄又爽又吃胸 | 午夜精品久久久久久久99婷婷 | 亚洲成成熟女人专区 | 久久三级网 | 国产亚洲日韩妖曝欧美 | 2020久热爱精品视频在线观看 | 亚洲第一区欧美国产不卡综合 | 日韩高清在线观看不卡一区二区 | 日本特黄aaaaaa大片 | 国产色a在线观看 | 在线人视频观看免费 | 欧美在线一二三 | 欧美va日韩| 国产人成在线 | 成人一区二区在线 | 国产精品爆乳奶水无码视频 | 麻豆精品导航 | 影音先锋5566中文源资源 | 亚洲综合精品伊人久久 | 成人精品天堂一区二区三区 | 久久久99久久久国产自输拍 | 国产高清日韩 | 亚a洲v中文字幕2023 | 中国xxx农村性视频 国产98在线 | 欧美 | 在线看片国产日韩欧美亚洲 | 欧美成人片在线观看 | 亚洲婷婷丁香 | 亚洲一区二区日韩 | 日产成品片a直接观看 | 丰满少妇高潮惨叫正在播放 | 黑人巨大精品欧美一区二区一视频 | 大rb狠狠地给你这y荡的视频 | 国产女人和拘做受视频免费 | 女女同性av片在线播放免费 | 天天噜噜天天爽爽天天噜噜 | 99久久精品国产一区二区 | 成人高清视频免费观看 | 欧美人人爱 | 动漫美女羞羞视频网站中文 | 久久久97丨国产人妻熟女 | 日韩欧美国产高清91 | 在线精品91| 精品亚洲韩国一区二区三区 | 粗壮挺进人妻水蜜桃成熟漫画 | 午夜片在线 | 乱子伦国产对白在线播放 | 国产亚洲产品影市在线产品 | 免费99精品国产自在现线 | 天天摸天天干 | 亚洲日韩看片无码超清 | 看日本毛片 | 国产精品久久久久久熟妇吹潮软件 | 日韩欧美一二区 | 4438欧美 | 久热热热 | 色综合综合网 | 91国偷自产一区二区开放时间 | 一级做受大片免费视频 | 国产一级视频 | 精品国产国语对白久久免费 | 伊伊综合网 | 久久久国产精品一区二区18禁 | 亚洲国产美国国产综合一区 | 人妻丰满熟妇av无码区免 | 成人国产一区二区精品小说 | 国产成人久久精品77777综合 | 欧美精品免费一区二区三区 | 成人播放视频 | 免费午夜爽爽爽www视频十八禁 | 丝袜一区二区三区在线播放 | 中文字幕无码不卡在线 | 成人午夜免费观看 | 毛片大全免费 | 亚洲我不卡 | 成人一二区 | 一级一毛片a级毛片 | 国产精品太长太粗太大视频 | 女人爽到高潮免费看视频 | 亚洲品质自拍视频 | 无码人妻一区二区三区免费视频 | 自拍 高清 日韩 欧美 另类 | 午夜亚洲国产理论片二级港台二级 | 男女男精品视频站 | 野花社区www高清视频 | 欧美国产日韩视频 | 成人欧美一区二区三区在线观看 | 国产一本一道久久香蕉 | 高清不卡亚洲日韩av在线 | 亚洲日韩精品欧美一区二区 | 男人的机机桶女人的机机 | aa在线视频| 国产真实偷乱视频 | 日韩人妻无码免费视频一区二区三区 | 最新的国产成人精品2021 | 亚洲色欲色欲www | 国产色一区 | 久久国产色av| 四虎4545www精品视频 | 亚洲色大成网站www永久网站 | 亚洲国产精品久久人人爱潘金莲 | 国产视频线观看永久免费 | 少妇夜夜爽夜夜春夜夜高潮 | 99国产精品久久99久久久 | 国产尤物av尤物在线看 | 亚洲人成人网站在线观看 | 国产又a又黄又潮娇喘视频 精品伊人久久 | 精品日产卡一卡二卡麻豆 | 日韩欧美久久久 | 亚洲高清乱码午夜电影网 | 麻豆网神马久久人鬼片 | 毛片直接看 | 欧美性猛交xxxx三人 | 国产精品自拍网站 | 免费看成人午夜福利专区 | 精品国产欧美一区二区三区成人 | 久久精品a一国产成人免费网站 | 天天看天天做 | 97视频在线播放 | www亚洲精品少妇裸乳一区二区 | 肉大榛一进一出免费视频 | 欧美中文在线观看 | 久久九精品 | 亚洲五月丁香综合视频 | 午夜在线观看视频网站 | 亚洲精品国产品国语在线 | 99麻豆久久久国产精品免费 | 久久r精品国产99久久6不卡 | 女人被狂躁c到高潮喷水电影 | 欧美一级免费 | 欧美成a人片在线观看久 | 亚洲欧美福利 | 国产精品久久久久久亚洲伦 | 永久免费无码av网站在线观看 | 韩国三级中文字幕hd | 日韩3p| 国产又粗又黄又猛 | 最新777第四色米奇影视 | 四虎4hu永久免费深夜福利 | 亚洲色图国产 | 草草福利视频 | 欧美88av| 精品一区二区三区四区五区六区 | 欧美69影院| 他揉捏她两乳不停呻吟在线播放 | 天天射天天色天天干 | 四虎永久网站 | 我不卡午夜 | 国产成人8x人在线视频软件 | 午夜免费福利 | 欧美另类变人与禽xxxxx | 久久久久人妻一区二区三区 | jjzz日本女人| а√天堂资源中文最新版地址 | 日韩一级特黄毛片 | 久久久精品2020免费观看 | 人妻插b视频一区二区三区 天天爱天天爽 | 日韩精品99久久久久中文字幕 | 欧美社区在线 | 内射囯产旡码丰满少妇 | 国产福利视频一区二区 | 国产日产成人免费视频在线观看 | 国产精品一区二区在线观看网站 | 超碰不卡 | av香港经典三级级 在线 | 亚洲福利影视 | 亚洲女人天堂成人av在线 | av一级二级 | 天天躁夜夜躁狠狠躁婷婷 | 久久久国产精品亚洲一区 | 亚洲伊人五月丁香激情 | 日本成本人片免费网站 | 久久无码高潮喷水抽搐 | 西野翔中文字幕 | 国产九九九九九九九a片 | 国产日韩制服丝袜第一页 | 国产乱人伦偷精品视频aaa | 国产黄在线观看免费观看软件 | 午夜免费福利视频 | 丁香婷婷综合激情五月色 | 日韩视频一区二区三区在线播放免费观看 | 亚洲国产成人精品青青草原 | 99中文字幕在线观看 | 国内自产少妇自拍区免费 | 丰满少妇毛片97级无遮挡 | 国产亚洲香蕉线播放αv38 | 国产精品成人av在线观看 | 精品一区二区三区影院在线午夜 | 久久亚洲精品成人无码网站蜜桃 | 一夲道无码人妻精品一区二区 | tai9国产一区二区 | 久久久久久久久久久久久女国产乱 | 在线视频免费无码专区 | 国内精品久久精品中文久久婷婷 | 日本少妇自慰免费完整版 | 日日操狠狠干 | 人妻少妇精品系列 | 国模国产精品嫩模大尺度视频 | 男人撕开奶罩揉吮奶头视频 | 久久天天躁狠狠躁夜夜2020老熟妇 | 狠狠色丁香婷婷久久综合不卡 | 国产成人无码午夜福利在线直播 | 中文字幕 日韩有码 | 91在线porny国产在线看 | aaaaa成人| 最新中文乱码字字幕在线 | 无码熟妇人妻av在线网站 | 男人手伸进内衣里揉我胸到爽 | 99热九九这里只有精品10 | 精品免费国产一区二区三区四区 | 亚洲性激情| 欧洲丰满大乳人妻无码欧美 | 99热精品国产一区二区在线观看 | 国产美女精品自在线拍免费下载出 | 黄色一级片视频播放 | 国产视频你懂得 | 亚洲剧情av| 美女露出粉嫩小奶头在视频18禁 | 手机看片福利永久 | 台湾午夜a级理论片在线播放 | 亚洲va韩国va欧美va | 亚洲爆乳成av人在线蜜芽 | 午夜在线不卡 | 国产精品久久久久久久久绿色 | 国产九九免费 | 一级全黄毛片 | 亚洲网站在线播放 | 上原亚衣av一区二区三区 | 亚洲精品无码一区二区三区久久久 | 久久精品岛国av一区二区无码 | 欧美亚韩 | 最近中文字幕免费mv在线视频 | 中文字幕欧美色图 | 中字幕久久久人妻熟女 | 999毛片 | 精品久久久久久无码中文字幕漫画 | 一级片免费在线播放 | 无码区a∨视频体验区30秒 | 好吊妞国产欧美日韩免费观看 | 91亚洲视频 | 久久精品a一国产成人免费网站 | 国产一区二区三区成人欧美日韩在线观看 | 欧美伦理第一页 | 中文字幕免费不卡二区 | 日本少妇性生活 | 军人全身脱精光自慰 | 69热在线观看 | 一级精品视频 | 男女爽爽午夜18禁影院免费 | 青青草视频在线观看 | 国产日韩一区二区三免费高清 | 亚洲不卡av一区二区无码不卡 | 国产精品ww | 草草浮力地址线路①屁屁影院 | 成人三级在线 | 99久久婷婷国产综合精品电影 | 成人无码看片在线观看免费 | 国产精品911| 丰满白嫩人妻中出无码 | 一区二区精品区 | 97久久日一线二线三线 | 天天射一射 | 中文资源在线天堂库8 | 麻豆安全免费网址入口 | 影音先锋二区 | 最新2020无码中文字幕在线视频 | 在线精品视频一区二区 | 亚洲国产另类久久久精品小说 | 午夜中文无码无删减 | 欧美自拍嘿咻内射在线观看 | 久久亚洲日韩精品一区二区三区 | 蜜桃少妇av久久久久久久 | 日本欧美在线观看视频 | 91ts国产人妖系列 | 老司机成人永久免费视频 | 国产尻逼视频 | 久久中文字幕无码一区二区 | 天堂网8| 欧美激情黑人极品hd | 日韩av片无码一区二区三区 | 伊在人亚洲香蕉精品区麻豆 | 久久中文字幕人妻熟女少妇 | 国产午夜影视大全免费观看 | 本道综合精品 | 色爱欧美 | 婷婷欧美综合 | 天天综合网亚在线 | 一进一出一爽又粗又大 | 在线观看中文字幕亚洲 | 成人乱人乱一区二区三区 | 极品少妇一区二区三区四区 | www久草| 国产成人无码国产亚洲 | 新版本天堂资源在线中文8的特点 | 久操成人| 国产福利姬喷水福利在线观看 | 欧美精品不卡 | 国产精品国产三级国产an | 国内视频一区二区三区 | 精品国产凹凸成av人导航 | 夜夜操狠狠操 | 国产情侣激情 | 国产亚洲久久久久久久 | 久久精品国产欧美日韩99热 | 外国av网站| 日韩av在线中文 | av视| 欧美激欧美啪啪片免费看 | 国产影片中文字幕 | 无遮挡又爽又刺激的视频 | 中文国产成人精品久久不卡 | 欧美www在线观看 | 亚洲欧美日韩v在线播放 | 精品无码国产不卡在线观看 | 久久九九有精品国产23百花影院 | 影音先锋中文字幕在线 | 欧美性色黄 | 久久久久欧美国产高潮 | 黄网免费在线观看 | 爱情岛论坛亚洲品质永久入口 | 国产亚洲成av人片在线观看桃 | 国产日韩一区在线 | 国产69精品久久久久男男系列 | 中文字幕亚洲一区二区三区五十路 | 综合久久中文字幕 | 欧美交换配乱吟粗大免费看 | 国产黄网站 | 亚洲欧美日韩中文播放 | 免费视频久久久 | 老司机福利影院在线观看 | 福利一区在线观看 | 婷婷伊人五月尤物 | 自拍偷拍你懂的 | 国产精品久久久久一区二区 | 欧美肥富婆丰满xxxxx | 九色伊人 | 多毛小伙内射老太婆 | 侵犯の奶水授乳羞羞游戏 | 午夜无码无遮挡在线视频 | 男女免费隐私网站 | 欧美日韩亚洲综合 | 好爽好舒服要高潮了视频 | 亚洲天堂日本 | 亚洲一卡二卡在线 | 国产99视频精品免费视频6 | 又硬又水多又坚少妇18p | 久久综合色_综合色88 | www.91mv| 中文字幕在线观看不卡 | 久草手机在线播放 | av在线免费网址 | 91国产丝袜脚调教 | 黄页网址大全免费观看 | 性色欲情网站iwww九文堂 | 色网址在线观看 | 人妻三级日本香港三级极97 | 中文毛片| 女人一区二区 | 国产乱子伦农村叉叉叉 | 男男gv白嫩小受gv在线播放 | 国产做爰全过程免费视频 | 色视频欧美一区二区三区 | 午夜精品久久久久久久四虎美女版 | 日本入室强伦姧bd在线观看 | 91桃色国产在线播放 | 最新亚洲中文av在线不卡 | 欧美蜜桃网| 2018高清日本一道国产-在 | 美女末成年视频黄是免费网址 | 欧美一区免费 | 天天人人精品 | 美梦视频大全在线观看 | 久热中文字幕在线精品观 | 99久久精品国产欧美主题曲 | 国产精品自产拍 | 一中文字幕日产乱码va | 日本午夜精品 | 强制中出し~大桥未久在线a | 2019年国产精品看视频 | 337p日本大胆欧美人术艺术69 | 热舞福利精品大尺度视频 | 天天操夜夜躁 | 97碰碰视频| a极黄色片 | 日本视频色 | 中文日韩在线视频 | 色偷偷亚洲第一成人综合网址 | 成人黄色小视频 | 国产色婷婷精品综合在线播放 | 口述很黄很乱小说 | 精品国产aⅴ麻豆 | 丰满的少妇xxxxx青青青 | 日韩精品一区二区av在线 | 亚洲自拍另类 | 色就是色av| 国产高清精品软件丝瓜软件 | 国产一性一爱一乱一交 | 国产99视频精品免费视看6 | 国产在线小视频 | 在线精品自偷自拍无码中文 | 成人福利院 | 精品久久久久久国产潘金莲 | 国产sp调教打屁股视频网站 | 91亚瑟视频 | 五月婷婷激情网 | 香蕉成人伊视频在线观看 | 一边做一边喷17p亚洲乱妇50p | 亚洲精品国产精品99久久 | 男女一进一出超猛烈的视频不遮挡在线观看 | 97夜色 | 国产在线精品一区二区不卡顿 | 国产精品亚洲а∨无码播放麻豆 | 无码专区视频精品老司机 | 男人午夜视频 | 无码h黄肉3d动漫在线观看 | 国产精品白嫩极品美女视频 | 一级黄色片在线观看 | 四虎影视在线免费观看 | 国产成人综合亚洲精品 | 91精品国产综合久久精品图片 | 漂亮人妻洗澡被公强 日日躁 | 国产成人精品一区二区三区四区 | 天堂网在线www资源 亚洲 日本 欧美 中文字幕 | 日本真人做爰免费的视频 | 久久av喷潮久久av高清 | 日韩丝袜欧美人妻制服 | 18禁黄无遮挡网站 | 国产成人a人亚洲精v品无码 | 亚洲国产精品久久久久婷婷图片 | www.九九精品 | 欧美另类bbbxxxxx另类 | 国产亚洲精品综合一区 | 中文av一区| 黄色片免费 | 天天玩天天干天天操 | 人妻无码av中文系列久 | 中国精品少妇hd | 婷婷六月久久综合丁香 | 熟女乱牛牛视频在线观看 | 日本久久久www成人免费毛片丨 | 西西人体www44rt大胆高清 | 日本中文字幕一区二区有码在线 | www.蜜臀.com | 动漫精品无码h在线观看 | 久久精品www人人做人人爽 | 六月丁香激情综合 | 中出在线 | 欧美精品欧美精品系列 | 国产喷水吹潮视频www | 黄色av黄色| 精品永久免费 | 欧美三级一区 | 夜夜爽爽爽久久久久久魔女 | 黑人上司好猛我好爽中文字幕 | 伊人网在线看 | 亚洲高清免费 | 国产高清不卡一区 | 中文字幕中文乱码www | 欧美三区在线观看 | 黄色大片中文字幕 | 18岁日韩内射颜射午夜久久成人 | 搜一级黄色片 | 天海翼激烈高潮到腰振不止 | 岛国av在线不卡 | 欧洲熟妇色xxxx欧美老妇软件 | 亚洲欧洲另类精品久久综合 | 日韩丝袜av | 一区 亚洲 | 国产精品久久久久久久福利 | 欧美系列在线观看 | 国产怡红院在线观看 | 久久久久久91 | 久久久精品国产免大香伊 | 国产对白受不了了中文对白 | 999热精品视频 | 国产 制服丝袜 动漫在线 | 精东av在线| 精品日韩在线播放 | 国自产精品手机在线观看视频 | 欧美成人激情 | 中文字幕精品在线观看 | 欧美日韩一二三 | 日本不卡一区二区三区在线观看 | 色窝窝无码一区二区三区色欲 | 人妻少妇heyzo无码专区 | 在线天堂视频 | 久久久国产亚洲精品 | 一道久久爱综合久久爱 | 国产老熟妇精品观看 | 久久老子午夜精品无码 | 先锋资源久久 | 日本丰满少妇xxxx | 国产超爽人人爽人人做人人爽 | 日韩精品黄色片 | 91久久国产精品 | 韩日毛片 | 女人另类牲交zozozo | 免费a黄色 | 欧美做爰孕妇群xxx 四虎黄色影库 | 日本视频在线观看免费 | 被公侵犯中文字幕在线观看 | 日本xxxx高清色视频 | 日本美女a级片 | 欧洲色网站 | 午夜性做爰免费看 | 狠狠噜天天噜日日噜视频麻豆 | 日本国产视频 | 网址在线观看 | 欧美成人午夜在线观看视频 | 日本中文视频 | 国产男女猛视频在线观看 | 丰满少妇作爱视频免费观看 | 图片区 视频区 小说区 | 91高清在线观看 | 亚洲а∨天堂男人无码 | 久草毛片 | 亚洲日韩色在线影院性色 | 久久久久久久久久久影院 | 免费va人成视频网站全 | 无码免费中文字幕视频 | 亚洲情a成黄在线观看动漫尤物 | 国产精品久久久久久婷婷天堂 | 台湾黄三级高清在线观看播放 | 久久亚洲天堂网 | 男人和女人高潮做爰视频 | 亚洲天堂一区二区三区四区 | 羞羞影院午夜男女爽爽在线观看 | 亚洲精品一区二区三区香 | 国产熟女亚洲精品麻豆 | 一边捏奶一边高潮视频 | av片日韩 | 青青操免费在线视频 | 四虎影视88aa久久人妻 | 精品九九视频 | 欧美不卡一卡二卡三卡 | 日韩一区在线视频 | 亚洲va欧美va天堂v国产综合 | 欧美日韩亚洲中文字幕一区二区三区 | 成人亚洲视频 | 亚洲欧美自偷自拍 | 久久久久久欧美精品色一二三四 | 亚洲国产精品久久人人爱 | 四虎最新在线观看地址 | 久久免费国产视频 | 中文字幕_第2页_高清免费在线 | 日日夜夜免费视频 | 亚洲精品国产av现线 | 一区二区三区三区在线 | xxxx69黄大片| 东北少妇不带套对白 | 偷拍成人一区亚洲欧美 | 又色又爽又黄还免费毛片96下载 | 超碰操操操| 欧美日韩黄色大片 | 60岁欧美乱子伦xxxx | 久久国产精品二区 | 五月香婷婷 | 伊人久久青青草 | 国产精品色综合精品福利在线 | 亚洲天堂8 | 无码日本精品xxxxxxxxx | 亚洲国产精品久久久久秋霞影院 | 秋霞无码久久久精品 | 一级黄色片一级黄色片 | 韩国专区福利一区二区 | 大肉大捧一进一出视频 | 天天操天天摸天天爽 | 久久狠狠色噜噜狠狠狠狠97 | 亚洲综合视频在线观看 | 欧美一区二区三区在线看 | 九九热精品在线观看 | 亚洲精品岛国片在线观看 | 女人被躁到高潮免费视频软件 | 成人亚洲免费 | 无码超乳爆乳中文字幕 | 在线99视频 | 国产69囗曝吞精在线视频 | 国产乡下妇女做爰 | 亚洲成av人片在线观看 | 根深蒂固在线 | 日本亚洲国产一区二区三区 | 午夜小影院 | 亚洲综合天堂婷婷五月 | 美女狠狠操 | 日本丰满熟妇videos | 成人美女黄网站色大色费全看在线观看 | 久久成人在线视频 | 国产精品va在线观看丝瓜影院 | 四虎tv | 欧美一二三四五区 | 一本大道大臿蕉视频无码 | 日女人免费视频 | 蜜臀av在线一区 | 国语精品一区二区三区 | 亚洲国产不卡视频 | 涩涩网站在线看 | 国产精品成人精品久久久 | 国产精品视频1区 | 欧美牲交a欧牲交aⅴ久久 | 欧美性大战xxxxx久久久 | 在线观看免费视频污网站 | 久久无码人妻热线精品 | 久久久亚洲精品成人 | 亚洲人成人一区二区三区 | 午夜中出 | 中文字幕亚洲在线观看 | 亚洲人成在线播放无码 | 狠狠色婷婷久久一区二区 | 中国美女乱淫免费看视频 | 国产精品欧美成人片 | 人人妻人人爽人人添夜夜欢视频 | 日韩午夜理论免费tv影院 | 雯雯在工地被灌满精在线视频播放 | 成人宗合网 | 无遮挡边吃奶边做刺激视频 | 中文字幕人妻伦伦精品 | 日本在线a一区视频高清视频 | 日日干天天摸 | 日本免费三片在线观看 | 国产av亚洲精品久久久久久 | 青青青久草 | 中文无码字幕一区到五区免费 | 丝袜在线视频 | 天堂素人搭讪 | 亚洲国产精品久久一线不卡 | 黄色一区二区三区视频 | 无码乱码天天更新 | 免费日韩一区二区 | 国产视频你懂得 | 变态另类久久变态变态 | 成年人免费公开视频 | 日产精品久久久久久久 | 国产一区二区黄 | 美艳麻麻诱子乱小说 | 久久国产亚洲精品超碰热 | 夜趣导航av国产 | 日射精情感性色视频 | 狠狠操狠狠插 | 国内少妇自拍 | 婷婷精品在线 | 国产精品久久久久潘金莲 | 色欲国产精品一区成人精品 | 国产精品9| 2021av| 中文字幕天天躁日日躁狠狠躁免费 | 国产精品伦一区二区三级视频永妇 | 亚洲欧美综合精品成人网站 | 久久综合久色欧美综合狠狠 | 天天操天天草 | 最新国产av无码专区亚洲 | 中国在线观看片免费 | av免费观看网址 | 国语对白刺激在线视频国产网红 | а天堂中文最新版在线 | 日本xxxx高清色视频 | 成人激情视频网站 | 国产精品毛片毛片毛片 | 涩涩免费 | 久久精品国产久精国产一老狼 | 成年人网站在线 | 老牛影视免费一区二区 | 日本一本到道免费一区二区 | 亚洲天堂影音先锋 | 男女性杂交内射女bbwxz | 狠狠色狠狠综合久久 | 九九热视频这里只有精品 | 国产精品一区二区在线观看99 | 小早川怜子xxxxaⅴ在线 | 亚洲国产精品久久久久网站 | 囯产精品一区二区三区线 | 欧美性折磨bdsm激情另类视频 | 亚洲精品久久久久久久蜜桃臀 | 久久99国产精品成人 | 天天色天天爽 | 7777欧美成是人在线观看 | 久久久高潮| 激情综合婷婷丁香五月蜜桃 | 中文字幕欧美人妻精品一区 | 亚洲国产一区二区在线观看 | 先锋影音人妻啪啪va资源网站 | 国产精品三级av | 国产精品欧美大片 | 成人在线免费播放 | 欧美一级色 | 亚洲中文久久精品无码1 | 能看av的网址 | 国产日韩在线观看视频 | 精品视频九九 | 影音先锋在线资源无码 | 成·人免费午夜无码视频蜜芽 | 荫蒂被男人添的好舒服爽免费视频 | 好紧好湿好爽免费视频 | 日本网站免费在线观看 | 国模无码大尺度一区二区三区 | 人人妻人人做人人爽 | 亚洲精品自拍偷拍视频 | 97视频在线免费播放 | 亚洲伊人一区 | 国产大片黄在线观看私人影院 | 亚洲精品综合一区二区三 | 青青草原成人网 | 国产精品久久久久久在线观看 | 91激情在线 | 亚洲精品一区av在线播放 | 色爱综合激情五月激情 | 婷婷综合久久中文字幕蜜桃三电影 | 国产女同疯狂激烈互摸 | 国产精品人妻99一区二区三区 | 男女无套免费视频网站动漫 | 国产人妇三级视频在线观看 | 欧美日韩亚洲一区 | 无码毛片aaa在线 | 日韩av二区 | 国产精一品亚洲二区在线播放 | 日韩毛片无码永久免费看 | 潮喷无码正在播放 | 伊人黄色软件 | 亚洲人成影院在线观看 | 人人添人人澡人人澡人人人爽 | 91日韩国产 | 女人被狂躁c到高潮视频 | 国产成人久久精品麻豆二区 | 精品久久久久久国产 | 久青草无码视频在线播放 | 在线看网站 | 91精品国产综合久久久密闭 | 一本色道综合久久欧美日韩精品 | 人妻熟妇乱又伦精品hd | 无码ol丝袜高跟秘书在线观看 | 免费午夜无码视频在线观看 | 综合欧美丁香五月激情 | 成人羞羞国产 | 久久综合久久鬼色 | 国产精品久久久久久久影院 | 5x社区性生免费播放5x | 欧美一及片 | 日韩欧美一区二区三区免费观看 | 日韩人妻无码一区二区三区久久99 | 九九视频精品在线观看 | 亚洲精品国产欧美在线观看 | 麻豆第一区mv免费观看网站 | 99国精品午夜福利视频不卡 | 亚洲国产成人精品av在线 | 亚洲天堂网在线视频 | 97精品伊人久久大香线蕉app | 日本一区二区免费在线 | 在线观看国产欧美 | 欧美激情18p | 欧美群交射精内射颜射潮喷 | 国产播放隔着超薄丝袜进入 | 久久91精品国产91久久跳 | 正在播放国产大学生情侣 | 国产精品沙发午睡系列990531 | 亚洲精品久久久久久动漫 | 色婷婷99 | 男女啪啪做爰高潮www成人福利 | 日本在线视频免费观看 | 亚洲日本乱码中文在线电影 | 国产福利合集 | 日韩第八页 | 性色一区二区三区 | 亚洲国产精品成人久久久麻豆 | 国产丝袜足j在线视频播放 久久鬼色 | 成人免费视频播放 | 欧美在线视频精品 | 全免费又大粗又黄又爽少妇片 | 秋霞人妻无码中文字幕 | 91p0rny九色| 中文字幕女教师julia视频 | 在线不卡av片免费观看 | 免费看黄在线看 | 欧美伊香蕉久久综合网99 | 久久66热人妻偷产精品9 | 99久久无码私人网站 | 欧美精品激情 | 成熟女人毛片www免费版在线 | 夜夜草天天草 | 日本一区二区在线免费 | 52综合精品国产二区无码 | 亚洲色成人网站www永久下载 | 国产成人精品日本亚洲专区 | 高清视频一区二区 | 99久久亚洲精品无码毛片 | 精品国产乱码久久久久久牛牛 | 在线 国产 欧美 亚洲 天堂 | 欧美三级视频在线观看 | 国产精品白丝喷水娇喘视频 | 丰满熟女人妻一区二区三 | 波多在线播放 | 欧美精品一区视频 | 亚洲人成人网色www 殴美一级特黄aaaaaa | 色噜噜狠狠一区二区三区 | 天天躁躁水汪汪人碰人 | 色88久久久久高潮综合影院 | 伊人av超碰久久久麻豆 | 天天看天天摸 | 天天射网站 | 国产玖玖爱精品视频 | 夜夜高潮久久做爽久久 | 91免费版观看 | 天天爱天天做久久狠狠做 | 99热成人精品热久久6网站 | 无码人妻精品一区二区三区免费 | 五月婷婷导航 | 97蜜桃网| 国产白丝精品爽爽久久蜜臀 | 日本在线视频www | 色爽 av | 久久精品成人一区二区三区蜜臀 | 女性无套免费网站在线看 | 伊人久久精品在热线热 | 人妻三级日本香港三级极97 | 国产精品刺激 | 日韩一区二区视频在线 | 青青99| 亚洲国产成人久久综合人 | 色噜噜狠狠综曰曰曰 | 高h纯肉大尺度调教play | 野花香社区在线观看 | 手机国产丰满乱子伦免费视频 | 爽好多水快深点91 | 亚洲国产成人精品无码区99 | 男女啪啪永久免费观看网站 | 91久久国产综合久久91精品网站 | 最近更新中文字幕免费大全 | 国产无遮挡又黄又爽在线视频 | 国产精品久久久久久久久快鸭 | 日韩www.| 欧美丰满熟妇hdxx | 国产又大又硬又爽免费视频试 | 欧美自拍亚洲综合丝袜 | 全部av―极品视觉盛宴 | 日韩精品一区二区av在线观看 | 精品人妻无码视频中文字幕一区二区三区 | 扒开双腿猛进入喷水高潮视频 | 99亚洲精品 | 亚洲网站免费观看 | 午夜国产在线视频 | 92成人午夜福利一区二区 | 99久久99精品久久久久久 | 国产一级一区二区 | 日本美女黄网站 | 在线播放五十路熟妇 | 国产剧情无码播放在线看 | 国产模特嫩模私拍视频在线 | 狠狠色综合一区二区 | 欧美国产日韩在线观看成人 | 免费观看又色又爽又湿的视频软件 | 亚洲精品av中文字幕在线在线 | 国产成人av性色在线影院 | 日韩精品中文字幕在线播放 | 国产精品无卡毛片视频 | 成人涩涩日本国产一区 | 天天谢天天干 | 用舌头去添高潮无码av在线观看 | 中文字幕丝袜第1页 | 你懂的亚洲 | 国产精品毛片完整版视频 | 国产男女乱婬真视频免费 | 青青青视频免费观看 | 免费精品国偷自产在线2020 | 国产日韩欧美二区 | 一本久道视频无线视频 | 新久草| av夜夜操 | 999精品免费视频 | 国产精品最新 | 久久精品入口九色 | 天天爽天天爽天天爽 | 在线观看网址你懂的 | 天堂久久网 | 亚洲人成网站在线在线观看 | 在线观看91视频 | 日韩精品理论 | 91aaa在线观看 | 亚洲高潮av | 欧美黄色录相 | 337p日本欧洲亚洲大胆精品555588 | 亚洲 欧美 激情 另类 校园 | 国产精品v欧美精品v日韩精品 | 三叶草欧洲码在线 | 国产无遮挡色视频免费观看性色 | www.4hu95.com四虎| 视频在线观看你懂的 | 91视频com | 好吊操视频这里只有精品 | 国产精品呻吟久久 | 一本色道久久综合亚洲精品酒店 | 4虎av | 国产在线码观看清码视频 | 精品国产99久久久久久麻豆 | 欧美三级视频在线观看 | 午夜福利视频极品国产83 | 学生妹无套内射正在播放 | 成人国产精品日本在线 | 中文字幕2021 | 麻豆精品国产熟妇aⅴ一区 少妇被多人c夜夜爽爽av | 久草在线播放视频 | 欧美白人最猛性xxxxx | 免费国产午夜视频在线 | 国内精品卡一卡二卡三 | 亚洲色在线无码国产精品 | 精品国产18久久久久久怡红 | 欧美看片 | 久草在线资源福利 | 国产日韩视频在线 | 人妻熟妇乱又伦精品hd | 中国videosex高潮喷水 | 精品国产av一区二区三区 | 天天躁恨躁夜躁2020优势对比 | 在线a亚洲老鸭窝天堂 | 国产爽爽久久影院潘金莲 | 日本丰满少妇 | 一本无码久本草在线中文字幕dvd | 亚洲国产成人久久精品大牛影视 | 亚洲中文综合网五月俺也去 | 日韩第一视频 | 久久丫免费无码一区二区 | 99热这里都是精品 | av夜夜操| 欧美91视频 | 国产精品视频一区二区免费不卡 | 日本欧美一区二区三区在线播放 | 狂野欧美性猛xxxx乱大交 | 亚洲精品无码国产 | 欧美一区二区三区四区五区六区 | 再深点灬舒服灬太大了网站 | 国产亚洲日韩欧美另类丝瓜app | 国产一性一交一伦一 | 亚洲国产精品线路久久 | 亚洲国产拍拍拍拍久久久 | 亚洲噜噜狠狠网址蜜桃av9 | 亚洲成av人的天堂在线观看 | 日韩系列无码一中文字暮 | 久久国产精品久久久久久 | 美女张开腿黄网站免费 | 午夜乱码爽中文一区二区 | 欧美另类v | 日韩精品专区在线影院重磅 | 欧美性做爰猛烈叫床潮 | 狠狠色丁香婷婷综合久久图片 | 成人无码嫩草影院 | 精品成人免费国产片 | 免费无码毛片一区二三区 | 丰满熟女人妻一区二区三 | 黑色丝袜吻戏亲胸摸腿 | 亚洲综合在线一区二区三区 | 男人扒开添女人下部免费视频 | 春色av | 久久久久久免费免费精品软件 | 日本一区二区三区精品福利视频 | 欧美老妇人与禽交 | 天天综合网久久综合免费人成 | 97视频在线免费 | 久久网中文字幕 | 成人a毛片免费观看网站 | 欧美mv日韩mv国产网站app | 日韩欧美国产成人 | 亚洲国产精品一区二区三区 | 亚洲国产精品久久久久秋霞影院 | 免费无码又爽又刺激成人 | 天天天天天干 | 亚洲a网站 | 五月丁香啪啪激情综合色九色 | 欧美精品久久久久久久免费 | 五月婷婷天 | 国产www视频 | 又大又爽又黄无码a片 | 国产又黄又猛又粗又爽的a片动漫 | 男人的天堂在线a无码 | aa国产视频 | 亚洲国产精品尤物yw在线 | 久久99精品久久久大学生 | 欧美猛少妇色xxxxx猛叫 | xxxx性视频 | 成人激情毛片 | 爆乳熟妇一区二区三区 | 一区二区在线免费观看 | 成人性生交大片免费看9999 | 亚欧成人精品一区二区 | 在线永久看片免费的视频 | 免费的av网站在线观看国产精品 | 男人让女人爽的免费视频 | 狠狠色丁香九九婷婷综合 | 亚洲黄色自拍 | 精品人妻一区二区三区四区 | 最新亚洲伦理中文字幕 | 国产在线观看免费视频今夜 | 欧美激情视频一区二区三区免费 | 日韩欧美国产网站 | av无码免费岛国动作片片段欣赏网 | 国产小视频在线免费观看 | 黄色二级毛片 | 亚洲人成网站18禁止久久影院 | 精品人妻久久久久久888 | 久草视频手机在线观看 | 欧美精| 亚洲福利天堂 | 色婷婷综合久久久久中文字幕 | av不卡在线免费观看 | 国产永久在线观看 | 成av人电影在线观看 | 2018天天躁夜夜躁狠狠躁 | 极品尤物被啪到呻吟喷水 | 男女免费观看在线爽爽爽视频 | 狠狠色噜噜狠狠狠狠777米奇 | 成人免费ā片在线观看 | 亚洲精品久久久久久久观看 | 天天撸天天射 | 欧美人与性动交α欧美精品图片 | 久草在线资源网 | 成人无码α片在线观看不卡 | 国产网站在线免费观看 | 国产爆乳无码av在线播放 | 午夜福利国产成人a∨在线观看 | 成人免费激情视频 | 免费看黄色一级视频 | 狂野av人人澡人人添 | 播放少妇的奶头出奶水的毛片 | 欧美精品久久久久久久免费 | 日本高清中文 | 女性女同性aⅴ免费观看 | 黄色综合 | 久久特黄视频 | 国产精品人妖ts系列视频 | 色爽黄1000部免费软件下载 | 国产一级久久 | 在线天堂www中文 | 天海翼一区二区三区高清在线 | 小蜜被两老头吸奶头在线观看 | 欧美a级网站 | 91久久精品一区二区 | 亚洲精品一卡2卡三卡4卡乱码天 | 日韩av激情在线观看 | 人善交video另类hd国产片 | 免费看欧美一级特黄a大片 一区二区三区美女 | 国产精品宾馆在线精品酒店 | 色欲天天网站欧美成人福利网 | 色爽女 | 国产色噜噜 | 亚洲区小说区激情区图片区 | 97人洗澡人人澡人人爽人人模 | 四川操bbb| 亚洲国产成在人网站天堂 | 免费超级淫片日本高清视频 | 国产精品多久久久久久情趣酒店 | 久久精品人人做人人爽播放器 | 亚洲午夜久久久精品一区二区三区 | 国产日韩欧美一区二区在线观看 | 1区2区3区在线观看 天天夜天天干 | 97亚色 | 国产精品久久久久久久久久三级 | 亚洲国产精品无码中文lv | 国产婷 | 精品无码乱码av | 免费女上男下xx00xx00视频 | 可以免费观看的av网站 | 日本真人边吃奶边做爽电影 | 亚洲精品一区二区三区新线路 | 中文字幕人成人乱码亚洲电影 | 天天色综合合 | 成人av无码国产在线观看 | 无码专区国产精品视频 | 天天做日日做天天做 | 国产精品高潮呻吟久久久 | 又粗又猛又黄又爽无遮挡 | 国产美女爽到尿喷出来视频 | 久久免费视频精品在线 | 国产精品久久久久蜜芽 | 国产精品久久777777 | 亚洲精品国精品久久99热 | 日韩视频免费大全中文字幕 | 无码专区久久综合久中文字幕 | 丰满少妇叫我吸她大乳 | 五十路熟女丰满大屁股 | 亚洲国产欧美日韩图片在线人成 | 99国产亚洲精品美女久久久久 | 一区二区三区国产视频 | 国产精品嫩草影院ccm | 亚洲va天堂| 性妲己一级淫片免费放 | 最新69国产成人精品视频 | 91视频大全 | 久久国内精品一区二区三区 | 国产成人av不卡免费观看 | 无遮挡aaaaa大片免费看 | 69综合精品国产二区无码 | 国产激情在线看 | 亚洲乱亚洲乱妇在线观看 | 在线播放十八禁视频无遮挡 | 少妇一级二级三级 | 毛茸茸性xxxx毛茸茸毛茸茸 | 免费看污又色又爽又黄 | 你懂的在线视频网站 | 国产精品自拍片 | 久久99精品久久久久久蜜芽 | 欧美a级黄| 成在人av抽搐高潮喷水流白浆 | 毛片一二三区 | 色人阁视频 | 国产精品入口网站7777 | 少妇午夜性影院私人影院软件 | 亚洲精品久久久久久偷窥 | 久久久免费视频网站 | 久久国产视频播放 | 精品一区二区三人妻视频 | 精品国产乱码久久久久禁果 | 日本大香伊一区二区三区 | 国产乱xxxxx97国语对白 | 华人在线亚洲欧美精品 | 亚洲每日更新6666666 | 中文字幕一卡二卡三卡 | 无码精品人妻一区二区三区影院 | 亚洲国产精品成人 | 国模丽丽啪啪一区二区 | 老汉色老汉首页av亚洲 | 精品国产天堂综合一区在线 | 中文字幕免费在线 | 一区二区三区视频在线 | 午夜精品福利在线观看 | 老司机午夜福利试看体验区 | 国产午夜av秒播在线观看 | 99久久国产宗和精品1上映 | 亚洲午夜影视 | 亚洲—本道 在线无码 | 欧洲s码亚洲m码精品一区 | 夜夜骑天天干 | 日韩1区 | 成人精品福利 | 亚洲电影在线观看 | 亚洲人成影院在线无码按摩店 | 亚洲国产cao | 国产午夜精品一二区理论影院 | 日本3级网站 | 粗大猛烈进出高潮视频大全 | 久久99精品久久久久久吃药 | 国产精品久久久久av福利动漫 | 久久人妻公开中文字幕 | 久久99精品国产.久久久久 | 欧美一区在线观看视频 | 国产日产精品_国产精品毛片 | 欧美日韩精品在线观看视频 | 国产天堂亚洲国产碰碰 | 久久久久久久综合 | 91视频小说 | 欧美精品一区二 | 免费观看的毛片 | 青青青手机在线视频 | 欧美另类色 | 偷拍男女树林做爰 | 国产无套喷白浆在线播放 | 亚洲精品一区在线 | 中文日产幕无线码6区收藏 茄子成人看a∨片免费软件 | 欧美亚洲一区 | 亚洲一区二区在线 | 99无码人妻一区二区三区免费 | 日日夜夜精品视频免费观看 | 国厂毛片 | 人人妻人人澡人人爽久久av | 国内av片 | 欧美日韓性视頻在線 | 亚洲首页一区任你躁xxxxx | av片在线观看永久免费 | 色窝窝色蝌蚪在线视频 | 一级午夜| 国产乱色 | 热re91久久精品国99热蜜臀 | 国产日产欧产精品品不卡 | 免费看小12萝裸体视频国产 | 成人未满十八无毛片 | 中文字幕人妻高清乱码 | 午夜影视在线观看 | 国产日产精品一区二区三区 | 91在线导航 | 在线a亚洲v天堂网2019无码 | 亚洲偷偷 | 一级一级特黄女人精品毛片 | 国产视频二区三区 | 欧美日韩免费一区二区 | 国产粗话肉麻对白 | 久草热视频在线观看 | 亚洲天堂免费视频 | 国产精品国产三级国产普通话 | 三级特黄60分钟在线播放 | 美女激情影院 | 人妻激情偷乱一区二区三区 | 青青草无码伊人久久 | 欧美三级韩国三级日本三斤 | 亚洲 校园 春色.自拍 | 青青成线在人线免费啪 | 亚洲综合无码久久精品综合 | 人人操天天射 | 国产免费一卡二卡三卡四卡 | 嫩呦国产一区二区三区av | 超碰人人超 | 亚洲无人区码一码二码三码的含义 | 狠狠色狠狠人格综合 | 国产福利小视频 | 91视频中文| 99精品欧美一区二区三区 | 亚洲中文字幕久久精品无码2021 | 中文字幕无码中文字幕有码a | 久久人人爽人人人人爽av | 亚洲精品毛片一区二区 | 69天堂人成无码麻豆免费视频 | 日本特黄特刺激一级猛片 | 在线观看涩涩视频 | 亚洲乱码日产精品一二三 | 狠狠色噜噜狠狠狠狠999米奇 | 毛片观看网站 | 日本婷婷 | 成人在线精品视频 | 日韩人妻熟女毛片在线看 | 欧美老肥熟妇多毛xxxxx | 丰满少妇小早川怜子影片了 | 国产欧美二区综合 | 强伦姧人妻三上悠亚中文字幕 | 不卡中文| 一本一道中文字幕无码东京热 | 91精品国产欧美一区二区成人 | 国产精品日日摸夜夜摸av | 伊人网视频在线 | 日韩欧美一区在线观看 | 欧美寡妇性猛交xxx片 | 国产成人精品男人的天堂网站 | 漂亮人妻偷人精品视频 | 日韩色视频在线观看 | 中文字幕精品亚洲无线码一区应用 | 人人九九 | 伊人狼人av| 亚洲bbw| 亚洲一二三四在线 | 婷婷国产v国产偷v亚洲高清 | 午夜精品久久久久久不卡欧美一级 | 国产资源网 | 亚洲视频精选 | 久久无码中文字幕免费影院蜜桃 | 亚洲区小说区图片区qvod | 日韩欧美精品有码在线 | 欧美孕妇乳喷奶水在线观看 | 亚洲黄色小说在线观看 | 国产色 | 伊人3| 夫妻啪啪呻吟x一88av | 欧美日韩在线观看精品 | 国产又粗又猛又爽视频上高潮69 | www天堂网 | av无码久久久久不卡网站蜜桃 | 日美韩av | 毛片a久久99亚洲欧美毛片 | 亚洲综合精品 | 国产成人综合久久精品 | 91av高清| 97熟女毛毛多熟妇人妻aⅴ | 亚洲人成电影在线观看天堂色 | 亚洲欧美日韩精品久久亚洲区 | 国产精品va在线观看老妇女 | 精品人妻伦一二三区久久aaa片 | 亚洲成色777777在线观看影院 | 欧美夜夜操| 日韩欧美高清视频在线观看 | 久久国内精品自在自线 | 日日摸夜夜夜夜夜添 | 国产成人毛片在线视频软件 | 暖暖的在线观看日本社区 | 亚洲熟妇无码久久精品 | www.youjizz.com在线 | 91精品国产欧美一区二区 | 一本色道a无线码一区v | 丰满少妇大力进入av | 男男啪啪激烈高潮cc漫画免费 | 日韩福利 | 夜夜操国产 | 日本在线视频二区 | 成人免费无码视频在线网站 | 国产手机精品a | 国产成人无码av在线影院 | 日本aⅴ写真网站 | 狠狠干亚洲色图 | 日韩中文字幕视频在线观看 | 国外国内精品国产成人国产三级 | 日一日射一射 | 免费看黄片毛片 | 狠狠色狠狠色综合 | 中国69av | 国产精品久久久久久久白丝制服 | 国语自产免费精品视频在 | 欧美成人免费一区二区三区 | 日韩欧美中字 | 在线视+欧美+亚洲日本 | 亚洲欧洲久久av | 亚洲乱码中文论理电影 | 国产精品原创 | 国产美女自卫慰水免费视频 | 最新午夜综合福利视频 | 性男女做视频观看网站 | 国产999精品久久久久久 | 四虎影库永久在线 | 亚洲国产成人久久综合人 | 国产精品国产成人国产三级 | 日日干日日插 | 国色天香天天影院综合网 | 国产灌醉| 国产女大学生av | 好吊操视频这里只有精品 | 无码中文字幕在线播放2 | 久久婷婷五月综合色国产免费观看 | 婷婷五月日韩av永久免费 | 亚洲一区成人在线 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 亚洲日韩欧美一区久久久久我 | 上司人妻互换hd无码 | 色视频久久 | 久久精品视频日本 | 一级二级三级毛片 | 成人综合网址 | 亚洲另类无码一区二区三区 | 无码精品尤物一区二区三区 | 国产亚洲精品久久久一区 | 欧美中文字幕一区 | 亚洲愉拍一区二区三区 | 亚洲精品无码一二区a片 | 天堂色网 | 精品国偷自产国产一区 | 国产亚洲精品久久久玫瑰 | 久国产精品人妻aⅴ | 伊人大香线蕉精品在线播放 | 亚洲欧美人高清精品a∨ | 超碰2022 | 免费精品无码av片在线观看 | 99国产精品久久久久久久成人 | 国产一区二区三区四区hd | 成人蜜桃av| 国产寡妇色xxⅹ交肉视频 | 久草最新在线 | 亚洲一区网 | 免费日韩| 欧美激情插插插 | 国产精品久久久久久麻豆一区 | 91久久精品久久国产性色也91 | 美女综合网 | 97久久超碰精品视觉盛宴 | 久久精品国产大片免费观看 | 亚洲精品成人区在线观看 | 亚洲熟妇中文字幕曰产无码 | 久草在线视频福利 | 久久在精品线影院 | 日本在线免费观看视频 | 色婷婷5月天| 无码制服丝袜人妻在线视频精品 | 午夜精品视频在线 | 性夜影院爽黄e爽 | 久久精品国产99国产精2020丨 | 人妻av综合天堂一区 | 亚洲乱 亚洲乱 亚洲 | 在线观看免费黄色av | 亚洲欧美日韩国产综合点击进入 | 热久久中文字幕 | 偷拍久久久 | 成本人无码h无码动漫在线网站 | 草逼免费看 | 天天做夜夜爱爱爱 | 性做久久久久久久久 | 日韩乱码视频 | 99爱精品视频在线观看免费 | 理论片午午伦夜理片影院99 | 无码夜色一区二区三区 | 欧美精品三级 | 国产视频一 | 五月婷婷色播 | 精品久久www | 国产丝袜视频一区二区三区 | 午夜无码伦费影视在线观看果冻 | 欧美一区二区三区影院 | 东京热加勒比无码少妇 | 久久99精品久久久久久动态图 | 鲁鲁夜夜天天综合视频 | 国产亚洲va在线电影 | 国产高清乱理伦片中文小说 | 肥臀熟女一区二区三区 | 国产女同互磨高潮在线观看 | 精品国产青草久久久久福利 | 亚洲a∨国产av综合av下载 | 老熟妇仑乱一区二区视頻 | 国外av无码精品国产精品 | 欧美成人精品高清在线观看 | jizzjizz中国精品麻豆 | 午夜亚洲影院在线观看 | 第一福利av | 精品国产精品国产偷麻豆 | 国产精品一区二区人人爽79欧美 | av人摸人人人澡人人超碰 | 婷婷丁香九月 | 亚洲国产精品成人精品无码区蜜臀 | 亚洲高清影院 | 精品国产一区二区三区久久狼 | 中文亚洲欧美日韩无线码 | 免费看成人aa片无码视频吃奶 | 天天艹 | 国产又色又爽又黄的网站免费 | 波多野吉衣之潜藏淫欲 | 91人人爽人人爽人人精88v | 一级少妇淫高潮免费全看 | 久久夜色av| 黄色毛片小视频 | 亚洲色成人四虎在线观看 | 五月丁香国产在线视频 | 九一精品视频一区二区三区 | 久久综合色_综合色88 | 可以免费看的av毛片 | 日韩不卡在线观看 | 热久久视久久精品18 | 婷婷久久综合九色综合色多多蜜臀 | 日韩啪啪片 | 欧美视频第一页 | 韩日视频一区 | 国产成人无码午夜视频在线观看 | jzzijzzij亚洲日本少妇熟 | 免费福利视频网 | 亚洲成a人v欧美综合天堂 | 人人添人人澡人人澡人人人爽 | 丰满肥臀噗嗤啊x99av | 97久久久久 | 青草一区二区 | 男女性网站 | 午夜精品久久久久久久喷水 | 制服肉丝袜亚洲中文字幕 | 午夜视频在线观看免费视频 | 在线免费一级片 | 老头把我添高潮了a片 | 亚洲砖区区免费 | 日本美女a级片 | av小说天堂网 | av网站在线免费 | av影音先锋| 日韩在线国产精品 | 欧美成人三级视频 | 国产亚洲精品国产福app | 肮脏的交易在线观看 | 婷婷激情五月 | 综合网在线观看 | 草草女人院 | 免费无遮挡在线观看网站 | 久久国产精品老女人 | 一个人免费永久观看 | 亚洲国产一区二区a毛片日本 | 亚洲日韩国产精品无码av | 狠狠色丁香五月综合缴情婷婷五月 | 国产aⅴ夜夜欢一区二区三区 | 麻豆果冻传媒2021精品传媒一区 | 国产亚洲精品久久久999蜜臀 | 男女性高爱潮免费网站 | 国产在线线精品宅男网址 | 成人深夜小视频 | 国产剧情av麻豆香蕉精品 | 超碰在线中文字幕 | 色婷婷导航| 久艹视频在线观看 | 日本三级一区 | 少妇粉嫩小泬白浆流出 | 亚洲中文字幕精品久久久久久动漫 | 窝窝午夜福利无码电影 | 亚洲精品一区久久久久一品av | 日日噜噜噜夜夜爽爽狠狠视频97 | 张筱雨337p大尺度欧美 | 日本人成在线播放免费课体台 | 天天激情站 | 欧洲黑大粗无码免费 | 天堂精品一区 | 宅男午夜影院 | 又色又刺激| 国产一伦一伦一伦 | 狠狠色狠狠色综合系列 | 久久97精品 | 悠悠av| 人人人插人人费 | 99re6在线 | 波多中文字幕 | 一级黄色片在线观看 | 女被男啪到哭的视频网站 | 香蕉免费一区二区三区在 | 午夜小影院 | 亚洲成人第一 | 国产20页| 黄色小视频网 | 国产最新精品视频 | 欧美日韩一区二区免费视频 | 少妇厨房愉情理伦片视频在线观看 | 亚洲精品成人福利网站app | 亚洲v欧美| 国产伦精品一区二区三区视频金莲 | 99久久综合狠狠综合久久止 | 日本伊人色综合网 | 国产色 | 色婷婷综合久久中文字幕雪峰 | www.久热| 欧美精品一二三四区 | 国产成熟人妻换╳╳╳╳ | 浴室人妻的情欲hd三级 | 亚洲熟女乱综合一区二区在线 | 欧美jizzhd精品欧美巨大 | 久久精品免费视频观看 | 97国产超碰一区二区三区 | 青青欧美| 精品久久香蕉国产线看观看亚洲 | 啪啪小视频网站 | 福利在线不卡 | 久草在线视频免费播放 | 少妇搡bbbb搡bbb搡打电话 | 中文字幕亚洲无线码一区女同 | 国产精品18久久久久久久 | 国产精品一区二区久久久久 | 国产欧美成人xxx视频 | 精品国产乱码久久久久久口爆网站 | 五月综合在线观看 | 久久视频免费观看 | 91av一区二区三区 | 中文字幕人成无码免费视频 | 国产天堂视频在线观看 | av中文字幕免费 | 毛片一级片 | 亚洲日韩乱码一区二区三区四区 | 欧美黑人粗大猛烈18p | 国产乱妇乱子视频在播放 | 99精品丰满人妻无码a片 | 伊大人久久香线焦宗合一75大 | 亚洲成av人片在线观看www | 国产精品毛片无遮挡高清 | 亚洲va欧美va人人爽 | 国产午夜精品一区二区三区老 | 亚洲欧美综合区 | y111111少妇蜜桃视频 | y111111少妇蜜桃视频 | 国产污片在线观看 | 亚洲一区二区不卡视频 | av高清在线免费观看 | 人妻无码久久一区二区三区免费 | 精品久久久久久狼人社区 | 亚洲欧美国产va在线播放 | 中文字幕精品无码一区二区三区 | 曰批免费视频播放免费 | 日本少妇做爰大尺裸体网站 | 日日夜夜狠狠爱 | 久久99精品九九九久久婷婷 | 无码喷潮a片无码高潮 | 91成人精品国产刺激国语对白 | 肥臀浪妇太爽了快点再快点 | 国产欧美日韩va另类 | 成人国产一区二区三区精品麻豆 | 制服丝袜国产av无码 | 日韩1| 天天免费看片 | 国产亚洲一区精品 | 日韩午夜一区二区三区 | 日产中文字幕在线观看 | 中文字幕卡二和卡三的视频 | 国产精品久久久久久久影院 | 风间由美交换夫中文字幕 | 被拉到野外强要好爽黑人 | 国产免费看又黄又粗又硬 | 国产精品99久久久久的智能播放 | 国模冰莲自慰肥美胞极品人体图 | 九九九伊在人线综合2023 | 伊人资源网 | 成人无码精品免费视频在线观看 | 激情偷乱人伦小说视频在线 | 亚洲精品动漫免费二区 | 国产精品爆乳在线播放 | 91久久偷偷做嫩草影院 | 男人把女人桶到爽免费应用 | 欧美肥胖老太vidio在线视频 | 精品久久久久久18免费网站 | 国产乱人激情h在线观看 | 超碰97人人做人人爱综合 | 中文字幕乱码在线蜜乳欧美字幕 | 久色在线观看 | 337p日本欧洲亚洲大胆精蜜臀 | 亚洲国产精品综合久久网络 | 亚洲精品久久久日韩美女图片 | 国产情侣作爱视频免费观看 | 国产精品久久久久久久密密 | 久久精品成人亚洲另类欧美 | 欧美天堂网站 | 亚洲乱论视频 | 在线 | 国产精品星空传媒丿 | 熟妇人妻va精品中文字幕 | 一区二区在线免费观看视频 | 国产精品无码久久av不卡 | 亚洲精品久久久久一区二区三区 | 日本www一道久久久免费 | 免费无码国产完整版av | 97熟女毛毛多熟妇人妻aⅴ | 午夜高清在线无码 | 北条麻妃一区二区三区中文字幕 | 鲁鲁久久| 久久精品夜夜夜夜夜久久 | 国产乱国产乱 | 国产做无码视频在线观看浪潮 | 国产浮力第一页草草影院 | 国产99久久亚洲综合精品 | 国内精品久久久久精免费 | 免费观看又色又爽又黄的 | 91国视频 | 九七超碰 | 99久久久无码国产精品动漫 | xxx人与物交性 | 国产国产人免费视频成 | 偷拍农村老熟妇xxxxx7视频 | 天天影视网天天综合色在线播放 | 黑人强伦姧人妻日韩那庞大的 | 激情亚洲图片激情亚洲小说 | 国产精品国语对白露脸在线播放 | 中文字幕无码免费久久9一区9 | 国产成人欧美日本在线观看 | 久一区二区三区 | 亚洲国产制服丝袜先锋 | 美女免费视频网站 | 巨乳人妻久久+av中文字幕 | 成人影片麻豆国产影片免费观看 | 红杏aⅴ成人免费视频 | 92中文资源在线 | 久久99精品久久久久久秒播 | 成 人 黄 色 视频播放16 | 国产黄a三级三级三级 | 综合无码成人aⅴ视频免费 人人澡人人爽人人 | av黄色在线免费观看 | 超碰人人做| 国产综合久久99久久 | 娇妻玩4p被三个男人伺候电影 | 91在线高清观看 | 波多野结衣小视频 | 中文字幕资源在线观看 | 18禁h免费动漫无码网站 | 老外一级黄色片 | 日日摸夜夜添夜夜添一区二区 | 黄色一级视频网 | 国产无遮挡裸体免费视频 | 亚洲a∨日韩av高清在线观看 | 大奶子网站 | av无码av不卡一区二区 | 精品人伦一区二区三区蜜桃视频 | 亚洲第一av无码专区 | 无码国产精品一区二区免费式影视 | 榴草视频 | 国产成人久久精品流白浆 | 成片免费观看视频999 | 中文字幕第5页 | 美女一区| 粗壮挺进邻居人妻无码 | 国产欧美激情一区二区 | 国产成人一二三 | 性色欲网站人妻丰满中文久久不卡 | 男女性潮高清免费网站 | 少妇av导航 | 高清熟女国产一区二区三区 | av在线影片 | 日本亚洲欧洲色α在线播放 | 国产精品久久久久久久久齐齐 | 手机在线观看你懂的 | 日韩欧美一区二区视频 | 美日韩在线视频一区二区三区 | 又黄又爽又色的免费软件 | 色香欲天天天影视综合网 | 免费特级黄毛片在线成人观看 | 男女做爰真人视频直播 | 黄色一级片免费播放 | 毛片网在线观看 | 久爱无码精品免费视频在线观看 | 国产高清在线精品一区 | 噜噜久久噜噜久久鬼88 | 婷婷综合久久 | 精品亚洲国产成人av在线 | 性人久久 | av免费在线观看网址 | 成人在线手机视频 | 亚洲熟妇无码av不卡在线播放 | 久久99青青精品免费观看 | 亚洲日本一本dvd高清 | 精品国产aⅴ | av无码天一区二区一三区 | 亚洲国产精品av在线播放 | av九九| 五月婷六月丁香狠狠躁狠狠爱 | 欧美综合一区 | 亚洲另类调教 | 蜜桃麻豆www久久国产精品 | 又色又爽又高潮免费视频国产 | 人人做人人妻人人精 | 在线亚洲观看 | 久久婷婷五月综合国产尤物app | 国产精品一区二区羞羞答答 | 国产69精品久久久久999小说 | 精品美女久久 | 欧美一级片网站 | 蜜桃av.com| 美女大量吞精在线观看456 | 美女激情网站 | 四虎影院观看 | 激情校园另类小说伦 | 人妻中文字幕av无码专区 | 激情五月激情综合网 | 98精品国产高清在线xxxx天堂 | 婷婷综合五月天 | 国产人妖一区 | 日韩欧美综合视频 | 亚洲精品日韩丝袜精品 | 在线观看精品视频网站 | 久久精品呦女 | 3atv精品不卡视频 | 天天色天天射天天干 | 中文字幕 欧美激情 | 内射无码专区久久亚洲 | 欧美六九视频 | 日本视频高清一道一区 | 日本免费一区二区三区在线播放 | 91官网视频| 国产caowo18在线观看 | 91色网站 | 久久久精品456亚洲影院 | 国产欧美一区二区三区在线老狼 | 日日躁夜夜躁白天躁晚上 | 久久99精品这里精品6 | 天堂在/线中文在线资源 官网 | 天天澡天天揉揉av无码 | 中文字幕无码不卡在线 | 欧美毛片无码又大又粗黑寡妇 | www.久久国产 | 午夜福利18以下勿进免费 | 日韩手机在线视频 | 亚洲欧美日韩在线不卡 | 91免费福利视频 | 中文字幕av高清片 | 国产男女猛烈无遮挡免费网站 | 女人高潮内射99精品 | 日本中文一二区有码在线 | 国产亚洲视频在线播放香蕉 | 亚瑟国产精品久久 | 精品亚洲aⅴ在线无码播放 深爱激情站 | 丝袜自慰一区二区三区 | 久久亚洲精品久久国产一区二区 | 狠狠综合久久综合88亚洲 | 狠狠色综合网久久久久久 | 狠狠色丁香婷婷综合尤物 | 又色又爽又黄又无遮挡的网站 | 一本久久知道综合久久 | 99视频精品在线 | 国产伦理久久 | 337p人体粉嫩久久久红粉影视 | 亚洲无线一二三四区手机 | 国产午夜男女爽爽爽爽爽 | 亚洲精品综合一区二区三 | 国产又粗又猛又爽免费视频 | 中文字幕在线色 | 97久久国产亚洲精品超碰热 | 人妻丰满熟妇av无码区hd | 鲁一鲁一鲁一鲁一av卡三 | 无套中出极品少妇白浆 | 在线播放国产一区二区三区 | 久久天天躁夜夜躁狠狠ds005 | 亚洲日韩看片无码电影 | 久久午夜片 | 夜夜躁狠狠躁日日躁婷婷小说 | 亚洲女线av影视宅男宅女天堂 | 鲁一鲁一鲁一鲁一曰综合网 | 国精产品一区一区三区免费视频 | 992tv人人草| 国产午夜三级一区二区三 | 日本免费一二区 | 香港三级精品三级在线专区 | 亚洲一区二区三区观看 | 中文字幕在线播出 | 天堂在线最新版资源www | 国产亚洲欧洲综合5388 | 亚洲女人毛耸耸 | 日本丰满大乳人妻无码苍井空 | 亚州av综合色区无码一区 | 久久久久欠精品国产毛片国产毛生 | 日韩v欧美 | 粉嫩av一区二区三区在线播放 | 日韩精品东京热无码视频 | 日本免费不卡高清网站 | 精品毛片乱码1区2区3区 | 美女流白浆视频 | 久久久国产高清 | 日本又黄又猛又爽免费视频 | 天堂va久久久噜噜噜久久va | 国产成人av免费在线观看 | 农村少妇无套内谢粗又长 | 色狠狠av北条麻妃 | 欧美涩涩涩 | 超碰国产精品久久国产精品99 | 天天爽夜夜爽夜夜爽 | 三级黄色一级片 | 深夜免费福利网站 | 手机在线看黄色 | 精品免费一区二区三区 | 色婷婷一区二区三区av免费看 | 国产毛片毛片毛片毛片毛片毛片 | 欧美乱妇无乱码大黄a片 | 国产午夜精品无码一区二区 | 日韩视频久久 | 欧美城天堂网 | 欧洲精品在线播放 | 精品久久久久中文字幕日本 | 亚洲.日韩.欧美另类 | 免费毛片手机在线播放 | av男人天堂av| 太粗太深了太紧太爽了动态图男男 | 国产在线看片免费视频 | 久久影院九九被窝爽爽 | 四虎4545www精品视频 | 韩国主播福利一区二区三区 | 激情 小说 亚洲 图片 伦 | 国产又黄又硬又湿又黄的视 | 亚洲欧美日韩激情 | 国产精品美女久久久浪潮软件 | 9久久9毛片又大又硬又粗 | 99国产亚洲精品美女久久久久 | 亚洲综合网站 | 天天鲁夜夜免费观看视频 | 久久无码无码久久综合综合 | 亚洲性啪啪无码av天堂 | 狠狠噜天天噜日日噜视频麻豆 | 2021国产精品香蕉在线观看 | 久久青青草原国产最新片完整 | 欧美色xxx | 中国少妇做爰全过程毛片 | 亚洲人亚洲人成电影网站色 | 国产精品_国产精品_k频道w | 免费人成在线观看播放a | 日本丰满少妇 | 色偷偷色偷偷色偷偷在线视频 | 欧美日韩视频在线观看免费 | 亚洲国产亚综合在线区 | 少妇大战二十8厘米黑人 | 日韩欧美啪啪 | 欧美日韩国产激情 | 一级特级毛片 | 亚洲成无码人在线观看 | 亚洲人成网站在线播放2020 | 在线看日韩av | 亚洲最大在线视频 | 国产青青草| 欧美巨鞭大战丰满少妇 | 亚洲人成人网站色www | 久久久久久久久久久网 | 奇米在线7777在线精品 | 国产精品亚洲专区无码电影 | 少妇熟女久久综合网色欲 | 男人天堂免费视频 | 体内射精日本视频免费看 | 一本色道精品久久一区二区三区 | 色综合图 | 午夜寂寞自拍 | 欧美另类tv | 午夜性开放午夜性爽爽 | 欧美 亚洲 国产 制服 中文 | hodv一21134铃原爱蜜莉在线 | 青青草原精品99久久精品66 | 国产精品美女久久久m | 国产精品午夜剧场免费观看 | 99草| 三区四区在线 | 国产精品国产成人国产三级 | 亚洲美女奶水好多 | 狠狠躁夜夜躁人人爽天天不卡软件 | 伊人狠狠操 | 91免费视频大全 | av 一区二区三区 | 男人晚上看的网址 | 国产成av人片久青草影院 | 欧美性一区二区三区 | 免费观看黄色一级视频 | 国产淫视频 | 丰满少妇被猛男猛烈进入久久 | 国产又粗又黄又爽又硬的视频 | 国产又黄又湿又刺激网站 | 天天射一射 | 国产强伦姧在线观看 | 国产成人午夜福利在线视频 | 久久久久人妻一区二区三区vr | 91pro国产福利网站www | 欧美日韩综合在线 | 欧亚毛片 | 亚洲图片小说激情综合 | 国产伊人网 | 欧美精品xxx | 欧美日韩一区二区三区视频免费观看 | 狠狠色图片 | 天堂亚洲国产中文在线 | 免费看性视频xnxxcom | 欧美一区二区久久久 | 色姑娘久 | 国产亚洲精品欧洲在线观看 | 国产美女无遮挡永久免费 | 一本一道久久a久久精品综合蜜臀 | 国产午夜精品一区二区三区四区 | 亚洲国产美国国产综合一区 | 亚洲精品久久久久午夜aⅴ 色妞精品av一区二区三区 | 色婷婷aⅴ | 国产在线观看免费人成视频 | 992tv精品视频tv在线观看 | 亚洲欧美另类久久久精品能播放的 | 亚洲精品国产a久久久久久 亚洲精品国产av成拍色拍 | 国产精品美女久久久久久2018 | 亚洲乱码日产精品bd在 | 久草资源 | 亚洲欧美精品aaaaaa片 | 国产精品黑人 | 黄色aaa视频 | 无码av波多野结衣久久 | 国模私拍一区二区三区 | 欧美激情中文 | 又大又粗又爽免费视频a片 中文字幕 视频一区 | 久久精品a | 女人12毛片视频 | 成人福利院 | 国产午夜精品一二区理论影院 | 国产日产精品一区二区三区 | 一本色综合亚洲精品蜜桃冫 | 少妇搡bbbb搡bbb搡老女王 | 欧美精品激情视频 | 中文字幕在线观看免费视频 | 222aaa免费国产在线观看 | 国产美女在线精品免费观看网址 | 99久久久99久久国产片鸭王 | 日韩在线观看高清 | 欧美福利片在线观看 | 国产真实精品久久二三区 | 亚洲2020天天堂在线观看 | 97人人精品 | www.伊人.com| 2020国产欧洲精品网站 | 国产麻豆一精品av一免费软件 | 久操免费在线观看 | 国产精品99久久久久久人免费 | yp在线观看视频网址入口 | 无码无套少妇18p在线直播 | 欧洲一卡2卡3卡4卡国产 | 亚洲日产韩国一二三四区 | 影音先锋国产 | 国产乱码卡一卡2卡三卡四 另类视频在线观看+1080p | 亚洲男人的天堂www 乱子轮熟睡1区 | 精品久久久久av免费观看 | 99久久99久久精品免费看蜜桃 | 国产一级久久 | 亚洲色大成网站www永久在线观看 | 52avaⅴ我爱haose免费视频 | 色爱综合av | 中文字幕无线码免费人妻 | 日韩a级影片 | 国产高跟黑色丝袜在线 | 日日碰狠狠躁久久躁综合小说 | 91激情小视频 | 最新毛片网| 亚欧激情乱码久久久久久久久 | vr成人片在线播放网站 | 女人被狂c躁到高潮视频 | 日韩视频专区 | 亚洲无在线| 日韩精品h | 丰满少妇作爱视频免费观看 | 最新的国产成人精品2020 | 天天操夜夜爽 | 国产日本卡二卡三卡四卡 | 性视频免费的视频大全2015年 | 亚洲国产成人精品久久久国产成人一区 | 日韩激情无码av一区二区 | 国产乱人乱偷精品视频a人人澡 | 九九色影院| 一级性毛片 | 一级女毛片 | 丁香狠狠色婷婷久久综合 | 亚洲综合影院 | 亚洲男人第一av天堂 | 妺妺窝人体色www聚色窝仙踪 | 亚洲精品成人福利网站 | 成年人免费黄色片 | 国产69精品久久久久人妻 | 91精品国产综合久久婷婷香蕉 | 日韩精品色呦呦 | 欧美黑人巨大videos极品 | 国产精品偷窥久久久盗摄 | 国产粉嫩尤物极品99综合精品 | 欧美三级手机在线观看 | 91xxx在线观看 | 日本欧美大码a在线观看 | 99热黄色 | 无码午夜人妻一区二区三区不卡视频 | av资源天堂 | 久国产精品 | 亚洲精品国产一区二区图片 | 插少妇视频 | 国产亚洲高潮精品av久久a | 中文字幕观看视频 | a级片国产 | 国产福利久久 | 99精品国产在热久久无毒不卡 | 中文精品无码中文字幕无码专区 | 欧美va亚洲 | 人妻av无码中文专区久久 | 中文字幕无码av正片 | 国产人妖一区二区 | 美日韩在线视频 | 东方影院av久久久久久 | www久久久久 | 一级性视频 | 性色av一二三天美传媒 | 99r在线精品视频在线播放 | 在线不卡aⅴ片免费观看 | 色偷偷91 | 在线观看一级片 | 免费看一级黄色 | 精品乱码一区二区三四五区 | 关晓彤真人毛片 | 青青久草在线 | 91av视屏 | 久久久久无码精品国产h动漫 | 免费无码又爽又刺激高潮虎虎视频 | 夜夜国产亚洲视频香蕉 | 日韩成人在线播放 | 欧美日韩91 | 国产精品高潮呻吟久久aⅴ码 | 国产成人无码区免费内射一片色欲 | 国产激情无码一区二区三区 | 国内精品伊人久久久久av影院 | 久久亚洲精品成人av | 2020最新国产在线不卡a | 超碰在线94 | 女人爽到喷水的视频大全 | 波多野结衣高清一区二区三区 | 午夜一二区 | 97亚洲熟妇自偷自拍另类图片 | 国产欧美综合一区 | 欧美一区二区三区粗大 | 日韩性生交大片免费看 | 无遮挡粉嫩小泬久久久久久久 | 少妇激情一区二区三区视频小说 | 香蕉大人久久国产成人av | 亚洲欧美激情另类 | 精品免费一区二区三区在 | 久久国产激情 | 高清欧美性猛交 | 国产丝袜一区二区三区免费视频 | 国内久久久 | 国产欧美一区二区视频 | 国产亚洲精久久久久久无码77777 | 国产jjizz女人多水 | 中文字幕一区日韩精品 | 成人精品视频网站 | 久久久久xxxx| 日韩中文字幕第一页 | 天天狠狠色综合图片区 | 欧美日产亚洲国产精品 | www国产在线 | 亚洲免费a视频 | 性色av一区| 久久免费看少妇a高潮一片黄特 | 亚洲中文无码人a∨在线 | 少妇天天干| 亚洲午夜久久久久久久久久久 | 肥臀熟女一区二区三区 | 日韩视频在线一区 | 国产精品yy | 成人亚洲a片v一区二区三区蜜臀 | 免费久久99精品国产自在现线 | 美女爱爱免费视频 | 色综合天天综合网国产成人网 | 色噜噜狠狠狠狠色综合久一 | 国内自产少妇自拍区免费 | 99爱在线视频这里只有精品 | 日日草夜夜操 | 2024国产精品视频 | 中文字幕一区日韩精品 | 中文有码人妻字幕在线 | 国产天天看 | 无套内射在线观看theporn | 欧美顶级少妇做爰hd | 99久久精品国产综合 | 99亚洲男女激情在线观看 | 国产精品成人一区二区三区夜夜夜 | 一边吃胸一边揉下面的视频 | 亚洲伊人成综合网 | 欧美日韩1234| 天天草天天射 | 日日摸日日碰人妻无码 | 免费男性肉肉影院 | 国产午夜免费高清久久影院 | 国产精品一区免费在线观看 | 一级黄色片在线观看 | 日免费视频 | 精品人妖videos欧美人妖 | 中文字幕免费在线观看 | 精品亚洲一区二区三区在线观看 | 欧美大片高清免费看 | 天天拍天天色 | 荡女淫春台湾版 | 国产精品丝袜一区二区三区 | 人人妻人人澡人人爽人人dvd | 日本免费无遮挡吸乳视频中文字幕 | 中文字幕超清在线免费观看 | 国产成人精品免费视频大全五级 | 国产精品亚洲一区二区在线观看 | 天天艹天天 | 欧美精品一区二区精品久久 | 深夜福利av | 欧美香蕉在线 | 免费人成视频在线播放 | 国产精品国产三级国产aⅴ浪潮 | 我要看a级毛片 | 久久中文字幕av一区二区不卡 | 国产无人区卡一卡二卡乱码 | 日韩va中文字幕无码电影 | 日本高清无吗 | 亚欧美在线观看 | 亚洲色图 在线视频 | 日本xxxx色| 九1热综合这里都是真品 | 亚洲韩国精品无码一区二区三区 | 香蕉久热 | 欧洲多毛裸体xxxxx | 欧美40老熟妇色xxxxx | 欧洲亚洲国产精品 | 亚洲人成网站色7799 | 久久久久人妻精品一区蜜桃 | 美女国产精品视频 | 国产大屁股喷水视频在线观看 | 91丨九色丨国产 | 成人久久久精品乱码一区二区三区 | 欧美日韩黄 | 天堂俺去俺来也www色官网 | 久草福利站 | 成人免费观看视频网站 | 中文字幕精品无码一区二区三区 | 少妇av中文字幕 | 中文字幕乱码人妻一区二区三区 | 午夜精品久久久久久久99热 | 国产精品欧美日韩在线 | 国产精品久久久久影院老司 | 最新在线精品国自产拍视频 | 99ee6这里只有精品热 | 狠狠操夜夜操天天操 | 在线成人www免费观看视频 | 狠狠躁夜夜躁人人爽视频 | 天堂999 | 尤物精品视频无码福利网 | 97国产精品人妻无码久久久 | 第一福利所导航 | 日本久热| av国产免费| 天天草夜夜操 | 美女张开腿让男人桶爽 | 国产对白受不了了 | 日韩视频在线观看 | 亚洲人成网址在线播放小说 | 亚洲乱码一卡二卡四卡乱码新区 | 十八禁视频在线观看免费无码无遮挡骂过 | 国产欧美日本在线 | 国产欧美日韩精品一区二区三区 | 亚洲精品沙发午睡系列 | 国产尤物福利视频一区二区 | 国产新婚夫妇叫床声不断 | 男女啪啪抽搐高潮动态图 | 西野翔中文字幕 | 无毒的av网站 | 一本色道无码道在线观看 | 国产一区二区三区影院 | 成人a视频在线观看 | 蜜桃成人在线观看 | 明星性猛交ⅹxxx乱大交 | 亚洲最大激情网 | 日本高清在线一区至六区不卡视频 | 午夜性无码专区 | 国产午夜精品福利视频 | 午夜精品久久久久久久久久久久久 | 少妇性xxxxxxxxx色野 | 欧美日韩一级久久久久久免费看 | 亚洲国产成人无码av在线播放 | 国产又粗又猛又爽免费视频 | 老司机精品导航 | 色www亚洲国产张柏芝 | 湿女导航福利av导航 | 成人网站www污污污网站直播间 | 狠狠躁天天躁中文字幕无码 | 一区三区不卡高清影视 | 男女无遮挡毛片视频免费 | 成人免费一区二区三区视频软件 | 国产欧美高清在线观看 | 日本少妇一区二区三区 | 东京热人妻丝袜av无码 | 亚洲图片视频一区 | 97国产在线视频 | 欧美国产日韩综合 | 国产精品国产三级国产专区52 | 欧美日韩国产精品一区 | 2025成人免费毛片视频 | 亚洲人成电影在线播放 | 不卡av免费观看 | 一级特黄性色生活片 | 亚洲天堂无吗 | 韩国和日本免费不卡在线v 呦女精品 | 欧美乱码伦视频免费 | 久久人人爽人人爽人人 | 尤物爽到高潮潮喷视频大全 | 日韩欧美午夜 | 欧美成人四级hd版 | 亚洲精品视频三区 | 饥渴少妇激情毛片视频 | 色片网站在线观看 | 色www永久免费视频首页 | av无限看 | 秋霞av鲁丝片一区二区 | 国产91av视频在线观看 | 国产一级视频播放 | 97久久日一线二线三线 | 人妻少妇69式99偷拍 | 亚洲免费区 | 国产91视 | 日韩精品视频在线看 | 亚洲国精产品一二二线 | 日本不卡123 | av噜噜在线 | 日日爽日日操 | 无码区日韩特区永久免费系列 | 国产图片一区 | 亚洲国产av天码精品果冻传媒 | 91久久婷婷 | 成人福利视频导航 | 欧亚激情偷乱人伦小说专区 | 男女免费视频网站 | 97超级碰碰碰视频在线观看 | 蜜桃精品久久久久久久免费影院 | www.精品| 成人精品免费视频在线观看 | 伊人涩涩涩涩久久久av | 国产麻豆一区二区三区 | 国产乱码一卡二卡三卡免费 | 久久无码中文字幕免费影院 | 亚洲色欲综合一区二区三区 | 少妇富婆高级按摩出水高潮 | 天天天欲色欲色www免费 | 91艹逼| 少妇三级看三级视频 | 国产精品偷乱视频免费观看了 | 97国产精华最好的产品在线 | 男女搞鸡视频网站 | 六月丁香五月激情综合 | 久久精91久久88香蕉国产 | 欧美激情精品久久久久久黑人 | 纯爱无遮挡h肉动漫在线播放 | 亚洲中文字幕在线观看 | 色欲a∨无码蜜臀av免费播 | 亚洲三级影院 | 亚洲精品乱码久久久久久9色 | av在线免费不卡 | 亚洲精品第一页 | 国产成人精品一区二区在线 | 日本中文字幕在线大 | 少妇呻吟白浆高潮啪啪69 | 欧美成年人视频在线观看 | 欧美日韩精品一二三区 | 国产精品v欧美精品 | 亚洲欧美大片 | 极品尤物一区二区三区 | 国色精品无码专区在线不卡 | 国产日韩欧美不卡在线二区 | 色哟哟一一国产精品 | 亚洲精品成人18久久久久 | 伊人55影院 | 亚洲少妇30p| 秋霞av在线露丝片av无码 | 国产乱子伦三级在线播放 | 亚洲欧洲av一区二区久久 | 国产美女三级无套内谢 | 国产成人乱色伦区 | 欧美日韩亚洲二区 | 久涩涩福利视频在线观看 | 久久久久二区 | 人伦片无码中文字 | 亚洲精品伊人 | 欧美在线一二 | 国产湖南美女精品毛片 | 在线亚洲视频网站www色 | 国产很色很黄很大爽的视频 | 国产一级淫片a | 中文精品一区二区三区四区 | 成人性生交大片免费看冫视频 | 天天影视色 | 狠狠色噜噜综合社区 | 伊人久久久大香线蕉综合直播 | 亚洲va天堂va欧美ⅴa在线 | 青青在线视频人视频在线 | 国产免费无遮挡吸乳视频 | 欧洲精品99毛片免费高清观看 | 精品av熟女一区二区偷窥海滩 | 中文字幕日韩精品在线观看 | 狠狠色丁香婷婷 | 国产色影院 | 少妇裸体淫交视频免费观看 | 曰本又大又粗又黄又爽的少妇毛片 | 91av色| 好男人资源在线www免费 | 美女自拍视频 | 青娱国产区在线 | 欧美一区色 | 色婷婷亚洲婷婷五月 | 俄罗斯大bbbwww视频 | 精品国产亚洲第一区二区三区 | youjizz在线播放 | 日韩欧精品无码视频无删节 | 久久黄页 | 2018自拍偷拍 | 澳门久久| 精东影业毛片 | 国精品人妻无码一区二区三区喝尿 | 又粗又猛又爽又黄少妇视频网站 | 亚洲欧美国产日韩综合 | 激情狠狠 | 日韩国精品一区二区a片 | 欧美性一区二区三区 | 欧美日韩国产一级片 | 日韩av在线不卡 | 亚洲国产专区 | 成人国产精品久久久网站 | 2020最新国产自产精品 | 日本少妇aa特黄毛片亚洲 | 偷国产乱人伦偷精品视频 | 国产午夜精品一区二区三区视频 | 久久久久无码精品亚洲日韩 | 国语自产免费精品视频在 | 内射人妻少妇无码一本一道 | 国产精品综合 | 少妇性l交大片欧洲热妇乱xxx | 日韩欧美精品有码在线洗濯屋 | 精品国产性色无码av网站 | 亚洲一区区 | 久久99精品国产麻豆91樱花 | 久草在线影 | 天黑黑影院在线观看免费中文 | 女人喷液抽搐高潮视频 | 久久99国产精品免费网站 | 张柏芝hd一区二区 | 久久久成人精品视频 | 影音先锋中文字幕第一页 | 亚洲精品久久国产高清 | 亚洲一区在线免费观看 | 香蕉在线视频观看 | 国产毛毛片 | 麻豆果冻国产剧情av在线播放 | 人人鲁人人莫人人爱精品 | 国产一级aa大片毛片 | 亚洲中文无码av永久不收费 | 国产一区日本 | 欧美福利在线视频 | 午夜寂寞视频 | 91精品入口 | 久久久精品波多野结衣 | 黄a无码片内射无码视频 | 国产中文字幕免费 | 国产成人三级三级三级97 | 韩国精品久久久久久无码 | 午夜福利日本一区二区无码 | 婷婷精品在线 | 婷婷五月小说 | 武侠古典av | 无码三级在线看中文字幕完整版 | 亚洲人成网亚洲欧洲无码 | 国产高清在线精品一区不卡 | 不卡欧美| 欧美日韩不卡视频 | 丁香婷婷激情 | 亚洲视频三| 国产成人精品永久免费视频 | 国产露脸150部国语对白 | 九九九久久久 | 深夜精品视频 | 一区二区激情日韩五月天 | 日日躁夜夜躁狠狠躁aⅴ蜜 亚洲午夜精品在线观看 | 日产一二三四五六七区麻豆 | 97成人免费| 成人黄色小视频 | 农村妇女一区二区 | 欧美另类tv | 亚洲第一区在线 | 亚洲福利视频导航 | 五月天婷婷在线观看 | 精品一区二区国产在线观看 | 国产亚洲精品自在久久vr | 性欧美乱束缚xxxx白浆 | 色欲综合久久躁天天躁蜜桃 | 久久九色综合九色99伊人 | 成人亚洲欧美激情在线电影 | 少妇裸体长淫交视频免费观看 | 深夜福利av无码一区二区 | 激情网站免费 | 狠狠干网 | 久久久久高潮毛片免费全部播放 | 蜜桃麻豆www久久国产sex | 国产人成网线在线播放va | 国产69精品久久99不卡的观看体验 | 日韩黄色免费 | av黄在线观看 | 欧美与黑人午夜性猛交久久久 | 人人草人人做人人爱 | 亚洲人成电影网站色mp4 | 久久久久久网站 | 日日碰狠狠躁久久躁婷婷 | 韩产日产国产欧产 | 一级久久久久久 | 国产内射合集颜射 | 2019久久久最新精品 | 91社在线观看| 亚洲gv猛男gv无码男同 | 97色婷婷人人爽人人 | 饥渴少妇做私密保健视频 | 老牛嫩草一区二区三区的功能介绍 | 久久久久人妻精品一区三寸 | 国产精品久久久久久久久免费桃花 | 综合天堂av久久久久久久 | 精品女同一区二区三区 | 精品国产乱码久久久人妻 | 人人澡人人澡人人澡 | 久久蜜桃av一区精品变态类天堂 | 4438x成人网全国最大 | 成人自拍视频在线 | 成人av久久一区二区三区 | 狠狠躁日日躁夜夜躁老司机 | 一本一道av无码中文字幕麻豆 | 澳门久久| 亚洲熟区 | 欧美五月婷婷 | 一边捏奶头一边啪高潮视频 | 女人被强╳到高潮喷水在线观看 | 一本大道av伊人久久综合 | 少妇一级淫片免费放香蕉 | 99国产精品一区二区 | 久操短视频| 一本色综合亚洲精品 | 97国产精品久久 | 天天躁日日躁狠狠躁一区 | 亚洲福利影片在线 | 伊人手机在线视频 | 久精品国产 | 中文字幕av伊人av无码av狼人 | 亚洲第一成年人网站 | а√天堂资源在线 | 9久久精品| 国产精品合集久久久久青苹果 | 久久天天东北熟女毛茸茸 | 少妇嘿咻做爰吃奶摸视频网站 | 九七超碰| 97久久久久人妻精品区一 | 国产免费拔擦拔擦8x高清在线人 | 成年美女黄网站色大片免费软件看 | 性欧美大战久久久久久久久 | 欧美三日本三级少妇三99 | 亚洲一区二区二区久久成人婷婷 | 奇米影视888狠狠狠777不卡 | 一二三区国产 | 丰满少妇大力进入av亚洲葵司 | 亚洲精品国偷拍 | 亚洲精品亚洲 | 国产精品久久久久久久7777 | 日婷婷| 日韩专区一区二区 | 国产精品人成视频免费国产 | 91av精品| 农村欧美丰满熟妇xxxx | 91精品久久久久久久久中文字幕 | 亚洲国产精品成人久久蜜臀 | av一区在线播放 | 高清国产av一区二区三区 | 亚洲爆乳无码专区 | av中文字幕一区 | 乳色吐息1~2集免费看h黄 | 免费在线观看黄视频 | 韩国 日本 亚洲 国产 不卡 | 婷婷五月综合激情中文字幕 | 中文字幕第20页 | 亚洲人一区 | 99久久精品国产一区二区三区 | 污污污污污www网站免费 | 色姑娘久 | 国产精品国产三级国产aⅴ浪潮 | 亚洲va中文字幕无码久久 | 91精品国产综合久久久久久蜜臀 | 亚洲第一综合 | 久久久精品久久 | 亚洲国产2021精品无码 | 久久精品国产福利国产秒拍 | 国产精品露脸国语对白 | 国内精品伊人久久久久影院麻豆 | 亚洲国产视频一区二区 | av大尺度一区二区三区 | 国产精品国产三级国产an | 国产一区二区在线精品 | 最近日本中文字幕 | 三区四区乱码不卡 | 99久久这里只有精品 | 手机看片精品国产福利 | 日韩欧美国产综合 | 日日日日做夜夜夜夜无码 | 北条麻妃99精品青青久久主播 | 久久婷婷国产剧情内射白浆 | 国产毛片久久久久久 | 天堂8在线中文在线 | 日韩激情在线播放 | 日韩国产丝袜人妻一二区 | 亚洲 综合 欧美 动漫 丝袜 | 亚洲社区在线观看 | 中文一国产一无码一日韩 | 91精产国品一二三生产方式 | 日韩经典精品无码一区 | 另类 综合 日韩 欧美 亚洲 | 黄在线看片免费人成视频 | 婷婷五月开心亚洲综合在线 | 亚洲www. | 欧美中文字幕 | 免费av在线网站 | 精品亚洲午夜久久久久91 | 国产精品少妇 | 日本乱子人伦在线视频 | 日韩,中文字幕 | 亚洲小说区图片区都市 | 国产百合互慰吃奶互揉视频 | 亚洲国产欧美国产综合一区 | 女人爽到高潮的免费视频 | 久久久无码精品国产一区 | 久久久久国产精品人妻aⅴ网站 | 亚洲成av人片在线观看无线 | 太深太粗太爽太猛了视频免费观看 | 在线视频观看免费视频18 | 精品国产乱码久久久久app下载 | 久久精品国产成人av | 少妇毛片一区二区三区免费视频 | 少妇粗大进出白浆嘿嘿视频 | 亚洲国产精品999久久久婷婷 | 四虎永久在线精品免费网址 | 国产又粗又猛又黄又爽 | 国产av人人夜夜澡人人爽麻豆 | 国产精品伦一区二区三级视频永妇 | 亚洲精品久久久久久久久久久捆绑 | 青草久操 | 亚洲天堂中文字幕在线观看 | 亚洲一区二区三区在线播放无码 | 夜夜操操操 | 欧美激情图片 | 一本大道久久精品懂色aⅴ 在线视频18在线视频4k | 热久久免费| 欧美专区另类专区在线视频 | 狠狠色噜噜狠狠狠四色米奇 | 强h辣文肉各种姿势h在线视频 | 国产一级一级国产 | 亚洲 春色 另类 小说 | 亚洲美免无码中文字幕在线 | 日韩黄色精品 | 亚洲女优在线 | 91网站在线播放 | 久久久久久久9 | 99自拍 | 中国中文字幕伦av在线看片 | 国产男女精品视频 | 亚洲精品蜜桃久久久久久 | 午夜视频免费在线观看 | 日本熟妇色一本在线看 | 中文字幕丰满乱子伦无码专区 | 中国少妇av | 国产又粗又长又猛又爽 | 国产成人亚洲综合色影视 | 国产免费人成网站x8x8 | 国产91九色 | 国产免费专区 | 亚洲aⅴ无码成人网站国产app | 色噜噜亚洲精品中文字幕 | 992tv精品视频tv在线观看 | 综合无码一区二区三区四区五区 | 亚洲国产日韩a在线播放 | 中文无码乱人伦中文视频在线 | 韩国精品一卡2卡三卡4卡乱码 | 欧美日批视频 | av高清无码 在线播放 | 欧美日韩在线视频一区二区 | 日日插插| 玖玖在线资源 | 天天操天天操天天 | 在线天堂免费观看.www | 国精品人妻无码一区二区三区性色 | 亚洲无限观看 | 国产精品99久久99久久久 | 久久久亚洲欧洲日产国码二区 | 国产最新精品自产在线观看 | 一区二区三区人妻无码 | 国产成av人片在线观看无码 | 又粗又猛又大爽又黄老大爷5 | 亚洲中文字幕av无码区 | 嫩草福利视频精品一区二区三区 | 日韩欧美高清片 | 久久人人草 | 欧美精品一区二 | 久久九九久精品国产综合 | 日韩久久在线 | 日韩欧美亚洲综合久久 | 韩日精品视频在线观看 | 中文字幕日产无线码一区 | 欧美一道本一区二区三区 | 名人明星三级videos | 久久久精品一区二区三区四季av | 亚洲精品福利 | 国产jjizz女人多水喷水 | 98在线视频噜噜噜国产 | 久久精品久久久久观看99水蜜桃 | 精品在线二区 | 自拍性旺盛老熟女 | 97色在线视频 | 日韩三级高清 | 在线观看亚洲网站 | 高潮又爽又黄又无遮挡动态图 | 欧美97 | 亚洲人成伊人成综合网中文 | 久草手机在线 | 五月激情亚洲 | 国产成人亚洲综合色婷婷 | 免费成人黄色大片 | 一本久道综合色婷婷五月 | 中文字幕在线2021 | 国产婷婷色一区二区三区在线 | 西西人体大胆4444www | 国产成人亚洲精品另类动态图 | 国产成人无码精品久久久露脸 | 六月婷婷在线观看 | 成人性生交视频免费看 | 亚洲伊人久久综合 | 成人综合区一区 | 天天做夜夜做 | 国产av一区二区精品久久 | 成人网免费 | 激情五月色综合国产精品小说 | 国产亚洲精品aaaa片在线播放 | 亚洲国产精品一区二区久久 | 日产av在线 | 亚洲а∨天堂男人色无码 | 久久这里只有精品青草 | 亚洲 卡通 欧美 制服 中文 | 久久不见久久见www免费视频 | 亚洲欧美日韩精品久久奇米一区 | av天堂久久天堂色综合 | 深夜在线网址 | 久久毛毛片 | 亚洲欧美影视 | 国产做a爱片久久毛片a片 | 狠狠爱天天干 | 暖暖免费 高清 日本社区在线观看 | 免费人成视网站在线不卡 | 中文字幕1区2区 | 国产精品白丝av网站在线观看 | 欧美成人剧场 | 国产精品卡1卡2卡三卡四 | 亚洲色欲色欲综合网站 | 午夜免费看片 | 亚洲一区二区在线观看视频 | 欧美大片va欧美在线播放 | 国产欧美精品一区aⅴ影院 国产午夜精品av一区二区麻豆 | 国产黄a三级三级三级老年人 | 国产精品嫩草99av在线 | 久久女性裸体无遮挡啪啪 | 国产亚洲成人av | 少妇疯狂做受xxxx高潮台湾 | 亚洲中文字幕一二三四区苍井空 | 九九99九九精彩4 | 国产精品自在在线午夜出白浆 | 婷婷综合激情 | 成人毛片18女人毛片 | 国产精品久久久久久无码五月 | 黄色尤物网站 | 欧美男人亚洲天堂 | 国产伦理久久精品久久久久 | 67194成是人免费无码 | 国产97av | 亚洲日产av中文字幕无码偷拍 | 东京热久久综合久久88 | 日本中文字幕一区二区高清在线 | 欧美日本免费高清一区二区 | 超碰97免费在线 | 久久久国产精品无码免费专区 | 精品久久久久中文字幕日本 | 日本mv在线视频 | 色噜噜狠狠成人中文综合 | 四虎视频国产精品免费 | 亚洲a级精品 | 久久天堂综合亚洲伊人hd | 亚洲国产成人精品在线 | 国产成人av在线婷婷不卡九色 | 老熟女一区二区免费 | 自在自线亚洲а∨天堂在线 | 成av在线 | 你懂的网址在线播放 | 在线看片国产日韩欧美亚洲 | 琪琪午夜理论片福利在线观看 | 老师粉嫩小泬喷水视频90 | 亚洲欧洲日产国码无码av喷潮 | 婷婷操| 国产成人无码午夜视频在线播放 | 狠狠色综合久久丁香婷婷 | 精品人妻系列无码专区久久 | 色综合久久网 | 中文字幕永久在线观看 | 中文字幕亚洲专区 | 国产亚洲精品成人aa片 | 婷婷六月在线精品免费视频观看 | av网站在线播放 | 免费观看的无遮挡av | 日本激烈吮乳吸乳视频 | 久草a在线 | 午夜福利国产成人无码gif动图 | 国产蝌蚪视频在线观看 | 久久国产一级片 | 成人三级视频在线观看一区二区 | 免费人成在线观看视频播放 | 日本无遮挡真人祼交视频 | 国产无遮挡网站 | 国产福利视频 | 亚洲成人看片 | 国产日韩免费视频 | 夜间福利视频 | 国产一级特黄a大片免费 | 中文字幕无码一区二区免费 | 国产精品久久久久久久久潘金莲 | 亚洲天天摸日日摸天天欢 | 香蕉视频国产在线观看 | 中文字日产幕码三区的做法大全 | 日本免费色 | aaa一级片| 秋霞午夜无码鲁丝片午夜精品 | 欧美精品成人在线视频 | 日韩天堂网 | av无码av天天av天天爽 | 日日日网站 | 久久高清免费 | 黑色丝袜脚足国产在线看 | 亚洲激情av在线 | 亚洲一区精品无码色成人 | 欧美激情国内自拍 | 性无码免费一区二区三区在线网站 | 色窝窝免费一区二区三区 | aaa极品在线 | 综合在线观看 | 亚洲国产日韩一区三区 | 午夜男女爽爽影院免费视频 | 欧洲美妇乱人伦视频网站 | 天天视频色| 久久久性色精品国产免费观看 | 三级午夜理伦三级交换的一天 | 青青青在线播放视频国产 | 欧美多人片高潮野外做片黑人 | 超碰人人草人人干 | 四虎18| 亚洲校园激情春色 | 国产精品天干天干在线综合 | 99热18 | 911久久| 国产精品玩偶在线观看 | 国产精品毛片完整版视频 | 久久女人天堂精品av影院麻 | 337人体做爰大胆视频 | 鲁鲁夜夜天天综合视频 | 国产在线精品无码不卡手机免费 | 激情欧美网站 | 欧美h片在线观看 | 97国产精品麻豆性色aⅴ人妻波 | 欧洲精品视频在线 | 另类图片小说 | 欧美性做爰毛片 | 国产成人在线网站 | 日本黄色毛片 | 久久无码无码久久综合综合 | 狠狠躁夜夜躁青青草原软件 | 中文国产成人精品久久不卡 | 九九热视频在线播放 | 国产麻豆剧果冻传媒一区 | 成人做爰免费网站 | 久久伊| 99精品人妻无码专区在线视频区 | 国内爆初菊对白视频 | 影视av久久久噜噜噜噜噜三级 | 免费国产污网站在线观看不要卡 | 在线观看日本中文字幕 | 国产又粗又黄又猛 | 免费大片在线观看网站 | 永久中文字幕 | 久久精品无码中文字幕 | 51成人精品网站 | 亚洲精品综合五月久久小说 | 日本又黄又爽刺激 | 日韩午夜理论片 中文字幕 国产乱码卡二卡三卡4 | 国产美女永久免费无遮挡 | 午夜免费激情视频 | 精品国产三级 | 丰满少妇在线观看网站 | 美女吸乳羞羞视频网站 | 99久久综合狠狠综合久久止 | 久久天天躁狠狠躁夜夜网站 | 黄色av一区二区 | 日本a∨在线 | 色xxxxxx| 亚洲精品无码久久久久秋霞 | 精品一区二区在线观看视频 | 日韩a在线 | 国产又色又爽又黄的免费软件 | 国产精品捆绑调教网站 | 日本视频a | 国产午夜无码片在线观看 | 动漫卡通精品一区二区三区介绍 | 干中文字幕 | av观看在线观看 | 狠狠色伊人亚洲综合网站色 | 久久久久这里只有精品 | 亚洲国产97色在线张津瑜 | 西川ゆい 痴汉在线播放 | 亚洲一本之道高清乱码 | 美女网站在线永久免费观看 | 26uuu亚洲综合色欧美 | 欧美伊人精品成人久久综合97 | 91tv亚洲精品香蕉国产一区 | 亚洲天堂婷婷 | 人妻少妇被猛烈进入中文字幕 | 国产精品久久久999 色五月丁香五月综合五月 人妻互换免费中文字幕 | 久久污 | 久久人人爽人人人人片 | 久久久久成人精品无码中文字幕 | 国产66页 | 久久欧美与黑人双交男男 | 亚洲天天做 | 精品一卡2卡3卡4卡新区在线 | 麻豆第一区mv免费观看网站 | 成人一级在线 | 激情综合五月网 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲美免无码中文字幕在线 | 国产精品污www在线观看17c | 加比勒色综合久久 | 亚洲精品乱码久久久久久9色 | 欧美视频网站中文字幕 | 熟妇人妻av中文字幕老熟妇 | 亚洲中文字幕无码一区无广告 | 国产视频一区二区在线观看 | 亚洲色无码综合图区手机 | 免费黄色一区二区 | 国产精品色拉拉 | 91精品久久久久久综合 | 亚洲日韩中文无码久久 | 成人爱爱aa啪啪看片 | 国产在热线精品视频99公交 | 免费无码专区毛片高潮喷水 | 亚洲人成小说网站色在线 | 亚洲国产成人在线观看 | 国产探花在线精品一区二区 | 亚洲狠狠婷婷综合久久久久图片 | 欧洲熟妇色xxxx欧美老妇多毛 | 色 成人 亚洲 | 日韩国产亚洲欧美中国v | 国产二区交换配乱婬 | 午夜精品国产 | 国产亚洲在线 | 另类二区 | 精品一区二区三区无码免费直播 | 夜夜天天噜狠狠爱2019 | 中文日产日产乱码乱偷在线 | 很黄很色1000部视频 | www国产精品内射老师 | 午夜精品视频在线观看 | 91人人澡人人爽人人精品 | 亚洲免费视频网站 | 天堂中文在线8最新版地址 本道久久综合无码中文字幕 | 亚洲三区在线观看内射后入 | 久久私人影院 | 中文字幕在线亚洲精品 | 少妇太爽了太深了太硬了 | 久久亚洲高清 | 区一区二在线观看 | 日日干夜夜操 | 偷窥自拍青青草 | 欧州一区二区 | 日本xxxxx片免费观看喷水 | 亚洲色精品vr一区二区三区 | 日本久久精品少妇高潮日出水 | 久青草国产在视频在线观看 | 日韩在线小视频 | 国产成人一区二区三区 | 有b吗在线视频 | 秋霞鲁丝片一区二区三区 | 国产又色又爽又高潮免费 | 成年无码av片在线狼人 | 欧美一区二区激情视频 | 国产老妇伦国产熟女老妇视频 | 欧美日韩中文在线观看 | 国产毛片不卡 | 国产精品国产三级国产传播 | 国产高跟黑色丝袜在线 | 成人久久18免费 | 久久精品人人做人人爽 | 亚洲成人黄色网 | 手机在线看永久av片免费 | 懂色aⅴ精品一区二区三区 欧美首页 | 亚洲成在人线免费观看 | 久久一区av | 国产在线欧美日韩精品一区 | 免费无码专区在线视频 | 欧美巨大丰满少妇xxxx人 | 一级a性色生活片久久毛片明星 | 亚洲青春草 | 亚洲狠狠丁香婷婷综合久久久 |