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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? corbaclient.c,v

?? Perfession Linux Programming examples
?? C,V
?? 第 1 頁 / 共 4 頁
字號:
head	1.7;
access;
symbols;
locks
	cbbrowne:1.7; strict;
comment	@ * @;


1.7
date	2000.07.17.05.29.20;	author cbbrowne;	state Exp;
branches;
next	1.6;

1.6
date	2000.06.25.05.27.47;	author cbbrowne;	state Exp;
branches;
next	1.5;

1.5
date	2000.06.25.02.29.21;	author cbbrowne;	state Exp;
branches;
next	1.4;

1.4
date	2000.06.24.13.45.00;	author cbbrowne;	state Exp;
branches;
next	1.3;

1.3
date	2000.06.24.13.06.33;	author cbbrowne;	state Exp;
branches;
next	1.2;

1.2
date	2000.06.24.03.27.41;	author cbbrowne;	state Exp;
branches;
next	1.1;

1.1
date	2000.06.19.06.17.58;	author cbbrowne;	state Exp;
branches;
next	;


desc
@@


1.7
log
@*** empty log message ***
@
text
@/*
  DVD Store Application Reference API Implementation
  
  This file contains definitions of functions conforming
  to the DVD Store application database APIs.
 */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "dvd.h"
#include "dvdc.h"

static void open_factory_error (CORBA_Object interface, 
				char *interfacename);
/* CORBA structures */
static CORBA_Environment ev;
static CORBA_ORB orb;
static CORBA_Object dvd_client;
static DVD_MEMBERSHIP membership;
static DVD_TITLING titling;
static DVD_DISKS disks;
static DVD_RENTAL rental;
static DVD_RESERVATIONS reservations;
static DVD_UTILITIES utilities;

/* This function does the setup to establish the connection to
   ORBit. */

#define IORLOCATION "../server/dvd-server.ior"

void ConnectORB (int argc, char *argv[]) {
  FILE *ifp; 
  char *ior;
  char filebuffer[1024];
  /* Start up the exception handler */
  CORBA_exception_init(&ev);  
  /* Request a connection to ORBit */ 
  orb = CORBA_ORB_init(&argc, argv, "orbit-local-orb", &ev);  
  ifp = fopen(IORLOCATION,"r");
  if( ifp == NULL ) {
    printf("No dvd-server.ior file!");
    exit(-1);
  }
  fgets(filebuffer,1024,ifp);
  printf("%s\n", filebuffer);
  ior = g_strdup(filebuffer);
  fclose(ifp);
  dvd_client = CORBA_ORB_string_to_object(orb, ior, &ev);
  if (!dvd_client) {
    printf("Cannot bind to IOR: %s\n", ior);
    exit(-1);
  }
}
/* A logical extension at this point would be to insert some
   security validation, so that only those interfaces that the user
   is permitted to access are in fact set by this process. 
   
   We'd add an "authentication token" as an argument to each of
   these factory functions; the instantiations of interfaces would
   then fail as "needed" in that the server would refuse to return
   the interface reference. */

/* This "Factory" is used to get references to all of the CORBA
   interfaces used in this package. */

