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;
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);

View File

@ -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;

View File

@ -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,

View File

@ -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_,

View File

@ -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"),

View File

@ -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)

View File

@ -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.