Quellcode durchsuchen

SocketCore::bind now accepts const char* host instead of std::string

Tatsuhiro Tsujikawa vor 13 Jahren
Ursprung
Commit
6b2f5ab1f5

+ 1 - 5
src/DHTConnectionImpl.cc

@@ -77,11 +77,7 @@ bool DHTConnectionImpl::bind(uint16_t& port, const std::string& addr)
 {
   const int ipv = (family_ == AF_INET) ? 4 : 6;
   try {
-    if(addr.empty()) {
-      socket_->bind(A2STR::NIL, port, family_);
-    } else {
-      socket_->bind(addr, port, family_);
-    }
+    socket_->bind(addr.c_str(), port, family_);
     socket_->setNonBlockingMode();
     std::pair<std::string, uint16_t> svaddr;
     socket_->getAddrInfo(svaddr);

+ 1 - 1
src/FtpConnection.cc

@@ -204,7 +204,7 @@ SharedHandle<SocketCore> FtpConnection::createServerSocket()
   std::pair<std::string, uint16_t> addrinfo;
   socket_->getAddrInfo(addrinfo);
   SharedHandle<SocketCore> serverSocket(new SocketCore());
-  serverSocket->bind(addrinfo.first, 0, AF_UNSPEC);
+  serverSocket->bind(addrinfo.first.c_str(), 0, AF_UNSPEC);
   serverSocket->beginListen();
   serverSocket->setNonBlockingMode();
   return serverSocket;

+ 1 - 1
src/HttpListenCommand.cc

@@ -105,7 +105,7 @@ bool HttpListenCommand::bindPort(uint16_t port)
     if(e_->getOption()->getAsBool(PREF_RPC_LISTEN_ALL)) {
       flags = AI_PASSIVE;
     }
-    serverSocket_->bind(A2STR::NIL, port, family_, flags);
+    serverSocket_->bind(0, port, family_, flags);
     serverSocket_->beginListen();
     serverSocket_->setNonBlockingMode();
     A2_LOG_INFO(fmt(MSG_LISTENING_PORT,

+ 1 - 1
src/LpdMessageReceiver.cc

@@ -60,7 +60,7 @@ bool LpdMessageReceiver::init(const std::string& localAddr)
     // Binding multicast address fails under Windows.
     socket_->bindWithFamily(multicastPort_, AF_INET);
 #else // !__MINGW32__
-    socket_->bind(multicastAddress_, multicastPort_, AF_INET);
+    socket_->bind(multicastAddress_.c_str(), multicastPort_, AF_INET);
 #endif // !__MINGW32__
     A2_LOG_DEBUG(fmt("Joining multicast group. %s:%u, localAddr=%s",
                      multicastAddress_.c_str(), multicastPort_,

+ 1 - 1
src/PeerListenCommand.cc

@@ -77,7 +77,7 @@ bool PeerListenCommand::bindPort(uint16_t& port, SegList<int>& sgl)
         eoi = ports.end(); i != eoi; ++i) {
     port = *i;
     try {
-      socket_->bind(A2STR::NIL, port, family_);
+      socket_->bind(0, port, family_);
       socket_->beginListen();
       socket_->setNonBlockingMode();
       A2_LOG_NOTICE(fmt(_("IPv%d BitTorrent: listening to port %u"),

+ 5 - 5
src/SocketCore.cc

@@ -287,15 +287,15 @@ void SocketCore::bindWithFamily(uint16_t port, int family, int flags)
 }
 
 void SocketCore::bind
-(const std::string& addr, uint16_t port, int family, int flags)
+(const char* addr, uint16_t port, int family, int flags)
 {
   closeConnection();
   std::string error;
   const char* addrp;
-  if(addr.empty()) {
-    addrp = 0;
+  if(addr && addr[0]) {
+    addrp = addr;
   } else {
-    addrp = addr.c_str();
+    addrp = 0;
   }
   if(!(flags&AI_PASSIVE) || bindAddrs_.empty()) {
     sock_t fd = bindTo(addrp, port, family, sockType_, flags, error);
@@ -332,7 +332,7 @@ void SocketCore::bind
 
 void SocketCore::bind(uint16_t port, int flags)
 {
-  bind(A2STR::NIL, port, protocolFamily_, flags);
+  bind(0, port, protocolFamily_, flags);
 }
 
 void SocketCore::bind(const struct sockaddr* addr, socklen_t addrlen)

+ 1 - 1
src/SocketCore.h

@@ -153,7 +153,7 @@ public:
   void bind(uint16_t port, int flags = AI_PASSIVE);
 
   void bind
-  (const std::string& addr, uint16_t port, int family, int flags = AI_PASSIVE);
+  (const char* addrp, uint16_t port, int family, int flags = AI_PASSIVE);
 
   /**
    * Listens form connection on it.