int Build_Factories(void) 
{
  /*  printf("Opening Factories...");  */
  membership = DVD_FACTORY_MEMBERSHIPFactory(dvd_client, &ev);
  open_factory_error(membership, "membership");
  if (ev._major != CORBA_NO_EXCEPTION) {
     printf("Got CORBA exception %d/%s\n", ev._major, 
       CORBA_exception_id(&ev));
    CORBA_exception_free(&ev);
    return DVD_ERR_CORBA_EXCEPTION;
  }
  titling = DVD_FACTORY_TITLINGFactory(dvd_client, &ev); 
  if (ev._major != CORBA_NO_EXCEPTION) {
     printf("Got CORBA exception %d/%s\n", ev._major, 
       CORBA_exception_id(&ev)); 
    CORBA_exception_free(&ev);
    return DVD_ERR_CORBA_EXCEPTION;
  }
  open_factory_error(titling, "titling");
  disks = DVD_FACTORY_DISKSFactory(dvd_client, &ev); 
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major, 
	   CORBA_exception_id(&ev));
    CORBA_exception_free(&ev);
    return DVD_ERR_CORBA_EXCEPTION;
  }
  open_factory_error(disks, "disks");
  rental = DVD_FACTORY_RENTALFactory(dvd_client, &ev); 
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major, 
	   CORBA_exception_id(&ev));
    CORBA_exception_free(&ev);
    return DVD_ERR_CORBA_EXCEPTION;
  }
  open_factory_error(rental, "rental");
  reservations = DVD_FACTORY_RESERVATIONSFactory(dvd_client, &ev); 
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major, 
	   CORBA_exception_id(&ev));
    CORBA_exception_free(&ev);
    return DVD_ERR_CORBA_EXCEPTION;
  }
  open_factory_error(reservations, "reservations");
  utilities = DVD_FACTORY_UTILITIESFactory(dvd_client, &ev); 
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major, 
	   CORBA_exception_id(&ev));
    CORBA_exception_free(&ev);
    return DVD_ERR_CORBA_EXCEPTION;
  }
  open_factory_error(utilities, "utilities");
  return DVD_SUCCESS;
}

int dvd_member_set(dvd_store_member *member)
{
  DVD_MEMBERSHIP_storemembers *memout;
  /*  printf("Set: dvd_store_member\n"); */
  if(member == NULL) {
    return DVD_ERR_NULL_POINTER;
  } else {
    memout= DVD_MEMBERSHIP_storemembers__alloc();
    memout->memberid = member->member_id;
    memout->memberno = member->member_no;
    memout->title = member->title;
    memout->fname = member->fname;
    memout->lname = member->lname;
    memout->houseflatref = member->house_flat_ref;
    memout->address1 = member->address1;
    memout->address2 = member->address2;
    memout->town = member->town;
    memout->state = member->state;
    memout->phone = member->phone;
    memout->zipcode = member->zipcode;
    DVD_MEMBERSHIP_set (membership, memout, &ev);
    if (ev._major != CORBA_NO_EXCEPTION) {
      printf("Got CORBA exception %d/%s\n", ev._major, 
	     CORBA_exception_id(&ev));
      return DVD_SUCCESS;
    }
  }
  return DVD_SUCCESS;
}

int dvd_member_get(int member_id, dvd_store_member *member)
{
  DVD_MEMBERSHIP_storemembers *cmember;
  int rc=0;
  if(member == NULL) {
    return DVD_ERR_NULL_POINTER;
  } else {
    DVD_MEMBERSHIP_get (membership, member_id, &cmember, &ev);
  }
  switch (ev._major) {
  case CORBA_NO_EXCEPTION: 
    rc = 0;
    break;
  case CORBA_SYSTEM_EXCEPTION:
    printf("Got CORBA exception %d/%d from DVD_MEMBERSHIP_get", 
	   ev._major,
	   (int) CORBA_exception_value(&ev));
    return DVD_ERR_NOT_FOUND;
    
  case CORBA_USER_EXCEPTION:
    printf("Error: %s\n", CORBA_exception_id(&ev));
    return DVD_ERR_NOT_FOUND;
  }
  if (rc != 0)   /* If we had an exception above... */
    return rc;
  /* If the retrieved member id is not as expected there
     may be an error, or the member may be deleted */
  if(member_id != cmember->memberid)
    return (int) DVD_ERR_NOT_FOUND;
  member->member_id = cmember->memberid; 
  strncpy(member->member_no, cmember->memberno, 6);
  strncpy(member->title, cmember->title, 4);
  strncpy(member->fname, cmember->fname, 26);
  strncpy(member->lname, cmember->lname, 26);
  strncpy(member->house_flat_ref, cmember->houseflatref, 26);
  strncpy(member->address1, cmember->address1, 51);
  strncpy(member->address2, cmember->address2, 51);
  strncpy(member->town, cmember->town, 51);
  strncpy(member->state, cmember->state, 3);
  strncpy(member->phone, cmember->phone, 31);
  strncpy(member->zipcode, cmember->zipcode, 11);
  /*  printf("Member: %d %s %s %s %s", member->member_id,
	 member->member_no, member->fname, member->lname,
	 member->zipcode); */
  return DVD_SUCCESS;
}

