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

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

?? stdsoap2.c

?? linux下開發的soap協議。建議大家學習學習!
?? C
?? 第 1 頁 / 共 5 頁
字號:
    *q = ip->ptr;    q = (void**)p;  }}/******************************************************************************/static voidsoap_resolve_copy(struct soap *soap, struct soap_ilist *ip){ void *p, **q;  q = (void**)ip->copy;  DBGLOG(TEST, if (q) SOAP_MESSAGE(fdebug,"\nTraversing copy chain to resolve type %s", ip->id));  ip->copy = NULL;  while (q)   { DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nstep... move %p -> %p (%d bytes)", ip->ptr, q, ip->size));    p = *q;    soap_update_ptrs(soap, (char*)q, (char*)q + ip->size, (char*)q - (char*)ip->ptr);    memcpy(q, ip->ptr, ip->size);    q = (void**)p;  }}/******************************************************************************/SOAP_FMAC1voidSOAP_FMAC2soap_store_block(struct soap *soap, char *p){ size_t n;  int i;  char *q, *s;  struct soap_blist *bp;  struct soap_ilist *ip;  DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nStore all blocks, size = %d (%p->%p)", soap->blist->size, soap->blist->ptr, p));  if (soap->blist->ptr)  { n = *((size_t*)(soap->blist->ptr + sizeof(char*)));    if (p)    { if (n)        n = soap->blist->size % n;      p += soap->blist->size - n;  DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nNo fit: start at the end (%p) remainder = %d", p, n));      s = soap->blist->ptr + sizeof(char*) + sizeof(size_t);      DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nCopy %d (%p->%p)", n, s, p));      if (n)      { soap_update_ptrs(soap, s, s+n, p-s);        memcpy(p, s, n);      }      q = *((char**)soap->blist->ptr);      free(soap->blist->ptr);      DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nCopying into contiguous area..."));      for (soap->blist->ptr = q; soap->blist->ptr; soap->blist->ptr = q)      { q = *((char**)soap->blist->ptr);        n = *((size_t*)(soap->blist->ptr + sizeof(char*)));        p -= n;        s = soap->blist->ptr + sizeof(char*) + sizeof(size_t);        DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nCopy %d (%p->%p)", n, s, p));        soap_update_ptrs(soap, s, s+n, p-s);        memcpy(p, s, n);        free(soap->blist->ptr);      }    }    DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nEnd of block sequence"));  }  bp = soap->blist;  soap->blist = soap->blist->next;  free(bp);  DBGLOG(TEST, if (soap->blist) SOAP_MESSAGE(fdebug,"\nRestore previous block sequence size=%d", soap->blist->size));  if (!soap->blist)  { /* get "delayed" backward pointers resolved NOW, instead of later */    for (i = 0; i < SOAP_IDHASH; i++)      for (ip = soap->iht[i]; ip; ip = ip->next)        if (ip->ptr)          soap_resolve_ptr(ip);  }}/******************************************************************************/SOAP_FMAC1intSOAP_FMAC2soap_push_namespace(struct soap *soap, const char *id, const char *ns){ int i;  struct soap_nlist *np = (struct soap_nlist*)malloc(sizeof(struct soap_nlist));  if (!np)    return SOAP_EOM;  np->level = soap->level;  np->next = soap->nlist;  soap->nlist = np;  np->id = (char*)malloc(strlen(id)+1);  if (!np->id)    return SOAP_EOM;  strcpy(np->id, id);  np->index = -1;  DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nPush namespace binding (level=%d) '%s' '%s'", soap->level, id, ns));  for (i = 0; soap->namespaces[i].id; i++)  { if (soap->namespaces[i].ns)      if (!soap_tag_cmp(ns, soap->namespaces[i].ns))        break;    if (soap->namespaces[i].in)      if (!soap_tag_cmp(ns, soap->namespaces[i].in))      { if (soap->namespaces[i].out)          free(soap->namespaces[i].out);        if ((soap->namespaces[i].out = (char*)malloc(strlen(ns)+1)))          strcpy(soap->namespaces[i].out, ns);        break;      }  }  if (soap->namespaces[i].id)  { DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nPush OK (match=%s)", soap->namespaces[i].id));    np->index = i;  }  else  { DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nPush NOT OK: no match found in namespace mapping table"));  }  return SOAP_OK;}/******************************************************************************/SOAP_FMAC1voidSOAP_FMAC2soap_pop_namespace(struct soap *soap){ struct soap_nlist *np;  while (soap->nlist && soap->nlist->level == soap->level)  { np = soap->nlist->next;    DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nPopped namespace binding (level=%d) '%s'", soap->level, soap->nlist->id));    free(soap->nlist->id);    free(soap->nlist);    soap->nlist = np;  }}/******************************************************************************/SOAP_FMAC1intSOAP_FMAC2soap_match_namespace(struct soap *soap, const char *id1, const char *id2, int n1, int n2) { struct soap_nlist *np = soap->nlist;  while (np && (strncmp(np->id, id1, n1) || np->id[n1]))    np = np->next;  if (np)  { if (np->index < 0 || (np->index >= 0 && soap->namespaces[np->index].id && (strncmp(soap->namespaces[np->index].id, id2, n2) || soap->namespaces[np->index].id[n2])))      return SOAP_NAMESPACE;    return SOAP_OK;  }  return SOAP_SYNTAX_ERROR; }/******************************************************************************/SOAP_FMAC1intSOAP_FMAC2soap_match_tag(struct soap *soap, const char *tag1, const char *tag2){ const char *s, *t;  if (tag1 == NULL || tag2 == NULL)    return SOAP_OK;  s = strchr(tag1, ':');  t = strchr(tag2, ':');  if (s)  { if (t)    { if (soap_match_namespace(soap, tag1, tag2, s-tag1, t-tag2))      { DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nNamespace mismatch in tag comparison: '%s' '%s'", tag1, tag2));	return SOAP_TAG_MISMATCH;      }      t++;    }     else      t = tag2;    s++;  }  else if (t)  { s = tag1;    t++;  }  else  { s = tag1;    t = tag2;  }  if (soap_tag_cmp(s, t))    return SOAP_TAG_MISMATCH;  DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nTags match: '%s' '%s'", tag1, tag2));  return SOAP_OK;}/******************************************************************************/SOAP_FMAC1intSOAP_FMAC2soap_match_array(struct soap *soap, const char *type){ if (*soap->type && *soap->arrayType)    if (soap_match_tag(soap, soap->arrayType, type)     && soap_match_tag(soap, soap->arrayType, "xsd:anyType")     && soap_match_tag(soap, soap->arrayType, "xsd:ur-type")    )    { DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nArray type mismatch: '%s' '%s'", soap->arrayType, type));      return SOAP_TAG_MISMATCH;    }  return SOAP_OK;}/******************************************************************************/#ifdef WITH_OPENSSL/******************************************************************************/static intssl_init(){ static int done = 0;  if (done)    return 0;  done = 1;  SSL_library_init();  SSL_load_error_strings();  soap_ssl_ctx = SSL_CTX_new(SSLv23_method());  return !soap_ssl_ctx;}/******************************************************************************/static const char *ssl_error(struct soap *soap, int ret){ switch (SSL_get_error(soap->ssl, ret))  { #ifdef SSL_ERROR_NONE    case SSL_ERROR_NONE:      return "SSL_ERROR_NONE";#endif#ifdef SSL_ERROR_ZERO_RETURN    case SSL_ERROR_ZERO_RETURN:      return "SSL_ERROR_ZERO_RETURN";#endif#ifdef SSL_ERROR_WANT_READ    case SSL_ERROR_WANT_READ:      return "SSL_ERROR_WANT_READ";#endif#ifdef SSL_ERROR_WANT_WRITE    case SSL_ERROR_WANT_WRITE:      return "SSL_ERROR_WANT_WRITE";#endif#ifdef SSL_ERROR_WANT_CONNECT    case SSL_ERROR_WANT_CONNECT:      return "SSL_ERROR_WANT_CONNECT";#endif#ifdef SSL_ERROR_WANT_ACCEPT    case SSL_ERROR_WANT_ACCEPT:      return "SSL_ERROR_WANT_ACCEPT";#endif#ifdef SSL_ERROR_WANT_X509_LOOKUP    case SSL_ERROR_WANT_X509_LOOKUP:      return "SSL_ERROR_WANT_X509_LOOKUP";#endif#ifdef SSL_ERROR_SYSCALL    case SSL_ERROR_SYSCALL:      return "SSL_ERROR_SYSCALL";#endif#ifdef SSL_ERROR_SSL    case SSL_ERROR_SSL:      return "SSL_ERROR_SSL";#endif  }  return "Unknown SSL error";}/******************************************************************************/static intfpassword(char *buf, int num, int rwflag, void *userdata){ if (num < strlen(soap_ssl_pw)+1)    return(0);  strcpy(buf, soap_ssl_pw);  return strlen(soap_ssl_pw);}/******************************************************************************/static intssl_auth_init(struct soap *soap){ ssl_init();  if (soap->keyfile)    if (!(SSL_CTX_use_certificate_chain_file(soap_ssl_ctx, soap->keyfile)))    { *soap_faultcode(soap) = "SOAP-ENV:Server";      *soap_faultstring(soap) = "Can't read certificate file";      return SOAP_SSL_ERROR;    }  if (soap->password && soap->keyfile)  { soap_ssl_pw = soap->password;    SSL_CTX_set_default_passwd_cb(soap_ssl_ctx, fpassword);    if (!(SSL_CTX_use_PrivateKey_file(soap_ssl_ctx, soap->keyfile, SSL_FILETYPE_PEM)))    { *soap_faultcode(soap) = "SOAP-ENV:Server";      *soap_faultstring(soap) = "Can't read key file";      return SOAP_SSL_ERROR;    }  }  if (soap->cafile)    if (!(SSL_CTX_load_verify_locations(soap_ssl_ctx, soap->cafile, 0)))    { *soap_faultcode(soap) = "SOAP-ENV:Server";      *soap_faultstring(soap) = "Can't read CA list";      return SOAP_SSL_ERROR;    }  if (soap->dhfile)  { DH *r = 0;    BIO *bio;    bio = BIO_new_file(soap->dhfile, "r");    if (!bio)    { *soap_faultcode(soap) = "SOAP-ENV:Server";      *soap_faultstring(soap) = "Can't read DH file";      return SOAP_SSL_ERROR;    }    r = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);    BIO_free(bio);    if (SSL_CTX_set_tmp_dh(soap_ssl_ctx, r) < 0)    { *soap_faultcode(soap) = "SOAP-ENV:Server";      *soap_faultstring(soap) = "Can't set DH parameters";      return SOAP_SSL_ERROR;    }  }#if (OPENSSL_VERSION_NUMBER < 0x00905100L)  SSL_CTX_set_verify_depth(soap_ssl_ctx, 1); #endif    return SOAP_OK;}/******************************************************************************/SOAP_FMAC1intSOAP_FMAC2soap_ssl_accept(struct soap *soap){ int r;  soap->error = ssl_auth_init(soap);  if (soap->error)    return soap->error;  if (soap->socket <= 0)  { *soap_faultcode(soap) = "SOAP-ENV:Server";    *soap_faultstring(soap) = "No socket in soap_ssl_accept()";    return soap->error = SOAP_SSL_ERROR;  }   soap->ssl = SSL_new(soap_ssl_ctx);  if (!soap->ssl)  { *soap_faultcode(soap) = "SOAP-ENV:Server";    *soap_faultstring(soap) = "SSL_new failed in soap_ssl_accept()";    return soap->error = SOAP_SSL_ERROR;  }  soap->bio = BIO_new_socket(soap->socket, BIO_NOCLOSE);  SSL_set_bio(soap->ssl, soap->bio, soap->bio);  r = SSL_accept(soap->ssl);  if (r <= 0)  { *soap_faultcode(soap) = "SOAP-ENV:Server";    *soap_faultstring(soap) = "SSL_accept failed in soap_ssl_accept()";    *soap_faultdetail(soap) = ssl_error(soap, r);    return soap->error = SOAP_SSL_ERROR;  }  return SOAP_OK;}/******************************************************************************/#endif/******************************************************************************/static inttcp_init(struct soap *soap){ soap->errmode = 1;#ifdef WIN32  if (tcp_done)    return 0;  tcp_done = 1;  { WSADATA w;    if (WSAStartup(MAKEWORD(1, 1), &w))    { tcp_done = 0;      return -1;    }  }#endif  return 0;}/******************************************************************************/SOAP_FMAC1voidSOAP_FMAC2soap_done(struct soap *soap){ soap_closesock(soap);  if (soap->master >= 0)  { closesocket(soap->master);    soap->master = -1;  }  soap->fpost = http_post;  soap->fresponse = http_response;  soap->fparse = http_parse;  soap->fopen = tcp_connect;  soap->fclose = tcp_disconnect;  soap->fsend = fsend;  soap->frecv = frecv;  soap->fignore = fignore;#ifdef WIN32  if (!tcp_done)    return;  tcp_done = 0;  WSACleanup();#endif}/******************************************************************************/static const char*tcp_error(struct soap *soap){ const char *msg = NULL;  switch (soap->errmode)  { case 0:      msg = soap_strerror(soap, soap->errnum);      break;    case 1:      msg = "WSAStartup failed";      break;    case 2:    { struct code_map *map = h_errno_codes;      while (map->code && map->code != soap->errnum)	map++;      if (map->code)	msg = map->string;      else      { sprintf(soap->msgbuf, "Unknown TCP error code %d\n", soap->errnum);	msg = soap->msgbuf;      }    }  }  return msg;}/******************************************************************************/static intsoap_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr){ unsigned long iadd;  struct hostent hostent, *host = &hostent;  iadd = inet_addr(addr);  if ((int)iadd != -1)  { memcpy(inaddr, &iadd, sizeof(iadd));    return 0;  }#ifdef __GLIBC__  if (gethostbyname_r(addr, &hostent, soap->buf, SOAP_BUFLEN, &host, &soap->errnum) < 0)    host = NULL;#else#if defined(WIN32) || defined(_AIXVERSION_431) || defined(__APPLE__)  if (!(host = gethostbyname(addr)))    soap->errnum = h_errno;#else  host = gethostbyname_r(addr, &hostent, soap->buf, SOAP_BUFLEN, &soap->errnum);#endif#endif  if (!host)  { DBGLOG(TEST, SOAP_MESSAGE(fdebug,"\nHost name not found"));    return -1;  }  memcpy(inaddr, host->h_addr, host->h_length);  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂成人网| 裸体一区二区三区| 欧美日韩黄视频| 91在线精品秘密一区二区| 六月丁香婷婷色狠狠久久| 亚洲成人免费看| 亚洲黄色av一区| 成人免费在线视频观看| 亚洲欧洲性图库| 欧美激情综合在线| 美脚の诱脚舐め脚责91| 欧美伦理电影网| 欧美人体做爰大胆视频| 久久精品欧美一区二区三区不卡 | 国产精品久久久久久久久动漫| 国产在线精品一区二区三区不卡 | 国产精品18久久久久久久网站| 久久一区二区三区国产精品| 国产一区在线精品| 国产精品人妖ts系列视频| 久久久精品黄色| 日韩欧美国产电影| 1024成人网色www| 天天综合色天天| 激情小说欧美图片| 成人久久18免费网站麻豆| 欧美一区二区成人| 精品国产凹凸成av人网站| 自拍偷拍国产精品| 另类小说色综合网站| 成人午夜av电影| 在线免费观看日韩欧美| 日韩精品一区二区在线| 九色综合狠狠综合久久| 亚洲图片自拍偷拍| 成人性色生活片| 香蕉影视欧美成人| 欧美精品一区二区三区视频| av成人老司机| 日韩国产高清影视| 国产日产欧美一区二区三区| 色婷婷国产精品| 经典一区二区三区| 尤物在线观看一区| 久久久不卡影院| 欧美日韩中文字幕精品| 国产精品18久久久| 亚洲午夜一区二区| 国产亚洲成av人在线观看导航| 色视频一区二区| 福利一区二区在线| 日本女人一区二区三区| 最新日韩av在线| 精品国偷自产国产一区| 欧美日韩一区二区在线观看| 丰满亚洲少妇av| 蜜桃一区二区三区在线观看| 亚洲综合一二区| 中文一区二区完整视频在线观看| 欧美精品乱人伦久久久久久| av中文一区二区三区| 麻豆高清免费国产一区| 亚洲与欧洲av电影| 欧美韩日一区二区三区四区| 日韩精品一区二区三区老鸭窝 | 白白色 亚洲乱淫| 加勒比av一区二区| 麻豆精品视频在线观看| 天天综合天天做天天综合| 亚洲精品少妇30p| 中文字幕欧美区| 26uuu亚洲婷婷狠狠天堂| 91麻豆精品国产自产在线| 欧洲生活片亚洲生活在线观看| 成人综合婷婷国产精品久久免费| 蜜臀av一区二区在线观看 | 爽好多水快深点欧美视频| 18欧美亚洲精品| 欧美国产一区在线| 久久九九影视网| 久久亚洲精品小早川怜子| 日韩欧美国产小视频| 欧美日韩不卡视频| 欧美日韩1234| 欧美丰满高潮xxxx喷水动漫| 欧美精品高清视频| 欧美美女一区二区在线观看| 欧美日韩免费高清一区色橹橹 | 国产乱码一区二区三区| 欧美aⅴ一区二区三区视频| 天天影视色香欲综合网老头| 午夜精品一区二区三区三上悠亚| 午夜欧美在线一二页| 午夜影院久久久| 免费高清不卡av| 韩国女主播成人在线| 国产精品99久久不卡二区| 国产成人h网站| 99精品黄色片免费大全| 一本大道av一区二区在线播放| 日本韩国欧美国产| 欧美日韩不卡在线| 337p粉嫩大胆色噜噜噜噜亚洲| 久久蜜桃av一区精品变态类天堂| 国产视频不卡一区| 亚洲天堂福利av| 亚洲成va人在线观看| 久久草av在线| 成人国产视频在线观看| 在线观看91视频| 精品处破学生在线二十三| 2021国产精品久久精品| 国产精品久久久久久久蜜臀 | 亚洲高清免费视频| 美女视频黄 久久| 粉嫩aⅴ一区二区三区四区五区| 成人激情免费视频| 在线观看一区二区视频| 日韩你懂的在线观看| 国产精品人成在线观看免费| 一区二区三区不卡在线观看| 美女一区二区三区在线观看| 国产成人一级电影| 日本久久一区二区三区| 精品国产乱码久久久久久免费 | 亚洲精品国产品国语在线app| 美国十次综合导航| 成人av先锋影音| 欧美日韩不卡一区二区| 中文一区在线播放| 日韩av一区二区三区四区| 成人av在线电影| 欧美va亚洲va在线观看蝴蝶网| 综合分类小说区另类春色亚洲小说欧美| 亚洲r级在线视频| 国内外成人在线视频| 91丨九色丨国产丨porny| 日韩欧美不卡在线观看视频| 亚洲摸摸操操av| 九一久久久久久| 欧美日韩mp4| 尤物视频一区二区| 丁香一区二区三区| 日韩三区在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 卡一卡二国产精品| 欧美日韩精品一区视频| 国产精品女人毛片| 麻豆中文一区二区| 欧美日本在线播放| 精品成人佐山爱一区二区| 国产精品一区二区在线观看不卡| 国产欧美日韩在线看| 成人黄页在线观看| 日本一区二区视频在线| 日本成人中文字幕在线视频| 在线视频国内自拍亚洲视频| 国产亚洲视频系列| 美女诱惑一区二区| 欧美一区中文字幕| 亚洲美女少妇撒尿| 国产成人鲁色资源国产91色综| 欧美精品tushy高清| 亚洲欧美日韩一区| 亚洲一区二区三区中文字幕| a亚洲天堂av| 精品国产免费久久| 国产在线一区观看| 7777精品伊人久久久大香线蕉经典版下载| 国产日产精品一区| 一区二区三区中文字幕| 色婷婷久久久亚洲一区二区三区 | 首页国产欧美日韩丝袜| 国产成人av电影在线| 欧美日本在线一区| 亚洲一区二区五区| 91影院在线免费观看| 国产三级欧美三级日产三级99| 久久不见久久见中文字幕免费| 欧美群妇大交群的观看方式| 亚洲三级免费电影| 国产精品主播直播| 国产欧美一区二区在线观看| 麻豆成人综合网| 日韩一级免费一区| 激情五月婷婷综合网| 精品欧美一区二区三区精品久久| 五月激情综合婷婷| 在线观看国产精品网站| 五月天丁香久久| 欧美日韩精品电影| 日韩影院免费视频| 欧美大度的电影原声| 日本欧美加勒比视频| 欧美一区二区视频在线观看2020| 天天色 色综合| 欧美二区三区的天堂| 日韩av中文字幕一区二区 | 国产日产欧美一区| 成人一区二区三区视频|