Commit 3a8a5d1b authored by jan.koester's avatar jan.koester
Browse files

test

parent 97d72fb9
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
@@ -2967,6 +2967,7 @@ const std::vector<char> libhttppp::HttpClient::Put(libhttppp::HttpRequest &nreq,
                                                   const std::vector<char> &put, size_t maxTries)
{
    size_t tries = 0;
    int redirects = 0;
    for (;;) {
        try {
            _ensureConnected();
@@ -3007,7 +3008,26 @@ const std::vector<char> libhttppp::HttpClient::Put(libhttppp::HttpRequest &nreq,
                _sendAll(combined.data(), combined.size());
            }

            return _h1ReadResponse("PUT");
            auto ret = _h1ReadResponse("PUT");

            if (_lastStatusCode >= 301 && _lastStatusCode <= 308
                && _lastStatusCode != 304 && _lastStatusCode != 305
                && !_lastLocation.empty() && redirects < MAX_REDIRECTS)
            {
                ++redirects;
                if (_lastLocation.find("://") != std::string::npos) {
                    _url = HttpUrl(_lastLocation);
                    resetConnection();
                }
                nreq.setRequestURL(_lastLocation.find("://") != std::string::npos
                    ? _url.getPath() : _lastLocation);
                if (_lastStatusCode == 303) {
                    nreq.setRequestType(GETREQUEST);
                }
                continue;
            }

            return ret;

        } catch (netplus::NetException &e) {
            ++tries;