/* Make a new member record. The caller does not need to fill-in
   the member_id or member_no fields, these will be created before
   the member record is added to the database. The new meber_id
   is returned in the output parameter member_id. This must be
   use to retrieve the new member record to discover or set the
   member_no.
   */
int dvd_member_create(dvd_store_member *newrec, int *member_id)
{
  DVD_MEMBERSHIP_storemembers *memout;
  DVD_MEMBERSHIP_memberidt memberid;
  /*  printf("dvd_member_create\n"); */
  if(newrec == NULL)
    return DVD_ERR_NULL_POINTER;
  else {
    memout= DVD_MEMBERSHIP_storemembers__alloc();
    memout->memberid = newrec->member_id;
    memout->memberno = newrec->member_no;
    memout->title = newrec->title;
    memout->fname = newrec->fname;
    memout->lname = newrec->lname;
    memout->houseflatref = newrec->house_flat_ref;
    memout->address1 = newrec->address1;
    memout->address2 = newrec->address2;
    memout->town = newrec->town;
    memout->state = newrec->state;
    memout->phone = newrec->phone;
    memout->zipcode = newrec->zipcode;
  }
  /* Add the new member to the member and reservations file */
  DVD_MEMBERSHIP_create(membership, memout, &memberid, &ev);
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major, 
	   CORBA_exception_id(&ev));
    CORBA_exception_free(&ev); 
    return DVD_ERR_BAD_WRITE;
  }
  *member_id = memberid;
  return DVD_SUCCESS;
}

int dvd_member_delete(int member_id)
{
  DVD_MEMBERSHIP_memberidt m;
  int rc=0;
  /*  printf("dvd_member_delete %d\n", member_id); */
  m = member_id;
  DVD_MEMBERSHIP_delete(membership, m, &ev);
  /* Note that we've got about 4 lines of declarations and other "real
     code," and about 12 lines of "exception handling."  THIS is why
     exception handling in C is ugly */
  switch (ev._major) {
  case CORBA_NO_EXCEPTION: 
    return DVD_SUCCESS;
  case CORBA_SYSTEM_EXCEPTION:
    printf("Got CORBA exception %d/%d from DVD_MEMBERSHIP_delete", ev._major,
	   (int) CORBA_exception_value(&ev));
    rc = DVD_ERR_NOT_FOUND;
    break;
  case CORBA_USER_EXCEPTION:
    if (strcmp(ex_DVD_MEMBERSHIP_NOSUCHMEMBER, CORBA_exception_id(&ev)))
      rc = DVD_ERR_NOT_FOUND;
  }
  CORBA_exception_free(&ev); 
  return rc;
}

