Get the bind address for a socket as CAddress */
| 422 | |
| 423 | /** Get the bind address for a socket as CAddress */ |
| 424 | static CAddress GetBindAddress(SOCKET sock) |
| 425 | { |
| 426 | CAddress addr_bind; |
| 427 | struct sockaddr_storage sockaddr_bind; |
| 428 | socklen_t sockaddr_bind_len = sizeof(sockaddr_bind); |
| 429 | if (sock != INVALID_SOCKET) { |
| 430 | if (!getsockname(sock, (struct sockaddr*)&sockaddr_bind, &sockaddr_bind_len)) { |
| 431 | addr_bind.SetSockAddr((const struct sockaddr*)&sockaddr_bind); |
| 432 | } else { |
| 433 | LogPrintLevel(BCLog::Level::Warning, BCLog::NET, "getsockname failed\n"); |
| 434 | } |
| 435 | } |
| 436 | return addr_bind; |
| 437 | } |
| 438 | |
| 439 | CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCountFailure, ConnectionType conn_type) |
| 440 | { |
no test coverage detected