summaryrefslogtreecommitdiff
path: root/src/FtpConnection.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-01-09 18:16:08 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-01-09 18:17:04 +0900
commitea4d99ea087d8f1bafa812017efa26cb90d99947 (patch)
treef2a4b2e9cbbec1a2a98d5f452a230f116c47748a /src/FtpConnection.cc
parente899eba76f7b8f91805176db4460f91e0a4dd487 (diff)
Refactor SocketCore::getPeerInfo, getAddrInfo to return Endpoint object
Diffstat (limited to 'src/FtpConnection.cc')
-rw-r--r--src/FtpConnection.cc28
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));
}