aboutsummaryrefslogtreecommitdiff
path: root/src/wsocket.c
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2007-06-11 23:44:54 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2007-06-11 23:44:54 +0000
commit3cd10f5ab6cda5c4a8db829dd38f25168edcfc4a (patch)
treef0c49eb250f5375414025a9e7022261e729ad905 /src/wsocket.c
parent3074a8f56b5153f4477e662453102583d7b6f539 (diff)
downloadluasocket-3cd10f5ab6cda5c4a8db829dd38f25168edcfc4a.tar.gz
luasocket-3cd10f5ab6cda5c4a8db829dd38f25168edcfc4a.tar.bz2
luasocket-3cd10f5ab6cda5c4a8db829dd38f25168edcfc4a.zip
Crashy bug fixed in recvraw.
Also fixed returns on closed socket.
Diffstat (limited to 'src/wsocket.c')
-rw-r--r--src/wsocket.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/wsocket.c b/src/wsocket.c
index dce333b..e247777 100644
--- a/src/wsocket.c
+++ b/src/wsocket.c
@@ -201,10 +201,10 @@ int socket_send(p_socket ps, const char *data, size_t count,
201 size_t *sent, p_timeout tm) 201 size_t *sent, p_timeout tm)
202{ 202{
203 int err; 203 int err;
204 *sent = 0;
204 /* avoid making system calls on closed sockets */ 205 /* avoid making system calls on closed sockets */
205 if (*ps == SOCKET_INVALID) return IO_CLOSED; 206 if (*ps == SOCKET_INVALID) return IO_CLOSED;
206 /* loop until we send something or we give up on error */ 207 /* loop until we send something or we give up on error */
207 *sent = 0;
208 for ( ;; ) { 208 for ( ;; ) {
209 /* try to send something */ 209 /* try to send something */
210 int put = send(*ps, data, (int) count, 0); 210 int put = send(*ps, data, (int) count, 0);
@@ -231,8 +231,8 @@ int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
231 SA *addr, socklen_t len, p_timeout tm) 231 SA *addr, socklen_t len, p_timeout tm)
232{ 232{
233 int err; 233 int err;
234 if (*ps == SOCKET_INVALID) return IO_CLOSED;
235 *sent = 0; 234 *sent = 0;
235 if (*ps == SOCKET_INVALID) return IO_CLOSED;
236 for ( ;; ) { 236 for ( ;; ) {
237 int put = sendto(*ps, data, (int) count, 0, addr, len); 237 int put = sendto(*ps, data, (int) count, 0, addr, len);
238 if (put > 0) { 238 if (put > 0) {
@@ -251,8 +251,8 @@ int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
251\*-------------------------------------------------------------------------*/ 251\*-------------------------------------------------------------------------*/
252int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm) { 252int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm) {
253 int err; 253 int err;
254 if (*ps == SOCKET_INVALID) return IO_CLOSED;
255 *got = 0; 254 *got = 0;
255 if (*ps == SOCKET_INVALID) return IO_CLOSED;
256 for ( ;; ) { 256 for ( ;; ) {
257 int taken = recv(*ps, data, (int) count, 0); 257 int taken = recv(*ps, data, (int) count, 0);
258 if (taken > 0) { 258 if (taken > 0) {
@@ -273,8 +273,8 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm
273int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, 273int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
274 SA *addr, socklen_t *len, p_timeout tm) { 274 SA *addr, socklen_t *len, p_timeout tm) {
275 int err; 275 int err;
276 if (*ps == SOCKET_INVALID) return IO_CLOSED;
277 *got = 0; 276 *got = 0;
277 if (*ps == SOCKET_INVALID) return IO_CLOSED;
278 for ( ;; ) { 278 for ( ;; ) {
279 int taken = recvfrom(*ps, data, (int) count, 0, addr, len); 279 int taken = recvfrom(*ps, data, (int) count, 0, addr, len);
280 if (taken > 0) { 280 if (taken > 0) {