summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.h2
-rw-r--r--server.conf2
-rw-r--r--src/server.c17
3 files changed, 16 insertions, 5 deletions
diff --git a/config.h b/config.h
index 55b2488..14e7014 100644
--- a/config.h
+++ b/config.h
@@ -6,7 +6,7 @@
#define DEBUG_CLIENT_RECV
*/
-#define TUXANCI_NG_VERSION "svn70"
+#define TUXANCI_NG_VERSION "svn71"
#define DESTDIR "/usr/local/"
#define SUPPORT_NET_UNIX_UDP
diff --git a/server.conf b/server.conf
index b9f080b..dbbf6a8 100644
--- a/server.conf
+++ b/server.conf
@@ -4,5 +4,3 @@ PORTv4 2200
PORTv6 2206
MAX_CLIENTS 32
ARENA FAGN
-
-
diff --git a/src/server.c b/src/server.c
index 1f42774..4575381 100644
--- a/src/server.c
+++ b/src/server.c
@@ -304,8 +304,10 @@ void destroyClient(client_t *p)
assert( p != NULL );
+#ifdef SUPPORT_NET_UNIX_UDP
getSockUdpIp(p->socket_udp, str_ip, STR_IP_SIZE);
printf("close connect %s %d\n", str_ip, getSockUdpPort(p->socket_udp) );
+#endif
#ifdef SUPPORT_NET_UNIX_UDP
closeUdpSocket(p->socket_udp);
@@ -361,12 +363,23 @@ void sendClient(client_t *p, char *msg)
#endif
#ifdef SUPPORT_NET_UNIX_UDP
- if( p->socket_udp->proto == PROTO_UDPv4 )
+ if( p->socket_udp->proto == PROTO_UDPv4 &&
+ sock_server_udp != NULL &&
+ sock_server_udp->proto == PROTO_UDPv4 )
+ {
+ ret = writeUdpSocket(sock_server_udp, p->socket_udp, msg, strlen(msg));
+ }
+
+ if( p->socket_udp->proto == PROTO_UDPv6 &&
+ sock_server_udp != NULL &&
+ sock_server_udp->proto == PROTO_UDPv6 )
{
ret = writeUdpSocket(sock_server_udp, p->socket_udp, msg, strlen(msg));
}
- if( p->socket_udp->proto == PROTO_UDPv6 )
+ if( p->socket_udp->proto == PROTO_UDPv6 &&
+ sock_server_udp_second != NULL &&
+ sock_server_udp_second->proto == PROTO_UDPv6 )
{
ret = writeUdpSocket(sock_server_udp_second, p->socket_udp, msg, strlen(msg));
}