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

Function SendTo

engine/dlib/src/dlib/socket_posix.cpp:438–469  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

436 }
437
438 Result SendTo(Socket socket, const void* buffer, int length, int* sent_bytes, Address to_addr, uint16_t to_port)
439 {
440 int result = 0;
441 if (IsSocketIPv4(socket))
442 {
443 assert(to_addr.m_family == DOMAIN_IPV4);
444
445 struct sockaddr_in sock_addr = { 0 };
446 sock_addr.sin_family = AF_INET;
447 sock_addr.sin_addr.s_addr = *IPv4(&to_addr);
448 sock_addr.sin_port = htons(to_port);
449
450 result = (int) sendto(socket, buffer, length, 0, (const sockaddr*) &sock_addr, sizeof(sock_addr));
451 }
452#if !defined(DM_IPV6_UNSUPPORTED)
453 else if (IsSocketIPv6(socket))
454 {
455 assert(to_addr.m_family == DOMAIN_IPV6);
456
457 struct sockaddr_in6 sock_addr = { 0 };
458 sock_addr.sin6_family = AF_INET6;
459 memcpy(&sock_addr.sin6_addr, IPv6(&to_addr), sizeof(struct in6_addr));
460 sock_addr.sin6_port = htons(to_port);
461
462 result = (int) sendto(socket, buffer, length, 0, (const sockaddr*) &sock_addr, sizeof(sock_addr));
463 }
464#endif // no ipv6
465 else
466 {
467 dmLogError("Failed to send to remote host, unsupported address family!");
468 return RESULT_AFNOSUPPORT;
469 }
470
471 *sent_bytes = result >= 0 ? result : 0;
472 return result >= 0 ? RESULT_OK : NativeToResultCompat(DM_SOCKET_ERRNO);

Callers

nothing calls this directly

Calls 3

IPv4Function · 0.85
IsSocketIPv4Function · 0.70
assertFunction · 0.50

Tested by

no test coverage detected