int dvd_member_get_id_from_number(char *member_no, int *member_id)
{
  int rc = 0;
  DVD_MEMBERSHIP_memberidt cmemberid;
  /*  printf("dvd_member_get_id_from_number %s\n", member_no); */
  DVD_MEMBERSHIP_idfromnumber(membership, member_no, &cmemberid, &ev);
  switch (ev._major) {
  case CORBA_NO_EXCEPTION:
    *member_id = cmemberid;
    CORBA_exception_free(&ev); 
    /*    printf("result: %d\n", cmemberid); */
    rc = DVD_SUCCESS;
    break;
  case CORBA_SYSTEM_EXCEPTION:
    printf("Got CORBA exception %d/%d from DVD_MEMBERSHIP_delete", ev._major,
	   (int) CORBA_exception_value(&ev));
    rc = DVD_ERR_NOT_FOUND;
    break;
  case CORBA_USER_EXCEPTION:
    if (strcmp(ex_DVD_MEMBERSHIP_NOSUCHMEMBER, CORBA_exception_id(&ev))) {
      /*      CORBA_exception_free(&ev);  */
      printf("NOSUCHMEMBER Exception - %s\n", CORBA_exception_id(&ev));
      rc = DVD_ERR_NOT_FOUND;
      break;
    } else {
      printf("OTHER USER Exception! - %s\n", CORBA_exception_id(&ev));
      rc= DVD_ERR_NOT_FOUND;
      break;
    }
  }
  CORBA_exception_free(&ev); 
  if (rc != 0) 
    return rc;
  return DVD_SUCCESS;
}

int dvd_member_search(char *lname, int *result_ids[], int *count)
{
  DVD_MEMBERSHIP_memberidList *CList;
  int *results = NULL, i, rc=0;
  DVD_MEMBERSHIP_search(membership, lname, &CList, &ev);
  /* printf("Found... %d\n", CList->_length); */
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major,
	   CORBA_exception_id(&ev));
    rc = DVD_ERR_NOT_FOUND;
  }
  
  /* printf("No exception... Got some results...  Count: %d\n", CList->_length); */
  /* Alternatively, there _were_ good results in CList->.. */
  results=calloc(CList->_length, sizeof(int));  /* Hopefully something
						   later free()s the
						   contents of
						   results[] */ 
  /* printf("Allocated memory...\n"); */
  if (results == NULL) {
    return DVD_ERR_NO_MEMORY;
  }
  /* printf("Search results: "); */
  for (i = 0; i < CList->_length; i++) {
    /* printf(" %d %d ", i, CList->_buffer[i]); */
    results[i] = CList->_buffer[i];
  }
  CList->_release = TRUE;
  *result_ids = results;
  *count = CList->_length;
  CORBA_free(CList);
  return DVD_SUCCESS;
}

int dvd_title_set(dvd_title *inttl)
{
  DVD_TITLING_dvdtitles *ttlout;
  if(inttl == NULL)
    return DVD_ERR_NULL_POINTER;
 
  ttlout= DVD_TITLING_dvdtitles__alloc();
  ttlout->titleid = inttl->title_id;
  ttlout->titletext =inttl->title_text;
  ttlout->asin =inttl->asin;
  ttlout->director =inttl->director;
  ttlout->genre =inttl->genre;
  ttlout->classification =inttl->classification;
  ttlout->actor1 =inttl->actor1;
  ttlout->actor2 =inttl->actor2;
  ttlout->rentalcost = inttl->rental_cost;
  ttlout->releasedate = inttl->release_date;
  ttlout->image = inttl->image_ref;

  DVD_TITLING_set(titling, ttlout, &ev);
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major, 
	   CORBA_exception_id(&ev));
    CORBA_exception_free(&ev); 
    return DVD_SUCCESS;
  }
  return DVD_SUCCESS;
}

int dvd_title_get(int title_id, dvd_title *ttlneeded)
{
  int rc = DVD_SUCCESS;
  DVD_TITLING_titlet ttlid;
  DVD_TITLING_dvdtitles *ttlin;

  if(ttlneeded == NULL)
    return DVD_ERR_NULL_POINTER;
  ttlid = title_id;
  DVD_TITLING_get(titling, ttlid, &ttlin, &ev);
  switch (ev._major) {
  case CORBA_NO_EXCEPTION: 
    rc = 0;
    break;
  case CORBA_SYSTEM_EXCEPTION:
    printf("Got CORBA exception %d/%d from DVD_TITLING_get", ev._major,
	   (int) CORBA_exception_value(&ev));
    rc = DVD_ERR_NOT_FOUND;
    break;
  case CORBA_USER_EXCEPTION:
    printf("Error: %s\n", CORBA_exception_id(&ev));
    rc = DVD_ERR_NOT_FOUND;
    break;
  }
  CORBA_exception_free(&ev); 
  if (rc != 0)   /* If we had an exception above... */
    return rc;
  /* If the retrieved title id is not as expected there
     may be an error, or the member may be deleted */
  if(title_id != ttlin->titleid)
    return (int) DVD_ERR_NOT_FOUND;
  
  ttlneeded->title_id =  ttlin->titleid;
  strncpy(ttlneeded->title_text,   ttlin->titletext, 61);
  strncpy(ttlneeded->asin,   ttlin->asin, 11);
  strncpy(ttlneeded->director,   ttlin->director, 51);
  strncpy(ttlneeded->genre,   ttlin->genre, 21);
  strncpy(ttlneeded->classification,   ttlin->classification, 11);
  strncpy(ttlneeded->actor1,   ttlin->actor1, 51);
  strncpy(ttlneeded->actor2,   ttlin->actor2, 51);
  strncpy(ttlneeded->rental_cost,   ttlin->rentalcost, 7);
  strncpy(ttlneeded->release_date,   ttlin->releasedate, 9);
  strncpy(ttlneeded->image_ref,   ttlin->image, 128);
  CORBA_free(ttlin);

  /* printf("Title: %d %s %s %s %s\n", ttlneeded->title_id,
	 ttlneeded->title_text, ttlneeded->director,
	 ttlneeded->genre, ttlneeded->classification); */
  return DVD_SUCCESS;
}

int dvd_title_create(dvd_title *newtitle, int *title_id)
{
  DVD_TITLING_dvdtitles *ctitle;
  DVD_TITLING_titlet cttlid;
  if (newtitle == NULL)
    return DVD_ERR_NULL_POINTER;
  ctitle = DVD_TITLING_dvdtitles__alloc();
  ctitle->titleid = newtitle->title_id;
  ctitle->titletext =newtitle->title_text;
  ctitle->asin =newtitle->asin;
  ctitle->director =newtitle->director;
  ctitle->genre =newtitle->genre;
  ctitle->classification =newtitle->classification;
  ctitle->actor1 =newtitle->actor1;
  ctitle->actor2 =newtitle->actor2;
  ctitle->rentalcost = newtitle->rental_cost;
  ctitle->releasedate = newtitle->release_date;
  ctitle->image = newtitle->image_ref;

  DVD_TITLING_create(titling, ctitle, &cttlid, &ev);
  CORBA_free(ctitle);
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major, 
	   CORBA_exception_id(&ev));
    CORBA_exception_free(&ev); 
    return DVD_SUCCESS;
  }
  return DVD_SUCCESS;
}

int dvd_title_delete(int title_id)
{
  DVD_TITLING_titlet t;
  int rc=0;
  /* printf("dvd_titling_delete %d\n", title_id); */
  t = title_id;
  DVD_TITLING_delete(titling, t, &ev);
  /* Note that we've got about 4 lines of declarations and other "real
     code," and about 12 lines of "exception handling."  THIS is why
     exception handling in C is ugly */
  switch (ev._major) {
  case CORBA_NO_EXCEPTION: 
    rc = DVD_SUCCESS;
    break;
  case CORBA_SYSTEM_EXCEPTION:
    printf("Got CORBA exception %d/%d from DVD_TITLING_delete", ev._major,
	   (int) CORBA_exception_value(&ev));
    rc = DVD_ERR_NOT_FOUND;
    break;
  case CORBA_USER_EXCEPTION:
    if (strcmp(ex_DVD_TITLING_NOSUCHTITLE, CORBA_exception_id(&ev)))
      rc = DVD_ERR_NOT_FOUND;
  }
  CORBA_exception_free(&ev); 
  return rc;
}

