5#ifndef QHTTPNETWORKCONNECTIONCHANNEL_H
6#define QHTTPNETWORKCONNECTIONCHANNEL_H
19#include <QtNetwork/private/qtnetworkglobal_p.h>
20#include <QtNetwork/qnetworkrequest.h>
21#include <QtNetwork/qnetworkreply.h>
22#include <QtNetwork/qabstractsocket.h>
24#include <private/qobject_p.h>
25#include <qauthenticator.h>
26#include <qnetworkproxy.h>
29#include <private/qhttpnetworkheader_p.h>
30#include <private/qhttpnetworkrequest_p.h>
31#include <private/qhttpnetworkreply_p.h>
33#include <private/qhttpnetworkconnection_p.h>
34#include <private/qabstractprotocolhandler_p.h>
37# include <QtNetwork/qsslsocket.h>
38# include <QtNetwork/qsslerror.h>
39# include <QtNetwork/qsslconfiguration.h>
41# include <QtNetwork/qtcpsocket.h>
43#if QT_CONFIG(localserver)
44# include <QtNetwork/qlocalsocket.h>
48#include <QtCore/qpointer.h>
58class QHttpNetworkRequest;
59class QHttpNetworkReply;
62#ifndef HttpMessagePair
109 void setSslConfiguration(
const QSslConfiguration &config);
136#ifndef QT_NO_NETWORKPROXY
138 void setProxy(
const QNetworkProxy &networkProxy);
172#if QT_CONFIG(localserver)
177#ifndef QT_NO_NETWORKPROXY
190 friend class QHttpProtocolHandler;
bool needInvokeReceiveReply
bool isSocketReading() const
bool needInvokeSendRequest
std::unique_ptr< QAbstractProtocolHandler > protocolHandler
QAuthenticator proxyAuthenticator
bool isSocketWaiting() const
void setProxy(const QNetworkProxy &networkProxy)
void _q_preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *)
void requeueCurrentlyPipelinedRequests()
QHttpNetworkConnectionChannel()
void handleUnexpectedEOF()
void sendRequestDelayed()
void _q_bytesWritten(qint64 bytes)
QAbstractSocket::NetworkLayerProtocol networkLayerPreference
bool proxyCredentialsSent
void closeAndResendCurrentRequest()
void emitFinishedWithError(QNetworkReply::NetworkError error, const char *message)
void pipelineInto(HttpMessagePair &pair)
void resendCurrentRequest()
void _q_uploadDataReadyRead()
void detectPipeliningSupport()
bool isSocketBusy() const
void _q_encryptedBytesWritten(qint64 bytes)
PipeliningSupport pipeliningSupported
QPointer< QHttpNetworkConnection > connection
QHttpNetworkReply * reply
void checkAndResumeCommunication()
bool isSocketWriting() const
QHttpNetworkRequest request
QMultiMap< int, HttpMessagePair > h2RequestsToSend
std::optional< QSslConfiguration > sslConfiguration
void _q_sslErrors(const QList< QSslError > &errors)
void setConnection(QHttpNetworkConnection *c)
@ PipeliningProbablySupported
@ PipeliningSupportUnknown
void _q_connected_abstract_socket(QAbstractSocket *socket)
void requeueHttp2Requests()
QList< QSslError > ignoreSslErrorsList
void ignoreSslErrors(const QList< QSslError > &errors)
bool waitingForPotentialAbort
bool authenticationCredentialsSent
QList< HttpMessagePair > alreadyPipelinedRequests
void _q_error(QAbstractSocket::SocketError)
void _q_proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *auth)
QAuthenticator authenticator
qint64 uncompressedBytesAvailableNextBlock(const QHttpNetworkReply &reply) const
void startNetworkLayerStateLookup()
bool shouldEmitChannelError(QIODevice *socket)
void createAuthorization(QIODevice *socket, QHttpNetworkRequest &request)
void emitReplyError(QIODevice *socket, QHttpNetworkReply *reply, QNetworkReply::NetworkError errorCode)
void fillPipeline(QIODevice *socket)
QUrl parseRedirectResponse(QIODevice *socket, QHttpNetworkReply *reply)
QHttpNetworkRequest predictNextRequest() const
void prepareRequest(HttpMessagePair &request)
void startHostInfoLookup()
NetworkLayerPreferenceState networkLayerState
void copyCredentials(int fromChannel, QAuthenticator *auth, bool isProxy)
void _q_connectDelayedChannel()
static const int defaultRePipelineLength
void networkLayerDetected(QAbstractSocket::NetworkLayerProtocol protocol)
void _q_startNextRequest()
void requeueRequest(const HttpMessagePair &pair)
void removeReply(QHttpNetworkReply *reply)
void _q_hostLookupFinished(const QHostInfo &info)
QHttpNetworkReply * predictNextRequestsReply() const
void updateChannel(int i, const HttpMessagePair &messagePair)
bool handleAuthenticateChallenge(QIODevice *socket, QHttpNetworkReply *reply, bool isProxy, bool &resend)
QHttpNetworkReply * queueRequest(const QHttpNetworkRequest &request)
void readMoreLater(QHttpNetworkReply *reply)
bool dequeueRequest(QIODevice *socket)
int indexOf(QIODevice *socket) const
~QHttpNetworkConnectionPrivate()
qint64 uncompressedBytesAvailable(const QHttpNetworkReply &reply) const
static const int defaultPipelineLength
static ParseRedirectResult parseRedirectResponse(QHttpNetworkReply *reply)
static QStringView removeZoneId(QStringView ipv6HostAddress)
static QByteArray makeAcceptLanguage()
static int getPreferredActiveChannelCount(QHttpNetworkConnection::ConnectionType type, int defaultValue)
std::pair< QHttpNetworkRequest, QHttpNetworkReply * > HttpMessagePair