X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=net_udp.c;h=bd4a5de68e6f4dea1943ec8a3869890319859d27;hp=b77629807e8359e636b1d335ccea549dccfe6003;hb=f77435313179355cb5036c9150ab243788ed73b1;hpb=43ee5e136a693ac9cfb40cb03fceea7d3149104f diff --git a/net_udp.c b/net_udp.c index b7762980..bd4a5de6 100644 --- a/net_udp.c +++ b/net_udp.c @@ -64,7 +64,10 @@ int UDP_Init (void) // determine my name & address gethostname(buff, MAXHOSTNAMELEN); local = gethostbyname(buff); - myAddr = *(int *)local->h_addr_list[0]; + if (!local) + myAddr = htonl(INADDR_LOOPBACK); // default to the loopback address + else + myAddr = *(int *)local->h_addr_list[0]; // if the quake hostname isn't set, set it to the machine name if (strcmp(hostname.string, "UNNAMED") == 0) @@ -77,7 +80,7 @@ int UDP_Init (void) Sys_Error("UDP_Init: Unable to open control socket\n"); ((struct sockaddr_in *)&broadcastaddr)->sin_family = AF_INET; - ((struct sockaddr_in *)&broadcastaddr)->sin_addr.s_addr = INADDR_BROADCAST; + ((struct sockaddr_in *)&broadcastaddr)->sin_addr.s_addr = htonl(INADDR_BROADCAST); ((struct sockaddr_in *)&broadcastaddr)->sin_port = htons(net_hostport); UDP_GetSocketAddr (net_controlsocket, &addr); @@ -244,6 +247,20 @@ int UDP_CheckNewConnections (void) //============================================================================= +int UDP_Recv (qbyte *buf, int len, struct qsockaddr *addr) +{ + return UDP_Read (net_acceptsocket, buf, len, addr); +} + +//============================================================================= + +int UDP_Send (qbyte *buf, int len, struct qsockaddr *addr) +{ + return UDP_Write (net_acceptsocket, buf, len, addr); +} + +//============================================================================= + int UDP_Read (int socket, qbyte *buf, int len, struct qsockaddr *addr) { int addrlen = sizeof (struct qsockaddr); @@ -304,7 +321,7 @@ int UDP_Write (int socket, qbyte *buf, int len, struct qsockaddr *addr) //============================================================================= -char *UDP_AddrToString (struct qsockaddr *addr) +char *UDP_AddrToString (const struct qsockaddr *addr) { static char buffer[22]; int haddr; @@ -349,7 +366,7 @@ int UDP_GetSocketAddr (int socket, struct qsockaddr *addr) //============================================================================= -int UDP_GetNameFromAddr (struct qsockaddr *addr, char *name) +int UDP_GetNameFromAddr (const struct qsockaddr *addr, char *name) { struct hostent *hostentry; @@ -386,7 +403,7 @@ int UDP_GetAddrFromName(const char *name, struct qsockaddr *addr) //============================================================================= -int UDP_AddrCompare (struct qsockaddr *addr1, struct qsockaddr *addr2) +int UDP_AddrCompare (const struct qsockaddr *addr1, const struct qsockaddr *addr2) { if (addr1->sa_family != addr2->sa_family) return -1;