MCPcopy Create free account
hub / github.com/defold/defold / Bind

Function Bind

engine/dlib/src/dlib/socket_posix.cpp:316–345  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

314 }
315
316 Result Bind(Socket socket, Address address, int port)
317 {
318 int result = 0;
319 if (IsSocketIPv4(socket))
320 {
321 assert(address.m_family == DOMAIN_IPV4);
322
323 struct sockaddr_in sock_addr = { 0 };
324 sock_addr.sin_family = AF_INET;
325 sock_addr.sin_addr.s_addr = *IPv4(&address);
326 sock_addr.sin_port = htons(port);
327 result = bind(socket, (struct sockaddr *) &sock_addr, sizeof(sock_addr));
328 }
329#if !defined(DM_IPV6_UNSUPPORTED)
330 else if (IsSocketIPv6(socket))
331 {
332 assert(address.m_family == DOMAIN_IPV6);
333
334 struct sockaddr_in6 sock_addr = { 0 };
335 sock_addr.sin6_family = AF_INET6;
336 memcpy(&sock_addr.sin6_addr, IPv6(&address), sizeof(struct in6_addr));
337 sock_addr.sin6_port = htons(port);
338 result = bind(socket, (struct sockaddr *) &sock_addr, sizeof(sock_addr));
339 }
340#endif // no ipv6
341 else
342 {
343 dmLogError("Failed to bind socket, unsupported address family!");
344 return RESULT_AFNOSUPPORT;
345 }
346
347 return result == 0 ? RESULT_OK : NATIVETORESULT(DM_SOCKET_ERRNO);
348 }

Callers

nothing calls this directly

Calls 3

IPv4Function · 0.85
IsSocketIPv4Function · 0.70
assertFunction · 0.50

Tested by

no test coverage detected