MCPcopy Create free account
hub / github.com/cppla/ServerStatus / net_udp_recv

Function net_udp_recv

server/src/system.c:1037–1065  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1035}
1036
1037int net_udp_recv(NETSOCKET sock, NETADDR *addr, void *data, int maxsize)
1038{
1039 char sockaddrbuf[128];
1040 socklen_t fromlen;// = sizeof(sockaddrbuf);
1041 int bytes = 0;
1042
1043 if(bytes == 0 && sock.ipv4sock >= 0)
1044 {
1045 fromlen = sizeof(struct sockaddr_in);
1046 bytes = recvfrom(sock.ipv4sock, (char*)data, maxsize, 0, (struct sockaddr *)&sockaddrbuf, &fromlen);
1047 }
1048
1049 if(bytes <= 0 && sock.ipv6sock >= 0)
1050 {
1051 fromlen = sizeof(struct sockaddr_in6);
1052 bytes = recvfrom(sock.ipv6sock, (char*)data, maxsize, 0, (struct sockaddr *)&sockaddrbuf, &fromlen);
1053 }
1054
1055 if(bytes > 0)
1056 {
1057 sockaddr_to_netaddr((struct sockaddr *)&sockaddrbuf, addr);
1058 network_stats.recv_bytes += bytes;
1059 network_stats.recv_packets++;
1060 return bytes;
1061 }
1062 else if(bytes == 0)
1063 return 0;
1064 return -1; /* error */
1065}
1066
1067int net_udp_close(NETSOCKET sock)
1068{

Callers

nothing calls this directly

Calls 1

sockaddr_to_netaddrFunction · 0.85

Tested by

no test coverage detected