Source code
Revision control
Copy as Markdown
Other Tools
/* 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/. */
#include "ConnectionAttempt.h"
#include "nsHttpTransaction.h"
#include "nsHttpConnectionInfo.h"
namespace mozilla::net {
NS_IMPL_ISUPPORTS0(ConnectionAttempt)
ConnectionAttempt::ConnectionAttempt(nsHttpConnectionInfo* ci,
nsAHttpTransaction* trans, uint32_t caps,
bool speculative, bool urgentStart)
: mConnInfo(ci),
mTransaction(trans),
mCaps(caps),
mSpeculative(speculative),
mUrgentStart(urgentStart) {}
bool ConnectionAttempt::AcceptsTransaction(nsHttpTransaction* trans) const {
// When marked as urgent start, only accept urgent start marked transactions.
// Otherwise, accept any kind of transaction.
return !mUrgentStart || (trans->Caps() & nsIClassOfService::UrgentStart);
}
void ConnectionAttempt::Unclaim() {
MOZ_ASSERT(!mSpeculative && !mFreeToUse);
// We will keep the backup-timer running. Most probably this halfOpen will
// be used by a transaction from which this transaction took the halfOpen.
// (this is happening because of the transaction priority.)
mFreeToUse = true;
}
uint32_t ConnectionAttempt::UnconnectedUDPConnsLength() const {
if (mConnInfo->IsHttp3()) {
return 1;
}
return 0;
}
} // namespace mozilla::net