| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/socket/tcp_client_socket_win.h" | 5 #include "net/socket/tcp_client_socket_win.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/memory_debug.h" | 9 #include "base/memory_debug.h" |
| 10 #include "base/metrics/stats_counters.h" | 10 #include "base/metrics/stats_counters.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 CHECK(ok); | 57 CHECK(ok); |
| 58 return true; | 58 return true; |
| 59 } | 59 } |
| 60 | 60 |
| 61 //----------------------------------------------------------------------------- | 61 //----------------------------------------------------------------------------- |
| 62 | 62 |
| 63 int MapWinsockError(int os_error) { | 63 int MapWinsockError(int os_error) { |
| 64 // There are numerous Winsock error codes, but these are the ones we thus far | 64 // There are numerous Winsock error codes, but these are the ones we thus far |
| 65 // find interesting. | 65 // find interesting. |
| 66 switch (os_error) { | 66 switch (os_error) { |
| 67 // connect fails with WSAEACCES when Windows Firewall blocks the | |
| 68 // connection. | |
| 69 case WSAEACCES: | 67 case WSAEACCES: |
| 70 return ERR_ACCESS_DENIED; | 68 return ERR_ACCESS_DENIED; |
| 71 case WSAENETDOWN: | 69 case WSAENETDOWN: |
| 72 return ERR_INTERNET_DISCONNECTED; | 70 return ERR_INTERNET_DISCONNECTED; |
| 73 case WSAETIMEDOUT: | 71 case WSAETIMEDOUT: |
| 74 return ERR_TIMED_OUT; | 72 return ERR_TIMED_OUT; |
| 75 case WSAECONNRESET: | 73 case WSAECONNRESET: |
| 76 case WSAENETRESET: // Related to keep-alive | 74 case WSAENETRESET: // Related to keep-alive |
| 77 return ERR_CONNECTION_RESET; | 75 return ERR_CONNECTION_RESET; |
| 78 case WSAECONNABORTED: | 76 case WSAECONNABORTED: |
| (...skipping 18 matching lines...) Expand all Loading... |
| 97 return OK; | 95 return OK; |
| 98 default: | 96 default: |
| 99 LOG(WARNING) << "Unknown error " << os_error | 97 LOG(WARNING) << "Unknown error " << os_error |
| 100 << " mapped to net::ERR_FAILED"; | 98 << " mapped to net::ERR_FAILED"; |
| 101 return ERR_FAILED; | 99 return ERR_FAILED; |
| 102 } | 100 } |
| 103 } | 101 } |
| 104 | 102 |
| 105 int MapConnectError(int os_error) { | 103 int MapConnectError(int os_error) { |
| 106 switch (os_error) { | 104 switch (os_error) { |
| 105 // connect fails with WSAEACCES when Windows Firewall blocks the |
| 106 // connection. |
| 107 case WSAEACCES: |
| 108 return ERR_NETWORK_ACCESS_DENIED; |
| 107 case WSAETIMEDOUT: | 109 case WSAETIMEDOUT: |
| 108 return ERR_CONNECTION_TIMED_OUT; | 110 return ERR_CONNECTION_TIMED_OUT; |
| 109 default: { | 111 default: { |
| 110 int net_error = MapWinsockError(os_error); | 112 int net_error = MapWinsockError(os_error); |
| 111 if (net_error == ERR_FAILED) | 113 if (net_error == ERR_FAILED) |
| 112 return ERR_CONNECTION_FAILED; // More specific than ERR_FAILED. | 114 return ERR_CONNECTION_FAILED; // More specific than ERR_FAILED. |
| 113 | 115 |
| 114 // Give a more specific error when the user is offline. | 116 // Give a more specific error when the user is offline. |
| 115 if (net_error == ERR_ADDRESS_UNREACHABLE && | 117 if (net_error == ERR_ADDRESS_UNREACHABLE && |
| 116 NetworkChangeNotifier::IsOffline()) { | 118 NetworkChangeNotifier::IsOffline()) { |
| (...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 814 use_history_.set_was_used_to_convey_data(); | 816 use_history_.set_was_used_to_convey_data(); |
| 815 LogByteTransfer(net_log_, NetLog::TYPE_SOCKET_BYTES_SENT, num_bytes, | 817 LogByteTransfer(net_log_, NetLog::TYPE_SOCKET_BYTES_SENT, num_bytes, |
| 816 core_->write_buffer_.buf); | 818 core_->write_buffer_.buf); |
| 817 } | 819 } |
| 818 } | 820 } |
| 819 core_->write_iobuffer_ = NULL; | 821 core_->write_iobuffer_ = NULL; |
| 820 DoWriteCallback(rv); | 822 DoWriteCallback(rv); |
| 821 } | 823 } |
| 822 | 824 |
| 823 } // namespace net | 825 } // namespace net |
| OLD | NEW |