summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/dns.c13
-rw-r--r--src/net/dns.h6
-rw-r--r--src/net/tcp.c112
-rw-r--r--src/net/tcp.h55
-rw-r--r--src/net/udp.c166
-rw-r--r--src/net/udp.h47
6 files changed, 144 insertions, 255 deletions
diff --git a/src/net/dns.c b/src/net/dns.c
index 156aeb4..f716047 100644
--- a/src/net/dns.c
+++ b/src/net/dns.c
@@ -1,15 +1,14 @@
#ifndef __WIN32__
-# include <sys/socket.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
-# include <netdb.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
#else
-# include <windows.h>
-# include <wininet.h>
+#include <windows.h>
+#include <wininet.h>
#endif
#include <string.h>
-
#include "main.h"
char *gns_resolv(char *domain)
diff --git a/src/net/dns.h b/src/net/dns.h
index 38e6a9f..9166094 100644
--- a/src/net/dns.h
+++ b/src/net/dns.h
@@ -1,8 +1,6 @@
-
#ifndef DNS_H
-
-# define DNS_H
+#define DNS_H
extern char *gns_resolv(char *domain);
-#endif
+#endif /* DNS_H */
diff --git a/src/net/tcp.c b/src/net/tcp.c
index 4370cf9..3ef941b 100644
--- a/src/net/tcp.c
+++ b/src/net/tcp.c
@@ -1,4 +1,3 @@
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -15,10 +14,11 @@
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <fcntl.h>
-#else
+#else /* __WIN32__ */
#include <windows.h>
#include <wininet.h>
-#endif // __WIN32__
+#endif /* __WIN32__ */
+
#include <unistd.h>
#include <assert.h>
@@ -34,7 +34,7 @@ sock_tcp_t *sock_tcp_new(void)
return new;
}
-void sock_tcp_destroy(sock_tcp_t * p)
+void sock_tcp_destroy(sock_tcp_t *p)
{
assert(p != NULL);
free(p);
@@ -42,10 +42,12 @@ void sock_tcp_destroy(sock_tcp_t * p)
static int getProto(char *str)
{
- if( strstr(str, ".") != NULL )return PROTO_TCPv4;
- if( strstr(str, ":") != NULL )return PROTO_TCPv6;
+ if (strstr(str, ".") != NULL)
+ return PROTO_TCPv4;
+ if (strstr(str, ":") != NULL)
+ return PROTO_TCPv6;
- assert( ! "Protocol not detected !" );
+ assert(!_("[Error] Network protocol not detected"));
return -1;
}
@@ -60,14 +62,13 @@ sock_tcp_t *sock_tcp_bind(char *address, int port)
new = sock_tcp_new();
new->proto = getProto(address);
- ret = -1; // no Warnings
+ ret = -1; /* no warnings */
assert(new != NULL);
if (new->proto == PROTO_TCPv4) {
new->sock = socket(AF_INET, SOCK_STREAM, 0);
}
-
#ifdef SUPPORT_IPv6
if (new->proto == PROTO_TCPv6) {
new->sock = socket(AF_INET6, SOCK_STREAM, 0);
@@ -75,7 +76,7 @@ sock_tcp_t *sock_tcp_bind(char *address, int port)
#endif
if (new->sock < 0) {
- fprintf(stderr, _("Unable to create socket when connecting!\n"));
+ fprintf(stderr, _("[Error] Unable to create TCP socket\n"));
sock_tcp_destroy(new);
#ifdef __WIN32__
WSACleanup();
@@ -83,8 +84,7 @@ sock_tcp_t *sock_tcp_bind(char *address, int port)
return NULL;
}
- setsockopt(new->sock, SOL_SOCKET, SO_REUSEADDR, (char *) &param_setsock,
- sizeof(param_setsock));
+ setsockopt(new->sock, SOL_SOCKET, SO_REUSEADDR, (char *) &param_setsock, sizeof(param_setsock));
if (new->proto == PROTO_TCPv4) {
new->sockAddr.sin_family = AF_INET;
@@ -101,21 +101,21 @@ sock_tcp_t *sock_tcp_bind(char *address, int port)
#ifdef SUPPORT_IPv6
if (new->proto == PROTO_TCPv6) {
new->sockAddr6.sin6_family = AF_INET6;
- //new->sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);
+ /*new->sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);*/
#ifndef __WIN32__
inet_pton(AF_INET6, address, &(new->sockAddr6.sin6_addr));
-#else
+#else /* __WIN32__ */
new->sockAddr6.sin6_addr.s_addr = inet_addr(address);
-#endif
+#endif /* __WIN32__ */
new->sockAddr6.sin6_port = htons(port);
len = sizeof(new->sockAddr6);
ret = bind(new->sock, (struct sockaddr *) &new->sockAddr6, len);
}
-#endif
+#endif /* SUPPORT_IPv6 */
if (ret < 0) {
- fprintf(stderr, _("Unable to bint to port: %d\n"), port);
+ fprintf(stderr, _("[Error] Unable to bind to TCP port [%d]\n"), port);
sock_tcp_destroy(new);
#ifdef __WIN32__
WSACleanup();
@@ -128,7 +128,7 @@ sock_tcp_t *sock_tcp_bind(char *address, int port)
return new;
}
-sock_tcp_t *sock_tcp_accept(sock_tcp_t * p)
+sock_tcp_t *sock_tcp_accept(sock_tcp_t *p)
{
sock_tcp_t *new;
int client_len;
@@ -142,24 +142,23 @@ sock_tcp_t *sock_tcp_accept(sock_tcp_t * p)
if (new->proto == PROTO_TCPv4) {
client_len = sizeof(new->sockAddr);
#ifndef __WIN32__
- new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr, (socklen_t *) & client_len);
+ new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr, (socklen_t *) &client_len);
#else
- new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr, (long *) & client_len);
+ new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr, (long *) &client_len);
#endif
}
#ifdef SUPPORT_IPv6
if (new->proto == PROTO_TCPv6) {
client_len = sizeof(new->sockAddr6);
#ifndef __WIN32__
- new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr6, (socklen_t *) & client_len);
-#else
- new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr6, (long *) & client_len);
-#endif
+ new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr6, (socklen_t *) &client_len);
+#else /* __WIN32__ */
+ new->sock = accept(p->sock, (struct sockaddr *) &new->sockAddr6, (long *) &client_len);
+#endif /* __WIN32__ */
}
-#endif
+#endif /* SUPPORT_IPv6 */
if (new->sock < 0) {
- //printf("XXX\n");
sock_tcp_destroy(new);
#ifdef __WIN32__
WSACleanup();
@@ -170,33 +169,31 @@ sock_tcp_t *sock_tcp_accept(sock_tcp_t * p)
return new;
}
-void sock_tcp_get_ip(sock_tcp_t * p, char *str_ip, int len)
+void sock_tcp_get_ip(sock_tcp_t *p, char *str_ip, int len)
{
assert(p != NULL);
assert(str_ip != NULL);
-
if (p->proto == PROTO_TCPv4) {
#ifndef __WIN32__
inet_ntop(AF_INET, &(p->sockAddr.sin_addr), str_ip, len);
#else
strcpy(str_ip, inet_ntoa(p->sockAddr.sin_addr));
#endif
- //printf("strcpy(str_ip, inet_ntoa(p->sockAddr.sin_addr));\n");
}
#ifdef SUPPORT_IPv6
if (p->proto == PROTO_TCPv6) {
#ifndef __WIN32__
inet_ntop(AF_INET6, &(p->sockAddr6.sin6_addr), str_ip, len);
-#else
- // not tested
+#else /* __WIN32__ */
+ /* NOT TESTED */
strcpy(str_ip, inet_ntoa(p->sockAddr6.sin6_addr));
-#endif // __WIN32__
+#endif /* __WIN32__ */
}
-#endif // SUPPORT_IPv6
+#endif /* SUPPORT_IPv6 */
}
-int sock_tcp_get_port(sock_tcp_t * p)
+int sock_tcp_get_port(sock_tcp_t *p)
{
assert(p != NULL);
@@ -209,7 +206,7 @@ int sock_tcp_get_port(sock_tcp_t * p)
}
#endif
- assert(!_("Bad IP proto!"));
+ assert(!_("[Error] Bad IP protocol"));
return -1;
}
@@ -225,12 +222,11 @@ sock_tcp_t *sock_tcp_connect(char *ip, int port)
new = sock_tcp_new();
new->proto = getProto(ip);
- ret = -1; // no Warnnings
+ ret = -1; /* no warnings */
if (new->proto == PROTO_TCPv4) {
new->sock = socket(AF_INET, SOCK_STREAM, 0);
}
-
#ifdef SUPPORT_IPv6
if (new->proto == PROTO_TCPv6) {
new->sock = socket(AF_INET6, SOCK_STREAM, 0);
@@ -238,7 +234,7 @@ sock_tcp_t *sock_tcp_connect(char *ip, int port)
#endif
if (new->sock < 0) {
- fprintf(stderr, _("Unable to create TCP socket!\n"));
+ fprintf(stderr, _("[Error] Unable to create TCP socket for connecting\n"));
sock_tcp_destroy(new);
#ifdef __WIN32__
WSACleanup();
@@ -254,7 +250,6 @@ sock_tcp_t *sock_tcp_connect(char *ip, int port)
len = sizeof(new->sockAddr);
ret = connect(new->sock, (struct sockaddr *) &new->sockAddr, len);
}
-
#ifdef SUPPORT_IPv6
if (new->proto == PROTO_TCPv6) {
new->sockAddr6.sin6_family = AF_INET6;
@@ -267,8 +262,7 @@ sock_tcp_t *sock_tcp_connect(char *ip, int port)
#endif
if (ret < 0) {
- fprintf(stderr, "Unable to connect on: \"%s\" port: \"%d\"\n", ip,
- port);
+ fprintf(stderr, "[Error] Unable to connect to [%s]:%d\n", ip, port);
sock_tcp_destroy(new);
#ifdef __WIN32__
WSACleanup();
@@ -276,49 +270,37 @@ sock_tcp_t *sock_tcp_connect(char *ip, int port)
return NULL;
}
-
return new;
}
-int sock_tcp_diable_nagle(sock_tcp_t * p)
+int sock_tcp_diable_nagle(sock_tcp_t *p)
{
int flag = 1;
-
int result;
- result = setsockopt(p->sock, /* socket affected */
- IPPROTO_TCP, /* set option at TCP level */
- TCP_NODELAY, /* name of option */
- (char *) &flag, /* the cast is historical cruft */
- sizeof(int)); /* length of option value */
-
-#if 0
- if (result < 0) {
- printf("disabled nagle error\n");
- } else {
- printf("disabled nagle OK\n");
- }
-#endif
+ result = setsockopt(p->sock, /* affected socket */
+ IPPROTO_TCP, /* set option at TCP level */
+ TCP_NODELAY, /* name of the option */
+ (char *) &flag, /* the cast is a historical cruft */
+ sizeof(int)); /* length of the option value */
return result;
}
-int sock_tcp_set_non_block(sock_tcp_t * p)
+int sock_tcp_set_non_block(sock_tcp_t *p)
{
- /* Set to nonblocking socket mode */
+ /* set to nonblocking socket mode */
#ifndef __WIN32__
int oldFlag;
oldFlag = fcntl(p->sock, F_GETFL, 0);
if (fcntl(p->sock, F_SETFL, oldFlag | O_NONBLOCK) == -1) {
- //printf("error sock_tcp_set_non_block\n");
return -1;
}
- //printf("sock_tcp_set_non_block OK\n");
#else
unsigned long arg = 1;
- // Operation is FIONBIO. Parameter is pointer on non-zero number.
+ /* operation is FIONBIO; parameter is a pointer on non-zero number */
if (ioctlsocket(p->sock, FIONBIO, &arg) == SOCKET_ERROR) {
WSACleanup();
return -1;
@@ -327,7 +309,7 @@ int sock_tcp_set_non_block(sock_tcp_t * p)
return 0;
}
-int sock_tcp_read(sock_tcp_t * p, void *address, int len)
+int sock_tcp_read(sock_tcp_t *p, void *address, int len)
{
assert(p != NULL);
assert(address != NULL);
@@ -335,7 +317,7 @@ int sock_tcp_read(sock_tcp_t * p, void *address, int len)
return read(p->sock, address, len);
}
-int sock_tcp_write(sock_tcp_t * p, void *address, int len)
+int sock_tcp_write(sock_tcp_t *p, void *address, int len)
{
assert(p != NULL);
assert(address != NULL);
@@ -343,7 +325,7 @@ int sock_tcp_write(sock_tcp_t * p, void *address, int len)
return write(p->sock, address, len);
}
-void sock_tcp_close(sock_tcp_t * p)
+void sock_tcp_close(sock_tcp_t *p)
{
assert(p != NULL);
diff --git a/src/net/tcp.h b/src/net/tcp.h
index cdeb2e6..57e9c5e 100644
--- a/src/net/tcp.h
+++ b/src/net/tcp.h
@@ -1,46 +1,45 @@
-
#ifndef MY_TCP_H
+#define MY_TCP_H
-# define MY_TCP_H
-# include "main.h"
+#include "main.h"
-# ifndef __WIN32__
-# include <sys/socket.h>
-# include <netinet/in.h>
-# include <netinet/tcp.h>
-# else
-# include <windows.h>
-# include <wininet.h>
-# endif
+#ifndef __WIN32__
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#else
+#include <windows.h>
+#include <wininet.h>
+#endif
-# define PROTO_TCPv4 0
-# define PROTO_TCPv6 1
+#define PROTO_TCPv4 0
+#define PROTO_TCPv6 1
typedef struct struct_sock_tcp_t {
-# ifndef __WIN32_
+#ifndef __WIN32_
int sock;
-# else
+#else
SOCKET sock;
-# endif
+#endif
int proto;
struct sockaddr_in sockAddr;
-# ifdef SUPPORT_IPv6
+# ifdef SUPPORT_IPv6
struct sockaddr_in6 sockAddr6;
-# endif
+# endif
} sock_tcp_t;
extern sock_tcp_t *sock_tcp_new(void);
-extern void sock_tcp_destroy(sock_tcp_t * p);
+extern void sock_tcp_destroy(sock_tcp_t *p);
extern sock_tcp_t *sock_tcp_bind(char *addresss, int port);
-extern sock_tcp_t *sock_tcp_accept(sock_tcp_t * p);
-extern void sock_tcp_get_ip(sock_tcp_t * p, char *str_ip, int len);
-extern int sock_tcp_get_port(sock_tcp_t * p);
+extern sock_tcp_t *sock_tcp_accept(sock_tcp_t *p);
+extern void sock_tcp_get_ip(sock_tcp_t *p, char *str_ip, int len);
+extern int sock_tcp_get_port(sock_tcp_t *p);
extern sock_tcp_t *sock_tcp_connect(char *ip, int port);
-extern int sock_tcp_diable_nagle(sock_tcp_t * p);
-extern int sock_tcp_set_non_block(sock_tcp_t * p);
-extern int sock_tcp_read(sock_tcp_t * p, void *address, int len);
-extern int sock_tcp_write(sock_tcp_t * p, void *address, int len);
-extern void sock_tcp_close(sock_tcp_t * p);
+extern int sock_tcp_diable_nagle(sock_tcp_t *p);
+extern int sock_tcp_set_non_block(sock_tcp_t *p);
+extern int sock_tcp_read(sock_tcp_t *p, void *address, int len);
+extern int sock_tcp_write(sock_tcp_t *p, void *address, int len);
+extern void sock_tcp_close(sock_tcp_t *p);
-#endif
+#endif /* MY_TCP_H */
diff --git a/src/net/udp.c b/src/net/udp.c
index b13fa1f..2cf8626 100644
--- a/src/net/udp.c
+++ b/src/net/udp.c
@@ -1,38 +1,38 @@
-
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#ifndef __WIN32__
-# include <sys/socket.h>
-# include <sys/types.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
-# include <netdb.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
#else
-# include <windows.h>
-# include <wininet.h>
+#include <windows.h>
+#include <wininet.h>
#endif
#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
#include <assert.h>
#include <fcntl.h>
-
-#define BUFSIZE 1000
-
#include "main.h"
#include "net_multiplayer.h"
#include "udp.h"
#include "dns.h"
+#define BUFSIZE 1000
+
static int getProto(char *str)
{
- if( strstr(str, ".") != NULL )return PROTO_UDPv4;
- if( strstr(str, ":") != NULL )return PROTO_UDPv6;
+ if (strstr(str, ".") != NULL)
+ return PROTO_UDPv4;
+ if (strstr(str, ":") != NULL)
+ return PROTO_UDPv6;
- assert( ! "Protocol not detected !" );
+ assert(!_("[Error] Network protocol not detected"));
return -1;
}
@@ -55,7 +55,7 @@ void sock_udp_destroy(sock_udp_t *p)
sock_udp_t *sock_udp_bind(char *address, int port)
{
sock_udp_t *new;
- int res = -1; // no warninng
+ ret = -1; /* no warnings */
assert(port > 0 && port < 65535);
@@ -67,7 +67,6 @@ sock_udp_t *sock_udp_bind(char *address, int port)
if (new->proto == PROTO_UDPv4) {
new->sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
}
-
#ifdef SUPPORT_IPv6
if (new->proto == PROTO_UDPv6) {
new->sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
@@ -75,7 +74,7 @@ sock_udp_t *sock_udp_bind(char *address, int port)
#endif
if (new->sock < 0) {
- fprintf(stderr, _("Unable to create socket when binding!\n"));
+ fprintf(stderr, _("[Error] Unable to create UDP socket\n"));
sock_udp_destroy(new);
#ifdef __WIN32__
WSACleanup();
@@ -103,7 +102,7 @@ sock_udp_t *sock_udp_bind(char *address, int port)
#endif
if (res < 0) {
- fprintf(stderr, _("Unable to set socket %s %d!\n"), address, port);
+ fprintf(stderr, _("[Error] Unable to bind UDP socket to [%s]:%d\n"), address, port);
sock_udp_destroy(new);
#ifdef __WIN32__
WSACleanup();
@@ -129,7 +128,6 @@ sock_udp_t *sock_udp_connect(char *address, int port)
if (new->proto == PROTO_UDPv4) {
new->sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
}
-
#ifdef SUPPORT_IPv6
if (new->proto == PROTO_UDPv6) {
new->sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
@@ -137,7 +135,7 @@ sock_udp_t *sock_udp_connect(char *address, int port)
#endif
if (new->sock < 0) {
- fprintf(stderr, _("Unable to create socket when connecting!\n"));
+ fprintf(stderr, _("[Error] Unable to create UDP socket for connecting\n"));
sock_udp_destroy(new);
#ifdef __WIN32__
WSACleanup();
@@ -145,10 +143,11 @@ sock_udp_t *sock_udp_connect(char *address, int port)
return NULL;
}
- char *domain = gns_resolv (address);
+ char *domain = gns_resolv(address);
- if (domain)
+ if (domain) {
address = domain;
+ }
memset(&(new->sockAddr), 0, sizeof(new->sockAddr));
@@ -164,15 +163,16 @@ sock_udp_t *sock_udp_connect(char *address, int port)
inet_pton(AF_INET6, address, &(new->sockAddr6.sin6_addr));
}
#endif
- if (domain)
- free (domain);
+ if (domain) {
+ free(domain);
+ }
return new;
}
int sock_udp_set_non_block(sock_udp_t *p)
{
- /* Set to nonblocking socket mode */
+ /* set to nonblocking socket mode */
#ifndef __WIN32__
int oldFlag;
@@ -183,7 +183,7 @@ int sock_udp_set_non_block(sock_udp_t *p)
}
#else
unsigned long arg = 1;
- // Operation is FIONBIO. Parameter is pointer on non-zero number.
+ /* operation is FIONBIO; parameter is a pointer on non-zero number */
if (ioctlsocket(p->sock, FIONBIO, &arg) == SOCKET_ERROR) {
WSACleanup();
return -1;
@@ -195,7 +195,7 @@ int sock_udp_set_non_block(sock_udp_t *p)
int sock_udp_read(sock_udp_t *src, sock_udp_t *dst, void *address, int len)
{
int addrlen;
- int size = -1; // no warninng
+ int size = -1; /* no warnings */
assert(src != NULL);
assert(dst != NULL);
@@ -205,23 +205,16 @@ int sock_udp_read(sock_udp_t *src, sock_udp_t *dst, void *address, int len)
addrlen = sizeof(src->sockAddr);
#ifndef __WIN32
- size = recvfrom(src->sock, address, len, 0,
- (struct sockaddr *) &dst->sockAddr,
- (socklen_t *) & addrlen);
+ size = recvfrom(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr, (socklen_t *) &addrlen);
#else
- size =
- recvfrom(src->sock, address, len, 0,
- (struct sockaddr *) &dst->sockAddr, (int *) &addrlen);
+ size = recvfrom(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr, (int *) &addrlen);
#endif
}
-
#ifdef SUPPORT_IPv6
if (src->proto == PROTO_UDPv6) {
addrlen = sizeof(src->sockAddr6);
- size = recvfrom(src->sock, address, len, 0,
- (struct sockaddr *) &dst->sockAddr6,
- (socklen_t *) & addrlen);
+ size = recvfrom(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr6, (socklen_t *) &addrlen);
}
#endif
@@ -233,8 +226,7 @@ int sock_udp_read(sock_udp_t *src, sock_udp_t *dst, void *address, int len)
sock_udp_get_ip(dst, str_ip, STR_IP_SIZE);
- fprintf(stderr, _("Unable to read form socket %d %s %d!\n"), size,
- str_ip, sock_udp_get_port(dst));
+ fprintf(stderr, _("[Error] Unable to read from UDP socket [%s]:%d (read %d bytes)\n"), str_ip, sock_udp_get_port(dst), size);
#ifdef __WIN32__
WSACleanup();
@@ -248,7 +240,7 @@ int sock_udp_read(sock_udp_t *src, sock_udp_t *dst, void *address, int len)
int sock_udp_write(sock_udp_t *src, sock_udp_t *dst, void *address, int len)
{
int addrlen;
- int size = -1; // no warninng
+ int size = -1; /* no warnings */
assert(src != NULL);
assert(dst != NULL);
@@ -257,15 +249,13 @@ int sock_udp_write(sock_udp_t *src, sock_udp_t *dst, void *address, int len)
if (src->proto == PROTO_UDPv4) {
addrlen = sizeof(src->sockAddr);
- size = sendto(src->sock, address, len, 0,
- (struct sockaddr *) &dst->sockAddr, addrlen);
+ size = sendto(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr, addrlen);
}
#ifdef SUPPORT_IPv6
if (src->proto == PROTO_UDPv6) {
addrlen = sizeof(src->sockAddr6);
- size = sendto(src->sock, address, len, 0,
- (struct sockaddr *) &dst->sockAddr6, addrlen);
+ size = sendto(src->sock, address, len, 0, (struct sockaddr *) &dst->sockAddr6, addrlen);
}
#endif
@@ -274,10 +264,8 @@ int sock_udp_write(sock_udp_t *src, sock_udp_t *dst, void *address, int len)
sock_udp_get_ip(dst, str_ip, STR_IP_SIZE);
- fprintf(stderr, _("Unable to write on socket %d %s %d %d!\n"), size,
- str_ip, sock_udp_get_port(dst), dst->proto);
+ fprintf(stderr, _("[Error] Unable to write to socket [%s]:%d with protocol %d (written %d bytes)\n"), str_ip, sock_udp_get_port(dst), dst->proto, size);
- //assert(0);
#ifdef __WIN32__
WSACleanup();
#endif
@@ -298,7 +286,6 @@ void sock_udp_get_ip(sock_udp_t *p, char *str_ip, int len)
inet_ntop(AF_INET, &(p->sockAddr.sin_addr), str_ip, len);
#else
strcpy(str_ip, inet_ntoa(p->sockAddr.sin_addr));
- //printf("strcpy(str_ip, inet_ntoa(p->sockAddr.sin_addr));\n");
#endif
}
#ifdef SUPPORT_IPv6
@@ -321,12 +308,11 @@ int sock_udp_get_port(sock_udp_t *p)
}
#endif
- assert(!_("Bad IP proto!"));
+ assert(!_("[Error] Bad IP protocol"));
return -1;
}
-
void sock_udp_close(sock_udp_t *p)
{
assert(p != NULL);
@@ -335,79 +321,7 @@ void sock_udp_close(sock_udp_t *p)
close(p->sock);
#else
closesocket(p->sock);
- //WSACleanup(); //kdyz ukoncime socket dobre neni treba cleanup
+ /*WSACleanup(); -- when the socket is closed correctly, it is not needed to do a cleanup */
#endif
sock_udp_destroy(p);
}
-
-#if 0
-
-static int myWait(sock_udp_t *p)
-{
- fd_set readfds;
- fd_set errorfds;
- struct timeval tv;
- int max_fd;
-
- tv.tv_sec = 1;
- tv.tv_usec = 0;
-
- FD_ZERO(&readfds);
- FD_ZERO(&errorfds);
- max_fd = p->sock;
-
- FD_SET(p->sock, &readfds);
- FD_SET(p->sock, &errorfds);
-
- select(max_fd + 1, &readfds, (fd_set *) 0, &errorfds, &tv);
-
- if (FD_ISSET(p->sock, &readfds)) {
- FD_CLR(p->sock, &readfds);
- return 1;
- }
-
- return 0;
-}
-
-int main(int argc, char *argv[])
-{
- sock_udp_t *sock;
- char buf[BUFSIZE];
- int ret;
-
- if (strcmp(argv[1], "s") == 0) {
- sock_udp_t *cli;
-
- //sock = sock_udp_bind("::1", atoi(argv[2]), PROTO_UDPv6 );
- sock = sock_udp_bind("127.0.0.1", atoi(argv[2]), PROTO_UDPv4);
-
- //cli = sock_udp_new(PROTO_UDPv6);
- cli = sock_udp_new(PROTO_UDPv4);
-
- while (1) {
- while (myWait(sock) == 0);
-
- memset(buf, 0, BUFSIZE);
- ret = sock_udp_read(sock, cli, buf, BUFSIZE);
- sock_udp_write(sock, cli, buf, ret);
- }
- }
-
- if (strcmp(argv[1], "c") == 0) {
- //sock = sock_udp_connect("::1", atoi(argv[2]), PROTO_UDPv6);
- sock = sock_udp_connect("127.0.0.1", atoi(argv[2]), PROTO_UDPv4);
-
- strcpy(buf, "Hello world !\n");
- sock_udp_write(sock, sock, buf, strlen(buf));
-
- memset(buf, 0, BUFSIZE);
- sock_udp_read(sock, sock, buf, BUFSIZE);
-
- printf("buf = %s", buf);
- //while(1)sleep(1);
- sock_udp_close(sock);
- }
-
- return 0;
-}
-#endif
diff --git a/src/net/udp.h b/src/net/udp.h
index 7a5337a..c26db69 100644
--- a/src/net/udp.h
+++ b/src/net/udp.h
@@ -1,39 +1,36 @@
+#ifndef MY_UDP_H
+#define MY_UDP_H
-#ifndef MY_UDP
-
-# ifndef __WIN32__
-# include <netinet/in.h>
-# else
-# include <windows.h>
-# include <wininet.h>
-# endif
-
-# define MY_UDP
+#ifndef __WIN32__
+#include <netinet/in.h>
+#else
+#include <windows.h>
+#include <wininet.h>
+#endif
typedef struct struct_sock_udp_t {
-# ifndef __WIN32__
+#ifndef __WIN32__
int sock;
-# else
+#else
SOCKET sock;
-# endif
+#endif
int proto;
-# ifdef SUPPORT_IPv6
+#ifdef SUPPORT_IPv6
struct sockaddr_in6 sockAddr6;
-# endif
+#endif
struct sockaddr_in sockAddr;
} sock_udp_t;
extern sock_udp_t *sock_udp_new(void);
-extern void sock_udp_destroy(sock_udp_t * p);
+extern void sock_udp_destroy(sock_udp_t *p);
extern sock_udp_t *sock_udp_bind(char *address, int port);
extern sock_udp_t *sock_udp_connect(char *address, int port);
-extern int sock_udp_set_non_block(sock_udp_t * p);
-extern int sock_udp_read(sock_udp_t * src, sock_udp_t * dst, void *address,
- int len);
-extern int sock_udp_write(sock_udp_t * src, sock_udp_t * dst, void *address,
- int len);
-extern void sock_udp_get_ip(sock_udp_t * p, char *str_ip, int len);
-extern int sock_udp_get_port(sock_udp_t * p);
-extern void sock_udp_close(sock_udp_t * p);
-#endif
+extern int sock_udp_set_non_block(sock_udp_t *p);
+extern int sock_udp_read(sock_udp_t *src, sock_udp_t *dst, void *address, int len);
+extern int sock_udp_write(sock_udp_t *src, sock_udp_t *dst, void *address, int len);
+extern void sock_udp_get_ip(sock_udp_t *p, char *str_ip, int len);
+extern int sock_udp_get_port(sock_udp_t *p);
+extern void sock_udp_close(sock_udp_t *p);
+
+#endif /* MY_UDP_H */