MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / bind

Method bind

source/core/StarSocket.cpp:113–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

111}
112
113void Socket::bind(HostAddressWithPort const& addressWithPort) {
114 WriteLocker locker(m_mutex);
115 checkOpen("Socket::bind");
116
117 struct sockaddr_storage sockAddr;
118 socklen_t sockAddrLen;
119
120 if (addressWithPort.address().mode() != m_networkMode)
121 throw NetworkException("Bind address does not match socket mode");
122
123 // Ensure quick restarts don't prevent us binding
124 int set = 1;
125 m_impl->setSockOpt(SOL_SOCKET, SO_REUSEADDR, (void*)&set, sizeof(int));
126
127 m_localAddress = addressWithPort;
128 setNativeFromAddress(m_localAddress, &sockAddr, &sockAddrLen);
129 if (::bind(m_impl->socketDesc, (struct sockaddr*)&sockAddr, sockAddrLen) < 0)
130 throw NetworkException(strf("Cannot bind socket to {}: {}", m_localAddress, netErrorString()));
131
132 m_socketMode = SocketMode::Bound;
133
134 Logger::debug("bind {} ({})", addressWithPort, m_impl->socketDesc);
135}
136
137void Socket::listen(int backlog) {
138 WriteLocker locker(m_mutex);

Callers 2

UdpServerMethod · 0.80
listenMethod · 0.80

Calls 6

setNativeFromAddressFunction · 0.85
strfFunction · 0.85
netErrorStringFunction · 0.85
addressMethod · 0.80
setSockOptMethod · 0.80
modeMethod · 0.45

Tested by

no test coverage detected