@@ -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)
@@ -1503,7 +1503,6 @@ void NetworkDataTaskSoup::didFail(const ResourceError& error)
15031503 dispatchDidCompleteWithError (error);
15041504}
15051505
1506- #if USE(SOUP2)
15071506void NetworkDataTaskSoup::networkEventCallback (SoupMessage* soupMessage, GSocketClientEvent event, GIOStream* stream, NetworkDataTaskSoup* task)
15081507{
15091508 if (task->state () == State::Canceling || task->state () == State::Completed || !task->m_client )
@@ -1515,6 +1514,16 @@ void NetworkDataTaskSoup::networkEventCallback(SoupMessage* soupMessage, GSocket
15151514
15161515void NetworkDataTaskSoup::networkEvent (GSocketClientEvent event, GIOStream* stream)
15171516{
1517+ #if !USE(SOUP2)
1518+ if (event == G_SOCKET_CLIENT_CONNECTED) {
1519+ const char * enableTCPkeepalive = getenv (" WEBKIT_TCP_KEEPALIVE" );
1520+ if (enableTCPkeepalive && enableTCPkeepalive[0 ] != ' 0' ) {
1521+ RELEASE_ASSERT (G_IS_SOCKET_CONNECTION (stream));
1522+ if (GSocket* socket = g_socket_connection_get_socket (G_SOCKET_CONNECTION (stream)))
1523+ g_socket_set_keepalive (socket, TRUE );
1524+ }
1525+ }
1526+ #else
15181527 auto time = MonotonicTime::now ();
15191528 switch (event) {
15201529 case G_SOCKET_CLIENT_RESOLVING:
@@ -1556,8 +1565,8 @@ void NetworkDataTaskSoup::networkEvent(GSocketClientEvent event, GIOStream* stre
15561565 ASSERT_NOT_REACHED ();
15571566 break ;
15581567 }
1559- }
15601568#endif
1569+ }
15611570
15621571void NetworkDataTaskSoup::startingCallback (SoupMessage* soupMessage, NetworkDataTaskSoup* task)
15631572{
0 commit comments