| 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 "tools/android/forwarder2/socket.h" | 5 #include "tools/android/forwarder2/socket.h" |
| 6 | 6 |
| 7 #include <arpa/inet.h> | 7 #include <arpa/inet.h> |
| 8 #include <errno.h> | 8 #include <errno.h> |
| 9 #include <fcntl.h> | 9 #include <fcntl.h> |
| 10 #include <netdb.h> | 10 #include <netdb.h> |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 bool Socket::InitTcpSocket(const std::string& host, int port) { | 151 bool Socket::InitTcpSocket(const std::string& host, int port) { |
| 152 port_ = port; | 152 port_ = port; |
| 153 if (host.empty()) { | 153 if (host.empty()) { |
| 154 // Use localhost: INADDR_LOOPBACK | 154 // Use localhost: INADDR_LOOPBACK |
| 155 family_ = AF_INET; | 155 family_ = AF_INET; |
| 156 addr_.addr4.sin_family = family_; | 156 addr_.addr4.sin_family = family_; |
| 157 addr_.addr4.sin_addr.s_addr = htonl(INADDR_LOOPBACK); | 157 addr_.addr4.sin_addr.s_addr = htonl(INADDR_LOOPBACK); |
| 158 } else if (!Resolve(host)) { | 158 } else if (!Resolve(host)) { |
| 159 return false; | 159 return false; |
| 160 } | 160 } |
| 161 CHECK(FamilyIsTCP(family_)) << "Invalid socket family."; | 161 // Invalid socket family. |
| 162 CHECK(FamilyIsTCP(family_)); |
| 162 if (family_ == AF_INET) { | 163 if (family_ == AF_INET) { |
| 163 addr_.addr4.sin_port = htons(port_); | 164 addr_.addr4.sin_port = htons(port_); |
| 164 addr_ptr_ = reinterpret_cast<sockaddr*>(&addr_.addr4); | 165 addr_ptr_ = reinterpret_cast<sockaddr*>(&addr_.addr4); |
| 165 addr_len_ = sizeof(addr_.addr4); | 166 addr_len_ = sizeof(addr_.addr4); |
| 166 } else if (family_ == AF_INET6) { | 167 } else if (family_ == AF_INET6) { |
| 167 addr_.addr6.sin6_port = htons(port_); | 168 addr_.addr6.sin6_port = htons(port_); |
| 168 addr_ptr_ = reinterpret_cast<sockaddr*>(&addr_.addr6); | 169 addr_ptr_ = reinterpret_cast<sockaddr*>(&addr_.addr6); |
| 169 addr_len_ = sizeof(addr_.addr6); | 170 addr_len_ = sizeof(addr_.addr6); |
| 170 } | 171 } |
| 171 return InitSocketInternal(); | 172 return InitSocketInternal(); |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 ucred ucred; | 456 ucred ucred; |
| 456 socklen_t len = sizeof(ucred); | 457 socklen_t len = sizeof(ucred); |
| 457 if (getsockopt(socket.socket_, SOL_SOCKET, SO_PEERCRED, &ucred, &len) == -1) { | 458 if (getsockopt(socket.socket_, SOL_SOCKET, SO_PEERCRED, &ucred, &len) == -1) { |
| 458 CHECK_NE(ENOPROTOOPT, errno); | 459 CHECK_NE(ENOPROTOOPT, errno); |
| 459 return -1; | 460 return -1; |
| 460 } | 461 } |
| 461 return ucred.pid; | 462 return ucred.pid; |
| 462 } | 463 } |
| 463 | 464 |
| 464 } // namespace forwarder2 | 465 } // namespace forwarder2 |
| OLD | NEW |