From 38b98c9ecd0c300d40ae6db05ab9dc2b9189df8d Mon Sep 17 00:00:00 2001 From: oroborus Date: Tue, 1 Jul 2008 17:53:41 +0000 Subject: - oprava chyby pri teleportacii lasserov - skutocne opravena chybya s neinicializovany audiom, a strielanim pri chodeni - ZeXxove patche pre spojenie s master serverom - client zobrazuje hlasku ak sa nepodarilo spojit zo serverom alebo sppojenie nasilne ukoncilo git-svn-id: http://opensvn.csie.org/tuxanci_ng@81 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/net_unix/udp.c | 15 +++++++++++++++ src/net_unix/udp.h | 1 + 2 files changed, 16 insertions(+) (limited to 'src/net_unix') diff --git a/src/net_unix/udp.c b/src/net_unix/udp.c index a701d48..79df4b0 100644 --- a/src/net_unix/udp.c +++ b/src/net_unix/udp.c @@ -12,6 +12,7 @@ #include #include #include +#include #define BUFSIZE 1000 @@ -149,6 +150,20 @@ sock_udp_t* connectUdpSocket(char *address, int port, int proto) return new; } +int setUdpSockNonBlock(sock_udp_t *p) +{ + int oldFlag; + + oldFlag = fcntl (p->sock, F_GETFL, 0); + + if( fcntl(p->sock, F_SETFL, oldFlag|O_NONBLOCK ) == -1 ) + { + return -1; + } + + return 0; +} + int readUdpSocket(sock_udp_t *src, sock_udp_t *dst, void *address, int len) { int addrlen; diff --git a/src/net_unix/udp.h b/src/net_unix/udp.h index e5fd648..a8d935f 100644 --- a/src/net_unix/udp.h +++ b/src/net_unix/udp.h @@ -22,6 +22,7 @@ extern sock_udp_t* newSockUdp(int proto); extern void destroySockUdp(sock_udp_t *p); extern sock_udp_t* bindUdpSocket(char *address, int port, int proto); extern sock_udp_t* connectUdpSocket(char *address, int port, int proto); +extern int setUdpSockNonBlock(sock_udp_t *p); extern int readUdpSocket(sock_udp_t *src, sock_udp_t *dst, void *address, int len); extern int writeUdpSocket(sock_udp_t *src, sock_udp_t *dst, void *address, int len); extern void getSockUdpIp(sock_udp_t *p, char *str_ip, int len); -- cgit v1.2.3