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

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

?? symbol2.c

?? linux下開發的soap協議。建議大家學習學習!
?? C
?? 第 1 頁 / 共 5 頁
字號:
      if (p->info.typ->type == Tfun && has_ns_eq(ns, p->sym->name))      { fprintf(fd, " <operation name=\"%s\">\n  <documentation>Service definition of function %s</documentation>\n  <input message=\"tns:%sRequest\"/>\n", ns_remove(p->sym->name), p->sym->name, ns_remove(p->sym->name));	q = (Entry*)p->info.typ->ref;	if (q && is_transient(q->info.typ))	  ;	else if (q && !is_response(q->info.typ))	  fprintf(fd, "  <output message=\"tns:%sResponse\"/>\n", ns_remove(p->sym->name));        else if (q)	  fprintf(fd, "  <output message=\"tns:%s\"/>\n", ns_remove(((Tnode*)q->info.typ->ref)->id->name));        fprintf(fd, " </operation>\n");      }    fprintf(fd, "</portType>\n\n");    if (encoding && !strcmp(encoding, "literal"))      fprintf(fd, "<binding name=\"%sBinding\" type=\"tns:%sPortType\">\n <SOAP:binding style=\"document\" transport=\"http://schemas.xmlsoap.org/soap/http\"/>\n", name, name);    else      fprintf(fd, "<binding name=\"%sBinding\" type=\"tns:%sPortType\">\n <SOAP:binding style=\"rpc\" transport=\"http://schemas.xmlsoap.org/soap/http\"/>\n", name, name);    fflush(fd);    for (p = t->list; p; p = p->next)      if (p->info.typ->type == Tfun && has_ns_eq(ns, p->sym->name))      { fprintf(fd, " <operation name=\"%s\">\n", ns_remove(p->sym->name));        if (encoding && !strcmp(encoding, "literal"))          fprintf(fd, "  <SOAP:operation soapAction=\"%s#%s\" style=\"document\"/>\n", URI, ns_remove(p->sym->name));	else          fprintf(fd, "  <SOAP:operation soapAction=\"%s#%s\"/>\n", URI, ns_remove(p->sym->name));  	q = entry(classtable, p->sym);  	if (encoding && !strcmp(encoding, "literal") || q && (q = (((Table*)q->info.typ->ref)->list)) && q && is_XML(q->info.typ))	  fprintf(fd, "  <input>\n   <SOAP:body use=\"literal\"/>\n");        else if (encoding)	  fprintf(fd, "  <input>\n   <SOAP:body use=\"encoded\" namespace=\"%s\" encodingStyle=\"%s\"/>\n", URI, encoding);        else	  fprintf(fd, "  <input>\n   <SOAP:body use=\"encoded\" namespace=\"%s\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"/>\n", URI);	if (custom_header)	{ Method *m = NULL;	  int f = 0;	  char *s;	  if (sp && (s = strstr(p->sym->name, "__")))	    for (m = sp->list; m; m = m->next)	      if (!strcmp(m->name, s+2) && (m->mess&HDRIN))	      { f = 1;	        fprintf(fd, "   <SOAP:header use=\"encoded\" namespace=\"%s\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" message=\"tns:%sHeader\" part=\"%s\"/>\n", nsofhdr(m->part), name, ns_remove(m->part));	      }	  if (!f && !sp)	    fprintf(fd, "   <SOAP:header use=\"encoded\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" message=\"tns:%sHeader\"/>\n", name);	}	if (custom_fault)	  fprintf(fd, "   <SOAP:fault use=\"encoded\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" message=\"tns:%sFault\"/>\n", name);	fprintf(fd, "  </input>\n");	q = (Entry*)p->info.typ->ref;	if (!q || !q->info.typ->ref)	{ fprintf(fd, " </operation>\n");	  continue;	}	if (encoding && !strcmp(encoding, "literal") || is_XML(q->info.typ->ref))	  fprintf(fd, "  <output>\n   <SOAP:body use=\"literal\"/>\n");	else if (encoding)	  fprintf(fd, "  <output>\n   <SOAP:body use=\"encoded\" namespace=\"%s\" encodingStyle=\"%s\"/>\n", URI, encoding);	else	  fprintf(fd, "  <output>\n   <SOAP:body use=\"encoded\" namespace=\"%s\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"/>\n", URI);	if (custom_header)	{ Method *m = NULL;	  int f = 0;	  char *s;	  if (sp && (s = strstr(p->sym->name, "__")))	    for (m = sp->list; m; m = m->next)	      if (!strcmp(m->name, s+2) && (m->mess&HDROUT))	      { f = 1;	        fprintf(fd, "   <SOAP:header use=\"encoded\" namespace=\"%s\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" message=\"tns:%sHeader\" part=\"%s\"/>\n", nsofhdr(m->part), name, ns_remove(m->part));	      }	  if (!f & !sp)	    fprintf(fd, "   <SOAP:header use=\"encoded\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" message=\"tns:%sHeader\"/>\n", name);	}	if (custom_fault)	  fprintf(fd, "   <SOAP:fault use=\"encoded\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" message=\"tns:%sFault\"/>\n", name);	fprintf(fd, "  </output>\n </operation>\n");        fflush(fd);      }    fprintf(fd, "</binding>\n\n");  }  fprintf(fd, "<service name=\"%s\">\n <documentation>gSOAP "VERSION" generated service definition</documentation>\n <port name=\"%sPort\" binding=\"tns:%sBinding\">\n  <SOAP:address location=\"%s/%s\"/>\n </port>\n</service>\n\n</definitions>\n", name, name, name, URL, executable);}voidgen_schema(FILE *fd, Table *t, char *ns1, char *ns, int all, int wsdl, char *URL){ int i, d;  char cbuf[4];  Entry *p, *q;  Tnode *n;  Symbol *s;  Service *sp;  fprintf(fd, " <schema\n  xmlns=\"http://www.w3.org/2001/XMLSchema\"\n  xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"\n  xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\"\n");  for (sp = services; sp; sp = sp->next)    if (!strcmp(sp->ns, ns) && sp->URI)      break;  if (sp)    fprintf(fd, "  targetNamespace=\"%s\"", sp->URI);  else    fprintf(fd, "  targetNamespace=\"%s/%s.xsd\"", URL, ns_convert(ns));  for (s = nslist; s; s = s->next)  { for (sp = services; sp; sp = sp->next)      if (!strcmp(sp->ns, s->name) && sp->URI)        break;    if (sp)      fprintf(fd, "\n  xmlns:%s=\"%s\"", ns_convert(s->name), sp->URI);    else      fprintf(fd, "\n  xmlns:%s=\"%s/%s.xsd\"", ns_convert(s->name), URL, ns_convert(s->name));  }  fprintf(fd, ">\n\n");  if (typetable)    for (p = typetable->list; p; p = p->next)    { if (!is_transient(p->info.typ) && ((has_ns_eq(ns, p->sym->name))))      { fprintf(fd, "  <simpleType name=\"%s\">\n   <restriction base=\"xsd:%s\">\n", ns_remove(p->sym->name), the_type(p->info.typ));        fprintf(fd, "   </restriction>\n  </simpleType>\n\n");      }    }  if (enumtable)    for (p = enumtable->list; p; p = p->next)    { if (!is_transient(p->info.typ) && (!has_ns(p->info.typ) && all || has_ns_eq(ns, p->sym->name)))      { if (is_mask(p->info.typ))        { fprintf(fd, "  <simpleType name=\"%s\">\n   <list>\n    <restriction base=\"xsd:string\">\n", wsdl_type(p->info.typ, NULL));          if ((Table*)p->info.typ->ref)            for (q = ((Table*)p->info.typ->ref)->list; q; q = q->next)              fprintf(fd, "     <enumeration value=\"%s\"/>\n", ns_convert(q->sym->name));          fprintf(fd, "    </restriction>\n   </list>\n  </simpleType>\n\n");	}	else        { fprintf(fd, "  <simpleType name=\"%s\">\n   <restriction base=\"xsd:string\">\n", wsdl_type(p->info.typ, NULL));          if ((Table*)p->info.typ->ref)            for (q = ((Table*)p->info.typ->ref)->list; q; q = q->next)              fprintf(fd, "    <enumeration value=\"%s\"/>\n", ns_convert(q->sym->name));          fprintf(fd, "   </restriction>\n  </simpleType>\n\n");        }      }    }  if (classtable)    for (p = classtable->list; p; p = p->next)      if (p->info.typ->ref && !is_transient(p->info.typ) && !is_binary(p->info.typ) && !is_primclass(p->info.typ))      { q = ((Table*)p->info.typ->ref)->list;        if (entry(t, p->sym) && q && !is_XML(q->info.typ))          ;        else if (is_dynamic_array(p->info.typ))          if (!has_ns(p->info.typ) && !is_untyped(p->info.typ))          { if (all)	      if (wsdl)	      { d = get_Darraydims(p->info.typ)-1;	        for (i = 0; i < d; i++)	          cbuf[i] = ',';	        cbuf[i] = '\0';	        fprintf(fd, "  <complexType name=\"%s\">\n   <complexContent>\n    <restriction base=\"SOAP-ENC:Array\">\n     <element name=\"%s\" type=\"%s\" maxOccurs=\"unbounded\"/>\n     <attribute ref=\"SOAP-ENC:arrayType\" WSDL:arrayType=\"%s[%s]\"/>\n    </restriction>\n   </complexContent>\n  </complexType>\n\n", wsdl_type(p->info.typ, NULL), q->sym->name[5]?ns_convert(q->sym->name+5):"item", wsdl_type(q->info.typ, ns1), wsdl_type(q->info.typ, ns1), cbuf);	      }              else	        fprintf(fd, "  <complexType name=\"%s\">\n   <complexContent>\n    <restriction base=\"SOAP-ENC:Array\">\n     <element name=\"%s\" type=\"%s\" maxOccurs=\"unbounded\"/>\n    </restriction>\n   </complexContent>\n  </complexType>\n\n", wsdl_type(p->info.typ, NULL), q->sym->name[5]?ns_convert(q->sym->name+5):"item", wsdl_type(q->info.typ, ns1));          }	  else	  { fprintf(fd, "  <complexType name=\"%s\">\n   <sequence>\n    <element name=\"%s\" type=\"%s\" minOccurs=\"0\" maxOccurs=\"unbounded\" nillable=\"true\"/>\n   </sequence>\n  </complexType>\n\n", ns_remove(p->sym->name), q->sym->name[5]?ns_convert(q->sym->name+5):"item", wsdl_type(q->info.typ, ns1));	  }        else if (p->info.typ->type == Tstruct && (!has_ns(p->info.typ) && all || has_ns_eq(ns, p->sym->name)))        { if (p->info.typ->ref)          { fprintf(fd, "  <complexType name=\"%s\">\n   <all>\n", ns_remove(p->sym->name));            for (q = ((Table*)p->info.typ->ref)->list; q; q = q->next)	      if (is_transient(q->info.typ) || q->info.typ->type == Tfun)	        continue;	      else if (is_repetition(q))              { if (((Tnode*)q->next->info.typ->ref)->type == Tpointer)	          if (q->info.maxOccurs == 1)		    fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"0\" maxOccurs=\"unbounded\" nillable=\"true\"/>\n", ns_convert(q->next->sym->name), wsdl_type(q->next->info.typ->ref, ns1));                  else		    fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\" nillable=\"true\"/>\n", ns_convert(q->next->sym->name), wsdl_type(q->next->info.typ->ref, ns1), q->info.minOccurs, q->info.maxOccurs);                else	          if (q->info.maxOccurs == 1)	            fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"0\" maxOccurs=\"unbounded\"/>\n", ns_convert(q->next->sym->name), wsdl_type(q->next->info.typ->ref, ns1));		  else	            fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\"/>\n", ns_convert(q->next->sym->name), wsdl_type(q->next->info.typ->ref, ns1), q->info.minOccurs, q->info.maxOccurs);	        q = q->next;	      }              else if (q->info.typ->type == Tpointer || q->info.typ->type == Tarray || is_dynamic_array(q->info.typ))                fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\" nillable=\"true\"/>\n", ns_convert(q->sym->name), wsdl_type(q->info.typ, ns1), q->info.minOccurs, q->info.maxOccurs);	      else                fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\"/>\n", ns_convert(q->sym->name), wsdl_type(q->info.typ, ns1), q->info.minOccurs, q->info.maxOccurs);            fprintf(fd, "   </all>\n  </complexType>\n\n");          }        }        else if (p->info.typ->type == Tclass && (!has_ns(p->info.typ) && all || has_ns_eq(ns, p->sym->name)))        { if (p->info.typ->ref)            if (((Table*)p->info.typ->ref)->prev && !is_transient(entry(classtable, ((Table*)p->info.typ->ref)->prev->sym)->info.typ))            { fprintf(fd, "  <complexType name=\"%s\">\n   <complexContent>\n    <extension base=\"%s\">\n     <sequence>\n", ns_remove(p->sym->name), ns_convert(((Table*)p->info.typ->ref)->prev->sym->name));              for (q = ((Table*)p->info.typ->ref)->list; q; q = q->next)	        if (is_transient(q->info.typ) || q->info.typ->type == Tfun)	          continue;	        else if (is_repetition(q))                { if (((Tnode*)q->next->info.typ->ref)->type == Tpointer)	            if (q->info.maxOccurs == 1)                      fprintf(fd, "     <element name=\"%s\" type=\"%s\" minOccurs=\"0\" maxOccurs=\"unbounded\" nillable=\"true\"/>\n", ns_overridden(p->info.typ->ref, q->next), wsdl_type(q->next->info.typ->ref, ns1));		    else                      fprintf(fd, "     <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\" nillable=\"true\"/>\n", ns_overridden(p->info.typ->ref, q->next), wsdl_type(q->next->info.typ->ref, ns1), q->info.minOccurs, q->info.maxOccurs);		  else	            if (q->info.maxOccurs == 1)                      fprintf(fd, "     <element name=\"%s\" type=\"%s\" minOccurs=\"0\" maxOccurs=\"unbounded\"/>\n", ns_overridden(p->info.typ->ref, q->next), wsdl_type(q->next->info.typ->ref, ns1));		    else                      fprintf(fd, "     <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\"/>\n", ns_overridden(p->info.typ->ref, q->next), wsdl_type(q->next->info.typ->ref, ns1), q->info.minOccurs, q->info.maxOccurs);	          q = q->next;	        }                else if (q->info.typ->type == Tpointer || q->info.typ->type == Tarray || is_dynamic_array(q->info.typ))                  fprintf(fd, "      <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\" nillable=\"true\"/>\n", ns_overridden(p->info.typ->ref, q), wsdl_type(q->info.typ, ns1), q->info.minOccurs, q->info.maxOccurs);	        else	          fprintf(fd, "      <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\"/>\n", ns_overridden(p->info.typ->ref, q), wsdl_type(q->info.typ, ns1), q->info.minOccurs, q->info.maxOccurs);              fprintf(fd, "     </sequence>\n    </extension>\n   </complexContent>\n  </complexType>\n\n");	    }	    else            { fprintf(fd, "  <complexType name=\"%s\">\n   <sequence>\n", ns_remove(p->sym->name));              for (q = ((Table*)p->info.typ->ref)->list; q; q = q->next)	        if (is_transient(q->info.typ) || q->info.typ->type == Tfun)	          continue;	        else if (is_repetition(q))                { if (((Tnode*)q->next->info.typ->ref)->type == Tpointer)                    fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"0\" maxOccurs=\"unbounded\" nillable=\"true\"/>\n", ns_convert(q->next->sym->name), wsdl_type(q->next->info.typ->ref, ns1));		  else                    fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"0\" maxOccurs=\"unbounded\"/>\n", ns_convert(q->next->sym->name), wsdl_type(q->next->info.typ->ref, ns1));	          q = q->next;	        }                else if (q->info.typ->type == Tpointer || q->info.typ->type == Tarray || is_dynamic_array(q->info.typ))                  fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\" nillable=\"true\"/>\n", ns_convert(q->sym->name), wsdl_type(q->info.typ, ns1), q->info.minOccurs, q->info.maxOccurs);	        else                  fprintf(fd, "    <element name=\"%s\" type=\"%s\" minOccurs=\"%d\" maxOccurs=\"%d\"/>\n", ns_convert(q->sym->name), wsdl_type(q->info.typ, ns1), q->info.minOccurs, q->info.maxOccurs);              fprintf(fd, "   </sequence>\n  </complexType>\n\n");            }        }      }  for (n = Tptr[Tarray]; n; n = n->next)  { if (is_transient(n))      continue;    else if (wsdl)      fprintf(fd, "  <complexType name=\"%s\">\n   <complexContent>\n    <restriction base=\"SOAP-ENC:Array\">\n     <attribute ref=\"SOAP-ENC:arrayType\" WSDL:arrayType=\"%s\"/>\n    </restriction>\n   </complexContent>\n  </complexType>\n\n", c_ident(n), xsi_type(n));    else      fprintf(fd, "  <complexType name=\"%s\">\n   <complexContent>\n    <restriction base=\"SOAP-ENC:Array\">\n     <element name=\"item\" type=\"%s\" maxOccurs=\"unbounded\"/>\n    </restriction>\n   </complexContent>\n  </complexType>\n\n", c_ident(n), xsi_type(n->ref));  }  fprintf(fd, " </schema>\n");}char *emalloc(unsigned int n){ char	*p;  if ((p = (char*)malloc(n)) == (char*)0)    execerror("out of memory");  return p;}voidfunction_input_output(Table *table){  int i=1;  Entry * p;  fprintf(fserver,"\n\nSOAP_FMAC1 int SOAP_FMAC2 soap_serve(struct soap *soap)\n{");   fprintf(fserver,"\n\tsoap_begin(soap);");  fprintf(fserver,"\n\tsoap_fault(soap);");  fprintf(fserver,"\n\tif (soap_begin_recv(soap) || soap_envelope_begin_in(soap) || soap_recv_header(soap) || soap_body_begin_in(soap))\n\t\treturn soap_send_fault(soap);");  for (p = table->list; p != (Entry*) 0; p = p->next)    {      if(p->info.typ->type==Tfun)	{              	  if(i == 1){	    /* First method to be called */	    fprintf(fserver,"\n\n\tsoap->error = soap_serve_%s(soap);", p->sym->name);   	  }	  else{	    /* Methods following other methods */	    fprintf(fserver,"\n\tif (soap->error == SOAP_NO_METHOD)");	    fprintf(fserver,"\n\t\tsoap_serve_%s(soap);", p->sym->name);	  }	  i++;	}    }    fprintf(fserver,"\n\tif (soap->error)");  fprintf(fserver,"\n\t\treturn soap_send_fault(soap);");  fprintf(fserver,"\n\treturn soap->error;");  fprintf(fserver,"\n}");    fprintf(fheader, "\n\n/* Remote Methods */");  for (p = table->list; p != (Entry*) 0; p = p->next)    if(p->info.typ->type==Tfun)	generate_proto(table, p);  fprintf(fheader, "\n\n/* Stubs */");  for (p = table->list; p != (Entry*) 0; p = p->next)    if(p->info.typ->type==Tfun)	generate_call(table, p);  fprintf(fheader, "\n\n/* Skeletons */");  for (p = table->list; p != (Entry*) 0; p = p->next)    if(p->info.typ->type==Tfun)	generate_server(table, p);}voidgenerate_proto(Table *table, Entry *param){ Entry *pin,*q,*pout;  Table *output,*t;  q=entry(table, param->sym);  if (q)    pout = (Entry*)q->info.typ->ref;  else	fprintf(stderr, "Internal error: no table entry\n");  q=entry(classtable, param->sym);  output=(Table*) q->info.typ->ref;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品一区二区麻豆亚洲| 久久国产精品第一页| 亚洲综合图片区| 日韩精品视频网| 国产米奇在线777精品观看| 成人一二三区视频| 欧美综合天天夜夜久久| 91精品国产乱码| 国产精品久久网站| 亚洲欧美一区二区三区国产精品| 亚洲电影第三页| 国产福利一区二区三区| 日本韩国一区二区| 久久综合av免费| 亚洲一区二区成人在线观看| 国产一区二区三区在线观看免费视频| 99re热这里只有精品视频| 欧美怡红院视频| 久久久久国产精品厨房| 亚洲图片一区二区| 国产精品91xxx| 777精品伊人久久久久大香线蕉| 久久久久青草大香线综合精品| 亚洲永久精品大片| www.日韩精品| 久久综合色鬼综合色| 亚洲成人第一页| 成人福利电影精品一区二区在线观看| 欧美精品少妇一区二区三区| 久久精品视频网| 日韩成人午夜电影| 在线看日韩精品电影| 亚洲国产经典视频| 久久99精品一区二区三区| 欧美三级韩国三级日本三斤| 国产精品入口麻豆原神| 黄色成人免费在线| 欧美哺乳videos| 玉足女爽爽91| 99精品视频免费在线观看| 国产欧美中文在线| 国产一区二区免费看| 欧美一区二区三区的| 亚洲第一福利一区| 欧美中文一区二区三区| 综合久久久久久久| 国产精品乡下勾搭老头1| 久久久不卡网国产精品二区| 轻轻草成人在线| 日韩精品一区二区三区在线观看| 午夜免费久久看| 制服.丝袜.亚洲.中文.综合| 亚洲欧洲精品一区二区三区 | 亚洲最新视频在线播放| 日一区二区三区| 欧美区在线观看| 日韩高清在线观看| 91精品在线麻豆| 久久精品99国产精品| 欧日韩精品视频| 天天综合色天天综合| 69堂成人精品免费视频| 五月天激情小说综合| 91麻豆精品国产91| 久久99精品视频| 国产午夜久久久久| 波波电影院一区二区三区| 中文字幕欧美一| 99视频热这里只有精品免费| 久久免费精品国产久精品久久久久| 国产在线播精品第三| 26uuu欧美| 国内成人免费视频| 国产精品毛片无遮挡高清| 色综合激情久久| 视频一区在线播放| 久久女同精品一区二区| www.亚洲在线| 五月天婷婷综合| 国产日韩欧美精品电影三级在线| 成人三级伦理片| 亚洲第一福利视频在线| 欧美成人性福生活免费看| 成人一区二区在线观看| 亚洲妇熟xx妇色黄| 91麻豆精品国产自产在线观看一区| 美腿丝袜亚洲综合| 国产精品美女久久福利网站| 欧美浪妇xxxx高跟鞋交| 韩国v欧美v日本v亚洲v| 国产欧美一区二区精品性色超碰| 色偷偷久久人人79超碰人人澡| 天堂久久久久va久久久久| 国产午夜亚洲精品羞羞网站| 欧美视频在线播放| 久久精品久久精品| 亚洲精品成人在线| 久久久99久久精品欧美| 欧美精品久久天天躁| 丰满少妇久久久久久久| 亚洲女爱视频在线| 日韩精品一区二区三区蜜臀| 国产成人99久久亚洲综合精品| 午夜伦理一区二区| 亚洲欧美日韩精品久久久久| 日韩欧美在线影院| 色婷婷久久一区二区三区麻豆| 国产在线不卡一卡二卡三卡四卡| 亚洲午夜一二三区视频| 国产精品污www在线观看| 日韩一区二区免费视频| 91毛片在线观看| 福利电影一区二区三区| 麻豆精品在线观看| 亚洲一二三级电影| 一区二区中文视频| 久久精品视频免费观看| 欧美视频自拍偷拍| 91啪九色porn原创视频在线观看| 国产99久久精品| 国产在线精品一区二区夜色| 日本欧美一区二区在线观看| 亚洲福利视频一区| 一二三四区精品视频| 免费观看成人鲁鲁鲁鲁鲁视频| 国产精品青草久久| 成人免费一区二区三区在线观看| 久久久www成人免费毛片麻豆| 日韩欧美色综合| 欧美一区二区视频在线观看2020| 欧美伊人精品成人久久综合97| 99精品国产99久久久久久白柏 | 精品久久久久久久久久久久包黑料| 色婷婷亚洲婷婷| 国产精品1区二区.| 国产成人午夜99999| 国产伦精品一区二区三区免费迷 | 欧美一激情一区二区三区| 欧美日韩一区二区三区视频| 色呦呦一区二区三区| 99精品在线观看视频| 99久久婷婷国产综合精品电影| 成人性生交大片免费看视频在线 | 久久一区二区三区四区| 精品国产一区二区三区四区四| 欧美tk—视频vk| 精品国产免费视频| 亚洲国产激情av| 亚洲色图19p| 一区二区三区精品在线| 午夜精品久久久久久久| 青青草91视频| 高清av一区二区| 欧美在线free| 欧美一级片免费看| 欧美精品一区二区三区在线播放| 中文字幕乱码亚洲精品一区| 中文字幕一区二区三区四区| 久久精品日韩一区二区三区| 日本一区二区三区高清不卡| 亚洲免费观看高清完整版在线| 亚洲成av人片| 国产成人av影院| 欧洲一区二区三区免费视频| 91精品久久久久久久久99蜜臂| 久久免费精品国产久精品久久久久| 国产欧美一区二区精品婷婷| 亚洲人成网站影音先锋播放| 日韩av在线免费观看不卡| 国产一区二区看久久| 色天使久久综合网天天| 日韩午夜激情视频| 中文字幕一区二区在线播放| 中文字幕一区二区三区在线观看 | 国产成人免费av在线| 91成人在线精品| 精品盗摄一区二区三区| 午夜日韩在线电影| 色婷婷亚洲综合| 自拍视频在线观看一区二区| 国内精品写真在线观看| 欧美久久久一区| 亚洲综合在线免费观看| 成人免费毛片嘿嘿连载视频| 精品成人一区二区三区| 日本中文一区二区三区| 在线视频中文字幕一区二区| 亚洲欧美在线另类| 成人一道本在线| 国产精品网友自拍| 国产91精品入口| 日本一区二区视频在线| 国产成人免费在线观看| 久久久久久亚洲综合| 美女视频一区在线观看| 7777精品伊人久久久大香线蕉最新版 | 不卡的看片网站| 国产精品久久三区| av一区二区三区黑人| 国产视频一区在线观看|