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

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

?? winhttpdohttp.c

?? IBE是一種非對稱密碼技術
?? C
?? 第 1 頁 / 共 2 頁
字號:
      */
      bStatus = WinHttpReceiveResponse (hRequest, NULL);
      if (bStatus == FALSE)
      {
        VOLT_SET_ERROR_TYPE (
          errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_NETWORK_CONNECT;
        sysRet = GetLastError ();
        break;
      }   

      /* Get the response code from the response.
       */
      dwSize = sizeof (respCode);
      bStatus = WinHttpQueryHeaders (
        hRequest, WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER,
        NULL, &respCode, &dwSize, NULL);
      *responseCode = (unsigned int)respCode;
      if (bStatus == FALSE)
      {
        VOLT_SET_ERROR_TYPE (
          errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_DOWNLOAD_FAILURE;
        sysRet = GetLastError ();
        break;
      }

      /* If the response code is 401, we'll try to do some
       * authentication. Any other code, we're done with this loop. If
       * the code is 200, success, any other code is a response we
       * can't handle, so we'll let the rest of the code sort it out.
       */
      if (respCode != 401)
        break;

      /* We need authentication, what kinds of auth does the server
       * support?
       */
      bStatus = WinHttpQueryAuthSchemes (
        hRequest, &supportedSchemes, &firstScheme, &authTarget);
      if (bStatus == FALSE)
      {
        VOLT_SET_ERROR_TYPE (
          errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_DOWNLOAD_FAILURE;
        sysRet = GetLastError ();
        break;
      }

      /* If the server doesn't support a scheme we're familiar with,
       * error.
       */
      if ((supportedSchemes &
          (WINHTTP_AUTH_SCHEME_BASIC | WINHTTP_AUTH_SCHEME_NTLM)) == 0)
      {
        VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_UNKNOWN_AUTH_SCHEME;
        break;
      }

      if ((supportedSchemes & WINHTTP_AUTH_SCHEME_NTLM) != 0)
      {
        /* Try this once. If that doesn't succeed, don't try it again.
         * We initialized logonLevel to HIGH, so if it's still HIGH,
         * this is the first time through. If not, we've gone through
         * this clause before.
         */
        if (logonLevel == WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH)
        {
          logonLevel = WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW;
          bStatus = WinHttpSetOption (
            hRequest, WINHTTP_OPTION_AUTOLOGON_POLICY, (LPVOID)&logonLevel,
            sizeof (logonLevel));
          if (bStatus == FALSE)
          {
            VOLT_SET_ERROR_TYPE (
              errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
            VOLT_SET_FNCT_LINE (fnctLine)
            status = VT_ERROR_DOWNLOAD_FAILURE;
            sysRet = GetLastError ();
            break;
          }

          /* Send the request again.
           */
          continue;
        }
      }

      if ((supportedSchemes & WINHTTP_AUTH_SCHEME_BASIC) != 0)
      {
        /* If this is a RETRY, release the password from the last call.
         */
        if (purpose == VT_USER_PASS_COLLECTOR_PURPOSE_COLLECT_RETRY)
        {
          transCtx->userPassCtx.UserPassFunction (
            transCtx->voltObject.libraryCtx, transCtx->userPassCtx.appData,
            idObj, VT_USER_PASS_COLLECTOR_PURPOSE_RELEASE,
            &username, &usernameLen, &password, &passwordLen);
          releaseFlag = 0;
        }

        /* Get the username and password. If no UserPassCtx is loaded,
         * error.
         */
        VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_NEED_USERNAME_PASSWORD;
        if (transCtx->userPassCtx.UserPassFunction == (VtUserPassCollector)0)
          break;

        usernameLen = 0;
        passwordLen = 0;
        releaseFlag = 1;

        VOLT_SET_ERROR_TYPE (errorType, 0)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = transCtx->userPassCtx.UserPassFunction (
          transCtx->voltObject.libraryCtx, transCtx->userPassCtx.appData,
          idObj, purpose, &username, &usernameLen, &password, &passwordLen);
        if (status != 0)
          break;

        /* If we call again, make sure the purpose is RETRY.
         */
        purpose = VT_USER_PASS_COLLECTOR_PURPOSE_COLLECT_RETRY;

        /* Make sure the username and password are NULL-terminated.
         */
        VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_MEMORY;
        userPass = (unsigned char *)Z2Realloc (
          userPass, usernameLen + passwordLen + 2);
        if (userPass == (unsigned char *)0)
          break;

        status = 0;

        Z2Memcpy (userPass, username, usernameLen);
        userPass[usernameLen] = 0;
        Z2Memcpy (userPass + usernameLen + 1, password, passwordLen);
        userPass[usernameLen + passwordLen + 1] = 0;

        bStatus = WinHttpSetCredentials (
          hRequest, authTarget, WINHTTP_AUTH_SCHEME_BASIC,
          (LPCWSTR)userPass, (LPCWSTR)(userPass + usernameLen + 1), (LPVOID)0);
        if (bStatus == FALSE)
        {
          VOLT_SET_ERROR_TYPE (
            errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
          VOLT_SET_FNCT_LINE (fnctLine)
          status = VT_ERROR_DOWNLOAD_FAILURE;
          sysRet = GetLastError ();
          break;
        }

        /* Send the request again.
         */
        continue;
      }
    } while (1);
    if (status != 0)
      break;

    /* Keep reading until we're out of data.
     */
    totalSize = 0;
    currentPos = 0;
    do
    {
      dwSize = 0;
      bStatus = WinHttpQueryDataAvailable (hRequest, &dwSize);
      if (bStatus == FALSE)
      {
        VOLT_SET_ERROR_TYPE (
          errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_DOWNLOAD_FAILURE;
        sysRet = GetLastError ();
        break;
      }      

      VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_MEMORY;
      totalSize += dwSize;
      buffer = (char *)Z2Realloc (buffer, totalSize + 1);
      if (buffer == (char *)0)
        break;      

      bStatus = WinHttpReadData (
        hRequest, buffer + currentPos, dwSize, &bytesRead);
      if (bStatus == FALSE)
      {
        VOLT_SET_ERROR_TYPE (
          errorType, VT_ERROR_TYPE_PRIMARY | VT_ERROR_TYPE_SYSTEM)
        VOLT_SET_FNCT_LINE (fnctLine)
        status = VT_ERROR_DOWNLOAD_FAILURE;
        sysRet = GetLastError ();
        break;
      }
      buffer[currentPos + bytesRead] = 0;
      currentPos += bytesRead;

      status = 0;

      /* If all the data has been read, we're done.
       */
      if (bytesRead == 0)
        break;
    } while (1);
    if (status != 0)
      break;

    /* At this point we have read all the data
     */
    *response = buffer;

  } while (0);

  if (releaseFlag == 1)
    transCtx->userPassCtx.UserPassFunction (
      transCtx->voltObject.libraryCtx, transCtx->userPassCtx.appData,
      idObj, VT_USER_PASS_COLLECTOR_PURPOSE_RELEASE,
      &username, &usernameLen, &password, &passwordLen);

  if (hSession != NULL)
    WinHttpCloseHandle (hSession);
  if (hConnect != NULL)
    WinHttpCloseHandle (hConnect);
  if (hRequest != NULL)
    WinHttpCloseHandle (hRequest);

  /* Free any data we allocated 
   */
  if (temp != (char *)0)
    Z2Free (temp);
  if (wideUrl != (LPWSTR)0)
    Z2Free (wideUrl);
  if (host != (LPWSTR)0)
    Z2Free (host);
  if (path != (LPWSTR)0)
    Z2Free (path);
  if (userPass != (unsigned char *)0)
    Z2Free (userPass);

  if ( (status == 0) && (sysRet == 0) )
    return (0);

  if (buffer != (unsigned char *)0)
    Z2Free (buffer);

  if (sysRet == ERROR_NOT_ENOUGH_MEMORY)
    status = VT_ERROR_MEMORY;

  VOLT_LOG_ERROR_INFO (
    libCtx, 0, status, sysRet, errorType,
    (char *)0, "winHttpDoHTTP", fnctLine, (char *)0)

  return (status);
}

#endif  /* VOLT_OS == VOLT_WINDOWS_32 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产a级| 91在线免费看| 亚洲综合自拍偷拍| 亚洲三级电影网站| 一区二区三区四区视频精品免费| 国产女主播视频一区二区| 欧美大片日本大片免费观看| 日韩一区二区免费电影| 日韩午夜在线观看| 久久人人超碰精品| 国产精品视频一区二区三区不卡| 欧美激情在线看| 亚洲乱码国产乱码精品精的特点| 1024亚洲合集| 丝袜亚洲另类丝袜在线| 国产精品888| 色综合视频一区二区三区高清| 欧美日韩中文另类| 国产色产综合色产在线视频| 亚洲精品国产精品乱码不99| 日韩中文字幕不卡| av成人老司机| 91精品国产综合久久福利| 91精品欧美综合在线观看最新 | 日韩精品影音先锋| 1区2区3区国产精品| 男人的j进女人的j一区| 成人激情视频网站| 久久日韩精品一区二区五区| 亚洲欧美日韩精品久久久久| 国产精品一二三区| 欧美成人精品1314www| 亚洲国产中文字幕在线视频综合| 国产成人亚洲综合a∨婷婷图片| 欧美日韩中文字幕精品| 日韩你懂的在线播放| 中文在线资源观看网站视频免费不卡 | 欧美性一级生活| 亚洲视频你懂的| 91丝袜高跟美女视频| 久久久99精品久久| 国产一本一道久久香蕉| 日韩一级片在线观看| 亚洲高清视频的网址| 欧美喷潮久久久xxxxx| 亚洲高清免费视频| 9191成人精品久久| 蜜臀精品一区二区三区在线观看 | 国产一区二区三区四区五区入口| 91精品欧美久久久久久动漫 | 欧美精品一区二区三区在线 | 26uuu精品一区二区三区四区在线| 看电视剧不卡顿的网站| 欧美成人乱码一区二区三区| 免费一级欧美片在线观看| 欧美va天堂va视频va在线| 国产成人av影院| 亚洲一区二区三区在线| 91超碰这里只有精品国产| 九九精品一区二区| 国产精品久久久一本精品| 在线观看日韩电影| 激情图区综合网| 亚洲精品国产一区二区三区四区在线| 成人丝袜18视频在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 精品一区二区在线观看| 玉米视频成人免费看| 欧美一区二区美女| 91久久一区二区| 大陆成人av片| 黄一区二区三区| 亚洲成人777| 亚洲精品国产高清久久伦理二区| 欧美日韩国产成人在线91| 成人精品小蝌蚪| 国内精品免费在线观看| 天堂av在线一区| 一区二区不卡在线播放| 成人欧美一区二区三区1314| 精品国产免费久久| 日韩一区二区在线看| 91精品欧美福利在线观看| 精品视频一区二区不卡| 欧美日韩精品福利| 欧美午夜不卡视频| 欧美日本一区二区三区四区| 91啪亚洲精品| 欧美日韩大陆一区二区| 欧美日韩日日摸| 日韩一区和二区| 精品久久久网站| 国产精品视频线看| 综合久久国产九一剧情麻豆| 一区二区三区四区不卡在线 | 国产一区二区三区| 成人ar影院免费观看视频| 国产成人精品免费视频网站| av高清久久久| 欧美一区二区久久| 中文天堂在线一区| 性欧美疯狂xxxxbbbb| 国内国产精品久久| 色狠狠av一区二区三区| 色素色在线综合| 韩国女主播一区二区三区| 国产成人在线观看免费网站| 成人国产在线观看| 91精品国产一区二区三区香蕉| 国产午夜三级一区二区三| 亚洲男人的天堂一区二区| 日韩中文字幕不卡| 日本道精品一区二区三区| 精品国产乱码91久久久久久网站| 中文字幕在线观看一区二区| 丝袜诱惑制服诱惑色一区在线观看 | 日本韩国精品在线| 欧美激情一区二区三区四区| 亚洲成人av在线电影| 91福利精品视频| 日韩理论片一区二区| 国产成人精品一区二| 日韩欧美国产三级| 亚洲午夜精品久久久久久久久| 激情偷乱视频一区二区三区| 精品视频免费在线| 一区二区三区免费观看| a亚洲天堂av| 国产精品理论在线观看| 99国产精品久久久| 亚洲欧美在线观看| 91美女视频网站| 日韩一区在线播放| 一本大道av一区二区在线播放| 日本一二三不卡| 国产盗摄女厕一区二区三区| 国产日本一区二区| 成人毛片视频在线观看| 欧美国产激情二区三区| 国产综合久久久久久久久久久久 | 性欧美疯狂xxxxbbbb| 91麻豆精品国产自产在线 | 亚洲妇女屁股眼交7| 欧美在线视频不卡| 亚洲福利一区二区三区| 欧美电影免费观看高清完整版| 激情五月激情综合网| 亚洲婷婷国产精品电影人久久| 91丝袜国产在线播放| 麻豆91免费看| 亚洲欧洲精品天堂一级| 欧美精品色综合| 大胆亚洲人体视频| 麻豆91免费看| 一区二区三区国产精华| 精品免费日韩av| 欧美三级乱人伦电影| 国产福利精品导航| 亚洲午夜影视影院在线观看| 久久这里只有精品视频网| 91视频免费看| 国产福利精品导航| 日韩av一区二区三区| 亚洲日穴在线视频| 国产日产亚洲精品系列| 欧美一区二区国产| 欧美网站一区二区| 在线观看日韩毛片| 99re成人精品视频| 国产成人精品1024| 蜜臀av在线播放一区二区三区| 一区二区三区产品免费精品久久75| 久久伊人蜜桃av一区二区| 欧美放荡的少妇| 欧美剧情电影在线观看完整版免费励志电影| 国产乱码精品一区二区三区五月婷 | 亚洲高清视频在线| 亚洲va欧美va人人爽| 三级欧美在线一区| 日本视频中文字幕一区二区三区| 亚洲成av人片在www色猫咪| 亚洲777理论| 人人精品人人爱| 日韩二区在线观看| 国产一区二区三区四区五区入口 | 精品成人一区二区三区| 91精品国产乱| 精品国产91洋老外米糕| 欧美日韩中文字幕一区| 欧美视频自拍偷拍| 欧美精品一区二区三区很污很色的 | 欧美videofree性高清杂交| 久久精品视频一区二区| 亚洲精品写真福利| 美女视频网站黄色亚洲| 成人白浆超碰人人人人| 欧美日韩国产影片| www欧美成人18+| 香蕉久久一区二区不卡无毒影院| 精品一区二区av|