diff options
| author | oroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-03-14 19:31:47 +0000 |
|---|---|---|
| committer | oroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-03-14 19:31:47 +0000 |
| commit | 593ac1e25c2053f06cb1b7e29785a695d3c57ad3 (patch) | |
| tree | 15f6bb50abedc884122d40b98349e35d702b7729 /src/udp.c | |
| parent | a4e34c257a4f5966ce699f48d30b3528bdaa45e4 (diff) | |
- podpora UDP
git-svn-id: http://opensvn.csie.org/tuxanci_ng@15 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/udp.c')
| -rw-r--r-- | src/udp.c | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -8,6 +8,7 @@ #include <string.h> #include <stdio.h> #include <netdb.h> +#include <assert.h> #define BUFSIZE 1000 @@ -29,6 +30,7 @@ sock_udp_t* newSockUdp() void destroySockUdp(sock_udp_t *p) { + assert( p != NULL ); free(p); } @@ -36,8 +38,12 @@ sock_udp_t* bindUdpSocket(int port) { sock_udp_t *new; + assert( port > 0 && port < 65535 ); + new = newSockUdp(); + assert( new != NULL ); + if( ( new->sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) ) < 0 ) { fprintf(stderr, "nemozem obsadit sokcet !\n"); @@ -65,8 +71,13 @@ sock_udp_t* connectUdpSocket(char *address, int port) struct hostent *host; sock_udp_t *new; + assert( address != NULL ); + assert( port > 0 && port < 65536 ); + new = newSockUdp(); + assert( new != NULL ); + if( ( new->sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) ) < 0 ) { fprintf(stderr, "nemozem sa pripojit na sokcet !\n"); @@ -87,6 +98,10 @@ int readUdpSocket(sock_udp_t *src, sock_udp_t *dst, void *address, int len) int addrlen; int size; + assert( src != NULL ); + assert( dst != NULL ); + assert( address != NULL ); + addrlen = sizeof(src->sockAddr); if( ( size = recvfrom(src->sock, address, len, 0, @@ -106,7 +121,11 @@ int writeUdpSocket(sock_udp_t *src, sock_udp_t *dst, void *address, int len) addrlen = sizeof(src->sockAddr); - if( ( size = sendto(src->sock, address, len, 0, + assert( src != NULL ); + assert( dst != NULL ); + assert( address != NULL ); + + if( ( size = sendto(src->sock, address, len, 0, (struct sockaddr *)&dst->sockAddr, (socklen_t)addrlen) ) < 0 ) { fprintf(stderr, "nemozem nacitat sokcet !\n"); @@ -118,11 +137,16 @@ int writeUdpSocket(sock_udp_t *src, sock_udp_t *dst, void *address, int len) void getSockUdpIp(sock_udp_t *p, char *str_ip) { + assert( p != NULL ); + assert( str_ip != NULL ); + strcpy(str_ip, inet_ntoa(p->sockAddr.sin_addr)); } void closeUdpSocket(sock_udp_t *p) { + assert( p != NULL ); + close(p->sock); destroySockUdp(p); } |