int dvd_title_search(char *title, char *name, int *result_ids[], int *count)
{
  DVD_TITLING_titleList *CList;
  int *results = NULL, i;
  DVD_TITLING_search(titling, title, name, &CList, &ev);
  /* printf("Found... %d\n", CList->_length); */
  if (ev._major != CORBA_NO_EXCEPTION) {
    printf("Got CORBA exception %d/%s\n", ev._major,
	   CORBA_exception_id(&ev));
    CORBA_exception_free(&ev); 
    return DVD_ERR_NOT_FOUND;
  }
  /* printf("No exception... Got some results...  Count: %d\n", CList->_length); */
  /* Alternatively, there _were_ good results in CList->.. */
  results=calloc(CList->_length, sizeof(int));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产一区二区三区精品| 午夜精品福利久久久| 亚洲免费伊人电影| 午夜精品久久久久久久久久| 老司机午夜精品| 国产精品一区二区三区99| 成人禁用看黄a在线| 色哟哟一区二区在线观看| 欧美色图一区二区三区| 欧美精品一区二区三区蜜桃| 国产精品久久久久久久久晋中 | 中文字幕一区二区三中文字幕| 亚洲精品五月天| 欧美aⅴ一区二区三区视频| 国产精品综合av一区二区国产馆| 不卡视频免费播放| 日韩一区二区在线观看| 国产精品亲子乱子伦xxxx裸| 亚洲午夜在线观看视频在线| 狠狠色丁香久久婷婷综| 99精品视频在线观看| 91精品国产综合久久福利| 国产日韩精品一区二区浪潮av | 97久久超碰精品国产| 欧美日韩黄色一区二区| 国产丝袜欧美中文另类| 亚洲成人你懂的| 成人美女视频在线观看| 777a∨成人精品桃花网| 国产精品天美传媒沈樵| 麻豆专区一区二区三区四区五区| 成人av电影在线网| 日韩天堂在线观看| 亚洲乱码国产乱码精品精小说| 久久精品国产精品亚洲综合| 在线观看视频91| 国产欧美日韩在线视频| 日韩黄色免费电影| 99免费精品在线观看| 精品国产乱码久久| 亚洲无线码一区二区三区| 福利电影一区二区| 日韩视频免费观看高清完整版| 亚洲三级电影网站| 国产经典欧美精品| 日韩免费在线观看| 性做久久久久久免费观看欧美| 白白色 亚洲乱淫| 久久久另类综合| 另类小说欧美激情| 4438x亚洲最大成人网| 亚洲色图.com| 成人免费高清视频| 亚洲精品一区二区三区福利| 天堂av在线一区| 在线欧美日韩国产| 亚洲日穴在线视频| 99久久精品免费看国产| 中文字幕乱码一区二区免费| 激情图片小说一区| 日韩一区二区三区视频| 五月综合激情婷婷六月色窝| 色综合久久综合| 国产精品久久久一本精品 | 久久久av毛片精品| 久久电影网电视剧免费观看| 欧美精品一卡二卡| 亚洲第一电影网| 欧美综合色免费| 夜夜亚洲天天久久| 色哟哟国产精品| 亚洲女人****多毛耸耸8| 成人精品视频.| 国产精品三级视频| 成人免费毛片高清视频| 国产精品天天摸av网| 成人小视频免费观看| 国产午夜三级一区二区三| 国产一区二区免费视频| 国产日韩影视精品| 粉嫩13p一区二区三区| 久久精品视频在线免费观看 | 国产欧美日韩中文久久| 国产成人精品综合在线观看| 久久精品亚洲精品国产欧美| 高清不卡一区二区在线| 国产精品理伦片| 色综合色综合色综合| 一个色综合av| 欧美丰满嫩嫩电影| 蜜臀av亚洲一区中文字幕| 欧美v日韩v国产v| 国产麻豆精品95视频| 中文字幕精品一区二区精品绿巨人| 成人av在线播放网址| 亚洲国产成人一区二区三区| av网站一区二区三区| 亚洲综合免费观看高清完整版在线 | 99久久亚洲一区二区三区青草| 国产精品久久毛片av大全日韩| 91麻豆国产福利精品| 亚洲国产精品久久人人爱蜜臀| 欧美一区二区在线不卡| 久久99深爱久久99精品| 亚洲国产高清在线观看视频| 色诱亚洲精品久久久久久| 亚洲专区一二三| 精品美女被调教视频大全网站| 国产精品亚洲а∨天堂免在线| 综合色天天鬼久久鬼色| 欧美体内she精视频| 理论电影国产精品| 国产精品不卡在线观看| 欧美日韩国产片| 韩国视频一区二区| 国产精品国产自产拍高清av | 亚洲午夜视频在线观看| 日韩免费视频一区| av在线播放一区二区三区| 亚洲成人先锋电影| 欧美极品少妇xxxxⅹ高跟鞋| 在线观看成人免费视频| 蜜臀av性久久久久av蜜臀妖精| 国产免费成人在线视频| 欧美午夜电影在线播放| 国内精品伊人久久久久av一坑 | 99久久99久久精品免费看蜜桃 | 欧美伊人久久久久久午夜久久久久| 奇米一区二区三区| 国产精品美女久久久久久2018 | 五月天亚洲精品| 国产欧美日韩另类一区| 欧美三级电影网站| 福利91精品一区二区三区| 丝袜国产日韩另类美女| 国产精品系列在线| 欧美一区二区三区不卡| av欧美精品.com| 极品少妇一区二区| 亚洲丰满少妇videoshd| 国产精品美女久久久久久久久 | 亚洲国产婷婷综合在线精品| 欧美成人女星排行榜| 一本色道综合亚洲| 国产成a人亚洲精品| 蜜臀久久久久久久| 一区二区三区.www| 国产视频一区在线观看 | 精品一区二区三区在线播放 | 日本高清视频一区二区| 国产乱码字幕精品高清av| 日日噜噜夜夜狠狠视频欧美人 | 99热99精品| 国模少妇一区二区三区| 丝袜亚洲另类丝袜在线| 亚洲激情欧美激情| 欧美韩国一区二区| 精品国产乱码久久久久久久| 9191成人精品久久| 91成人免费在线| 99re8在线精品视频免费播放| 国产美女精品一区二区三区| 蜜桃视频一区二区三区| 亚洲国产一区二区在线播放| 亚洲欧洲制服丝袜| 国产精品高潮呻吟久久| 国产欧美va欧美不卡在线| 精品久久人人做人人爰| 日韩无一区二区| 日韩一区二区三区视频在线观看| 欧美午夜精品一区二区蜜桃| 色又黄又爽网站www久久| 99精品视频在线免费观看| 成人网页在线观看| 丁香天五香天堂综合| 国产乱妇无码大片在线观看| 激情小说亚洲一区| 久久成人精品无人区| 日本午夜精品视频在线观看| 亚洲成人av一区二区三区| 亚洲一区在线观看免费观看电影高清| 综合自拍亚洲综合图不卡区| 中文字幕一区二区三区在线不卡 | 国产乱码字幕精品高清av| 精彩视频一区二区三区| 韩国av一区二区| 国产一区二区免费看| 国产精品中文字幕日韩精品| 国产精品一区二区不卡| 国产成人精品www牛牛影视| 国产在线国偷精品免费看| 国内精品免费**视频| 国产乱码精品1区2区3区| 国产成a人无v码亚洲福利| 成人毛片在线观看| 色综合av在线| 欧美放荡的少妇| 精品国产伦一区二区三区观看方式| 欧美v国产在线一区二区三区| 2020国产精品自拍|