diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-01-09 18:16:08 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-01-09 18:17:04 +0900 |
| commit | ea4d99ea087d8f1bafa812017efa26cb90d99947 (patch) | |
| tree | f2a4b2e9cbbec1a2a98d5f452a230f116c47748a /src/FtpConnection.cc | |
| parent | e899eba76f7b8f91805176db4460f91e0a4dd487 (diff) | |
Refactor SocketCore::getPeerInfo, getAddrInfo to return Endpoint object
Diffstat (limited to 'src/FtpConnection.cc')
| -rw-r--r-- | src/FtpConnection.cc | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/FtpConnection.cc b/src/FtpConnection.cc index f41c5509..5a52b869 100644 --- a/src/FtpConnection.cc +++ b/src/FtpConnection.cc @@ -193,10 +193,9 @@ bool FtpConnection::sendPasv() std::shared_ptr<SocketCore> FtpConnection::createServerSocket() { - std::pair<std::string, uint16_t> addrinfo; - socket_->getAddrInfo(addrinfo); + auto endpoint = socket_->getAddrInfo(); auto serverSocket = std::make_shared<SocketCore>(); - serverSocket->bind(addrinfo.first.c_str(), 0, AF_UNSPEC); + serverSocket->bind(endpoint.addr.c_str(), 0, AF_UNSPEC); serverSocket->beginListen(); return serverSocket; } @@ -204,14 +203,10 @@ std::shared_ptr<SocketCore> FtpConnection::createServerSocket() bool FtpConnection::sendEprt(const std::shared_ptr<SocketCore>& serverSocket) { if (socketBuffer_.sendBufferIsEmpty()) { - sockaddr_union sockaddr; - socklen_t len = sizeof(sockaddr); - serverSocket->getAddrInfo(sockaddr, len); - std::pair<std::string, uint16_t> addrinfo = - util::getNumericNameInfo(&sockaddr.sa, len); - std::string request = fmt("EPRT |%d|%s|%u|\r\n", - sockaddr.storage.ss_family == AF_INET ? 1 : 2, - addrinfo.first.c_str(), addrinfo.second); + auto endpoint = serverSocket->getAddrInfo(); + auto request = + fmt("EPRT |%d|%s|%u|\r\n", endpoint.family == AF_INET ? 1 : 2, + endpoint.addr.c_str(), endpoint.port); A2_LOG_INFO(fmt(MSG_SENDING_REQUEST, cuid_, request.c_str())); socketBuffer_.pushStr(std::move(request)); } @@ -222,15 +217,14 @@ bool FtpConnection::sendEprt(const std::shared_ptr<SocketCore>& serverSocket) bool FtpConnection::sendPort(const std::shared_ptr<SocketCore>& serverSocket) { if (socketBuffer_.sendBufferIsEmpty()) { - std::pair<std::string, uint16_t> addrinfo; - socket_->getAddrInfo(addrinfo); + auto endpoint = socket_->getAddrInfo(); int ipaddr[4]; - sscanf(addrinfo.first.c_str(), "%d.%d.%d.%d", &ipaddr[0], &ipaddr[1], + sscanf(endpoint.addr.c_str(), "%d.%d.%d.%d", &ipaddr[0], &ipaddr[1], &ipaddr[2], &ipaddr[3]); - serverSocket->getAddrInfo(addrinfo); - std::string request = + auto svEndpoint = serverSocket->getAddrInfo(); + auto request = fmt("PORT %d,%d,%d,%d,%d,%d\r\n", ipaddr[0], ipaddr[1], ipaddr[2], - ipaddr[3], addrinfo.second / 256, addrinfo.second % 256); + ipaddr[3], svEndpoint.port / 256, svEndpoint.port % 256); A2_LOG_INFO(fmt(MSG_SENDING_REQUEST, cuid_, request.c_str())); socketBuffer_.pushStr(std::move(request)); } |
