@@ -223,7 +223,6 @@ void NetworkDataTaskSoup::createRequest(ResourceRequest&& request, WasBlockingCo
223223 g_signal_connect (m_soupMessage.get (), " wrote-body-data" , G_CALLBACK (wroteBodyDataCallback), this );
224224#if USE(SOUP2)
225225 g_signal_connect (static_cast <NetworkSessionSoup&>(*m_session).soupSession (), " authenticate" , G_CALLBACK (authenticateCallback), this );
226- g_signal_connect (m_soupMessage.get (), " network-event" , G_CALLBACK (networkEventCallback), this );
227226#else
228227 g_signal_connect (m_soupMessage.get (), " authenticate" , G_CALLBACK (authenticateCallback), this );
229228 g_signal_connect (m_soupMessage.get (), " accept-certificate" , G_CALLBACK (acceptCertificateCallback), this );
@@ -235,6 +234,7 @@ void NetworkDataTaskSoup::createRequest(ResourceRequest&& request, WasBlockingCo
235234 g_signal_connect (m_soupMessage.get (), " request-certificate" , G_CALLBACK (requestCertificateCallback), this );
236235 g_signal_connect (m_soupMessage.get (), " request-certificate-password" , G_CALLBACK (requestCertificatePasswordCallback), this );
237236#endif
237+ g_signal_connect (m_soupMessage.get (), " network-event" , G_CALLBACK (networkEventCallback), this );
238238 g_signal_connect (m_soupMessage.get (), " restarted" , G_CALLBACK (restartedCallback), this );
239239 g_signal_connect (m_soupMessage.get (), " starting" , G_CALLBACK (startingCallback), this );
240240 if (m_shouldContentSniff == ContentSniffingPolicy::SniffContent)
@@ -1502,7 +1502,6 @@ void NetworkDataTaskSoup::didFail(const ResourceError& error)
15021502 dispatchDidCompleteWithError (error);
15031503}
15041504
1505- #if USE(SOUP2)
15061505void NetworkDataTaskSoup::networkEventCallback (SoupMessage* soupMessage, GSocketClientEvent event, GIOStream* stream, NetworkDataTaskSoup* task)
15071506{
15081507 if (task->state () == State::Canceling || task->state () == State::Completed || !task->m_client )
@@ -1514,6 +1513,16 @@ void NetworkDataTaskSoup::networkEventCallback(SoupMessage* soupMessage, GSocket
15141513
15151514void NetworkDataTaskSoup::networkEvent (GSocketClientEvent event, GIOStream* stream)
15161515{
1516+ #if !USE(SOUP2)
1517+ if (event == G_SOCKET_CLIENT_CONNECTED) {
1518+ const char * enableTCPkeepalive = getenv (" WEBKIT_TCP_KEEPALIVE" );
1519+ if (enableTCPkeepalive && enableTCPkeepalive[0 ] != ' 0' ) {
1520+ RELEASE_ASSERT (G_IS_SOCKET_CONNECTION (stream));
1521+ if (GSocket* socket = g_socket_connection_get_socket (G_SOCKET_CONNECTION (stream)))
1522+ g_socket_set_keepalive (socket, TRUE );
1523+ }
1524+ }
1525+ #else
15171526 auto time = MonotonicTime::now ();
15181527 switch (event) {
15191528 case G_SOCKET_CLIENT_RESOLVING:
@@ -1555,8 +1564,8 @@ void NetworkDataTaskSoup::networkEvent(GSocketClientEvent event, GIOStream* stre
15551564 ASSERT_NOT_REACHED ();
15561565 break ;
15571566 }
1558- }
15591567#endif
1568+ }
15601569
15611570void NetworkDataTaskSoup::startingCallback (SoupMessage* soupMessage, NetworkDataTaskSoup* task)
15621571{
0 commit comments