From 2aa4a82499d4becd2284cdb482213d541b8804dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 16:29:10 +0200 Subject: Adding upstream version 86.0.1. Signed-off-by: Daniel Baumann --- netwerk/protocol/http/ConnectionHandle.cpp | 87 ++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 netwerk/protocol/http/ConnectionHandle.cpp (limited to 'netwerk/protocol/http/ConnectionHandle.cpp') diff --git a/netwerk/protocol/http/ConnectionHandle.cpp b/netwerk/protocol/http/ConnectionHandle.cpp new file mode 100644 index 0000000000..aa231e0b3e --- /dev/null +++ b/netwerk/protocol/http/ConnectionHandle.cpp @@ -0,0 +1,87 @@ +/* vim:set ts=4 sw=2 sts=2 et cin: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +// HttpLog.h should generally be included first +#include "HttpLog.h" + +// Log on level :5, instead of default :4. +#undef LOG +#define LOG(args) LOG5(args) +#undef LOG_ENABLED +#define LOG_ENABLED() LOG5_ENABLED() + +#include "ConnectionHandle.h" + +namespace mozilla { +namespace net { + +ConnectionHandle::~ConnectionHandle() { + if (mConn) { + nsresult rv = gHttpHandler->ReclaimConnection(mConn); + if (NS_FAILED(rv)) { + LOG( + ("ConnectionHandle::~ConnectionHandle\n" + " failed to reclaim connection\n")); + } + } +} + +NS_IMPL_ISUPPORTS0(ConnectionHandle) + +nsresult ConnectionHandle::OnHeadersAvailable(nsAHttpTransaction* trans, + nsHttpRequestHead* req, + nsHttpResponseHead* resp, + bool* reset) { + return mConn->OnHeadersAvailable(trans, req, resp, reset); +} + +void ConnectionHandle::CloseTransaction(nsAHttpTransaction* trans, + nsresult reason) { + mConn->CloseTransaction(trans, reason); +} + +nsresult ConnectionHandle::TakeTransport(nsISocketTransport** aTransport, + nsIAsyncInputStream** aInputStream, + nsIAsyncOutputStream** aOutputStream) { + return mConn->TakeTransport(aTransport, aInputStream, aOutputStream); +} + +bool ConnectionHandle::IsPersistent() { + MOZ_ASSERT(OnSocketThread()); + return mConn->IsPersistent(); +} + +bool ConnectionHandle::IsReused() { + MOZ_ASSERT(OnSocketThread()); + return mConn->IsReused(); +} + +void ConnectionHandle::DontReuse() { + MOZ_ASSERT(OnSocketThread()); + mConn->DontReuse(); +} + +nsresult ConnectionHandle::PushBack(const char* buf, uint32_t bufLen) { + return mConn->PushBack(buf, bufLen); +} + +already_AddRefed ConnectionHandle::TakeHttpConnection() { + // return our connection object to the caller and clear it internally + // do not drop our reference - the caller now owns it. + MOZ_ASSERT(mConn); + return mConn.forget(); +} + +already_AddRefed ConnectionHandle::HttpConnection() { + RefPtr rv(mConn); + return rv.forget(); +} + +void ConnectionHandle::TopLevelOuterContentWindowIdChanged(uint64_t windowId) { + // Do nothing. +} + +} // namespace net +} // namespace mozilla -- cgit v1.2.3