X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=net_udp.c;h=baf0ac4ab02cade1e02e54d67fea23bc2722458b;hp=ae384e1775056b029af412da6f193b970d3263fc;hb=93b64f3ca6ceb57a7b0aa9889e29240e35b9957b;hpb=cecffffdd5310e387e8b910735ff77aa329cdb43 diff --git a/net_udp.c b/net_udp.c index ae384e17..baf0ac4a 100644 --- a/net_udp.c +++ b/net_udp.c @@ -40,8 +40,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. extern int gethostname (char *, int); extern int close (int); -extern cvar_t hostname; - static int net_acceptsocket = -1; // socket for fielding new connections static int net_controlsocket; static int net_broadcastsocket = 0; @@ -169,7 +167,7 @@ this lets you type only as much of the net address as required, using the local network components to fill in the rest ============ */ -static int PartialIPAddress (char *in, struct qsockaddr *hostaddr) +static int PartialIPAddress (const char *in, struct qsockaddr *hostaddr) { char buff[256]; char *b; @@ -229,6 +227,9 @@ int UDP_Connect (int socket, struct qsockaddr *addr) int UDP_CheckNewConnections (void) { unsigned long available; + struct sockaddr_in from; + socklen_t fromlen; + char buff[1]; if (net_acceptsocket == -1) return -1; @@ -237,12 +238,27 @@ int UDP_CheckNewConnections (void) Sys_Error ("UDP: ioctlsocket (FIONREAD) failed\n"); if (available) return net_acceptsocket; + recvfrom (net_acceptsocket, buff, 0, 0, (struct sockaddr *) &from, &fromlen); return -1; } //============================================================================= -int UDP_Read (int socket, byte *buf, int len, struct qsockaddr *addr) +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); int ret; @@ -269,7 +285,7 @@ int UDP_MakeSocketBroadcastCapable (int socket) //============================================================================= -int UDP_Broadcast (int socket, byte *buf, int len) +int UDP_Broadcast (int socket, qbyte *buf, int len) { int ret; @@ -290,7 +306,7 @@ int UDP_Broadcast (int socket, byte *buf, int len) //============================================================================= -int UDP_Write (int socket, byte *buf, int len, struct qsockaddr *addr) +int UDP_Write (int socket, qbyte *buf, int len, struct qsockaddr *addr) { int ret; @@ -302,7 +318,7 @@ int UDP_Write (int socket, byte *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; @@ -314,7 +330,7 @@ char *UDP_AddrToString (struct qsockaddr *addr) //============================================================================= -int UDP_StringToAddr (char *string, struct qsockaddr *addr) +int UDP_StringToAddr (const char *string, struct qsockaddr *addr) { int ha1, ha2, ha3, ha4, hp; int ipaddr; @@ -347,7 +363,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; @@ -364,7 +380,7 @@ int UDP_GetNameFromAddr (struct qsockaddr *addr, char *name) //============================================================================= -int UDP_GetAddrFromName(char *name, struct qsockaddr *addr) +int UDP_GetAddrFromName(const char *name, struct qsockaddr *addr) { struct hostent *hostentry; @@ -384,7 +400,7 @@ int UDP_GetAddrFromName(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; @@ -412,4 +428,3 @@ int UDP_SetSocketPort (struct qsockaddr *addr, int port) return 0; } -//=============================================================================