OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/quic/quic_connection.h" | 5 #include "net/quic/quic_connection.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 #include <sys/types.h> | 8 #include <sys/types.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 1838 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1849 // we had queued and we're still not blocked, let the visitor know it can | 1849 // we had queued and we're still not blocked, let the visitor know it can |
1850 // write more. | 1850 // write more. |
1851 return ShouldGeneratePacket(NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, | 1851 return ShouldGeneratePacket(NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, |
1852 pending_handshake); | 1852 pending_handshake); |
1853 } | 1853 } |
1854 | 1854 |
1855 void QuicConnection::SetIdleNetworkTimeout(QuicTime::Delta timeout) { | 1855 void QuicConnection::SetIdleNetworkTimeout(QuicTime::Delta timeout) { |
1856 // Adjust the idle timeout on client and server to prevent clients from | 1856 // Adjust the idle timeout on client and server to prevent clients from |
1857 // sending requests to servers which have already closed the connection. | 1857 // sending requests to servers which have already closed the connection. |
1858 if (is_server_) { | 1858 if (is_server_) { |
1859 timeout = timeout.Add(QuicTime::Delta::FromSeconds(1)); | 1859 timeout = timeout.Add(QuicTime::Delta::FromSeconds(3)); |
1860 } else if (timeout > QuicTime::Delta::FromSeconds(1)) { | 1860 } else if (timeout > QuicTime::Delta::FromSeconds(1)) { |
1861 timeout = timeout.Subtract(QuicTime::Delta::FromSeconds(1)); | 1861 timeout = timeout.Subtract(QuicTime::Delta::FromSeconds(1)); |
1862 } | 1862 } |
1863 | 1863 |
1864 if (timeout < idle_network_timeout_) { | 1864 if (timeout < idle_network_timeout_) { |
1865 idle_network_timeout_ = timeout; | 1865 idle_network_timeout_ = timeout; |
1866 if (FLAGS_quic_timeouts_only_from_alarms) { | 1866 if (FLAGS_quic_timeouts_only_from_alarms) { |
1867 SetTimeoutAlarm(); | 1867 SetTimeoutAlarm(); |
1868 } else { | 1868 } else { |
1869 CheckForTimeout(); | 1869 CheckForTimeout(); |
(...skipping 17 matching lines...) Expand all Loading... |
1887 } | 1887 } |
1888 | 1888 |
1889 void QuicConnection::SetNetworkTimeouts(QuicTime::Delta overall_timeout, | 1889 void QuicConnection::SetNetworkTimeouts(QuicTime::Delta overall_timeout, |
1890 QuicTime::Delta idle_timeout) { | 1890 QuicTime::Delta idle_timeout) { |
1891 LOG_IF(DFATAL, idle_timeout > overall_timeout) | 1891 LOG_IF(DFATAL, idle_timeout > overall_timeout) |
1892 << "idle_timeout:" << idle_timeout.ToMilliseconds() | 1892 << "idle_timeout:" << idle_timeout.ToMilliseconds() |
1893 << " overall_timeout:" << overall_timeout.ToMilliseconds(); | 1893 << " overall_timeout:" << overall_timeout.ToMilliseconds(); |
1894 // Adjust the idle timeout on client and server to prevent clients from | 1894 // Adjust the idle timeout on client and server to prevent clients from |
1895 // sending requests to servers which have already closed the connection. | 1895 // sending requests to servers which have already closed the connection. |
1896 if (is_server_) { | 1896 if (is_server_) { |
1897 idle_timeout = idle_timeout.Add(QuicTime::Delta::FromSeconds(1)); | 1897 idle_timeout = idle_timeout.Add(QuicTime::Delta::FromSeconds(3)); |
1898 } else if (idle_timeout > QuicTime::Delta::FromSeconds(1)) { | 1898 } else if (idle_timeout > QuicTime::Delta::FromSeconds(1)) { |
1899 idle_timeout = idle_timeout.Subtract(QuicTime::Delta::FromSeconds(1)); | 1899 idle_timeout = idle_timeout.Subtract(QuicTime::Delta::FromSeconds(1)); |
1900 } | 1900 } |
1901 overall_connection_timeout_ = overall_timeout; | 1901 overall_connection_timeout_ = overall_timeout; |
1902 idle_network_timeout_ = idle_timeout; | 1902 idle_network_timeout_ = idle_timeout; |
1903 | 1903 |
1904 SetTimeoutAlarm(); | 1904 SetTimeoutAlarm(); |
1905 } | 1905 } |
1906 | 1906 |
1907 void QuicConnection::CheckForTimeout() { | 1907 void QuicConnection::CheckForTimeout() { |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2031 } | 2031 } |
2032 for (size_t i = 0; i < retransmittable_frames->frames().size(); ++i) { | 2032 for (size_t i = 0; i < retransmittable_frames->frames().size(); ++i) { |
2033 if (retransmittable_frames->frames()[i].type == CONNECTION_CLOSE_FRAME) { | 2033 if (retransmittable_frames->frames()[i].type == CONNECTION_CLOSE_FRAME) { |
2034 return true; | 2034 return true; |
2035 } | 2035 } |
2036 } | 2036 } |
2037 return false; | 2037 return false; |
2038 } | 2038 } |
2039 | 2039 |
2040 } // namespace net | 2040 } // namespace net |
OLD | NEW |