From: <Mee...@us...> - 2011-07-24 19:03:48
|
Revision: 3662 http://sc2.svn.sourceforge.net/sc2/?rev=3662&view=rev Author: Meep-Eep Date: 2011-07-24 19:03:42 +0000 (Sun, 24 Jul 2011) Log Message: ----------- Socket functions needed when we switch to UDP. Modified Paths: -------------- trunk/sc2/src/libs/network/socket/socket.h trunk/sc2/src/libs/network/socket/socket_bsd.c trunk/sc2/src/libs/network/socket/socket_win.c Modified: trunk/sc2/src/libs/network/socket/socket.h =================================================================== --- trunk/sc2/src/libs/network/socket/socket.h 2011-07-23 16:55:21 UTC (rev 3661) +++ trunk/sc2/src/libs/network/socket/socket.h 2011-07-24 19:03:42 UTC (rev 3662) @@ -80,7 +80,11 @@ int Socket_listen(Socket *sock, int backlog); Socket *Socket_accept(Socket *sock, struct sockaddr *addr, socklen_t *addrLen); ssize_t Socket_send(Socket *sock, const void *buf, size_t len, int flags); +ssize_t Socket_sendto(Socket *sock, const void *buf, size_t len, int flags, + const struct sockaddr *addr, socklen_t addrLen); ssize_t Socket_recv(Socket *sock, void *buf, size_t len, int flags); +ssize_t Socket_recvfrom(Socket *sock, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromLen); int Socket_setNonBlocking(Socket *sock); int Socket_setReuseAddr(Socket *sock); Modified: trunk/sc2/src/libs/network/socket/socket_bsd.c =================================================================== --- trunk/sc2/src/libs/network/socket/socket_bsd.c 2011-07-23 16:55:21 UTC (rev 3661) +++ trunk/sc2/src/libs/network/socket/socket_bsd.c 2011-07-24 19:03:42 UTC (rev 3662) @@ -130,10 +130,22 @@ } ssize_t +Socket_sendto(Socket *sock, const void *buf, size_t len, int flags, + const struct sockaddr *addr, socklen_t addrLen) { + return sendto(sock->fd, buf, len, flags, addr, addrLen); +} + +ssize_t Socket_recv(Socket *sock, void *buf, size_t len, int flags) { return recv(sock->fd, buf, len, flags); } +ssize_t +Socket_recvfrom(Socket *sock, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromLen) { + return recvfrom(sock->fd, buf, len, flags, from, fromLen); +} + int Socket_setNonBlocking(Socket *sock) { int flags; Modified: trunk/sc2/src/libs/network/socket/socket_win.c =================================================================== --- trunk/sc2/src/libs/network/socket/socket_win.c 2011-07-23 16:55:21 UTC (rev 3661) +++ trunk/sc2/src/libs/network/socket/socket_win.c 2011-07-24 19:03:42 UTC (rev 3662) @@ -160,6 +160,20 @@ } ssize_t +Socket_sendto(Socket *sock, const void *buf, size_t len, int flags, + const struct sockaddr *addr, socklen_t addrLen) { + int sendResult; + + sendResult = sendto(sock->sock, buf, len, flags, addr, addrLen); + if (sendResult == SOCKET_ERROR) { + errno = getWinsockErrno(); + return -1; + } + + return sendResult; +} + +ssize_t Socket_recv(Socket *sock, void *buf, size_t len, int flags) { int recvResult; @@ -172,6 +186,20 @@ return recvResult; } +ssize_t +Socket_recvfrom(Socket *sock, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromLen) { + int recvResult; + + recvResult = recvfrom(sock->sock, buf, len, flags, from, fromLen); + if (recvResult == SOCKET_ERROR) { + errno = getWinsockErrno(); + return -1; + } + + return recvResult; +} + int Socket_setNonBlocking(Socket *sock) { unsigned long flag = 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |