diff --git a/src/unlocker/proxy.cpp b/src/unlocker/proxy.cpp index 372e7ae..3d1db8b 100644 --- a/src/unlocker/proxy.cpp +++ b/src/unlocker/proxy.cpp @@ -335,6 +335,10 @@ void Proxy::handleClient(SOCKET hClientSocket) { std::string emptyBody = ""; OnClientRequest.run(url, emptyBody, headers); + + if (!pendingUrls.empty()) + pendingUrls.back() = url; + SSL_write(remoteSSL, headers.data(), (int)headers.size()); clientStream.buffer.erase(0, clientStream.headersEnd + 4); clientStream.reset(); @@ -383,6 +387,9 @@ void Proxy::handleClient(SOCKET hClientSocket) if (complete) { OnClientRequest.run(url, body, headers); + if (!pendingUrls.empty() && pendingUrls.back() != url) + pendingUrls.back() = url; + SSL_write(remoteSSL, headers.data(), (int)headers.size()); SSL_write(remoteSSL, clientStream.buffer.data() + bodyStart, (int)(clientStream.buffer.size() - bodyStart)); diff --git a/src/unlocker/proxy.h b/src/unlocker/proxy.h index e6bba4f..7e0441b 100644 --- a/src/unlocker/proxy.h +++ b/src/unlocker/proxy.h @@ -25,7 +25,7 @@ class Proxy bool Init(); void Shutdown(); - CallbackEvent OnClientRequest; + CallbackEvent OnClientRequest; CallbackEvent OnServerResponse; private: