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

pull/34/head
Tatsuhiro Tsujikawa 2012-11-15 21:09:10 +09:00
parent b2893f1e31
commit 6b2f5ab1f5
7 changed files with 11 additions and 15 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -153,7 +153,7 @@ public:
void bind(uint16_t port, int flags = AI_PASSIVE); void bind(uint16_t port, int flags = AI_PASSIVE);
void bind 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. * Listens form connection on it.