aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-01-30 16:58:09 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-01-30 16:58:09 -0800
commitb95f5b70b0e964ba27679a4aeaf9b5764dca07aa (patch)
tree140c2e6ce1233cab46acda4fb73b7ca4f77b931d
parent3370e11ac457261f0d0986cafe7f6a07a4defb25 (diff)
parent001806e94750f1f413d7d58aa63cf98f2482c008 (diff)
Merge pull request #807 from caiiiycuk/websocket__1
Fix '-1' problem in recv
-rw-r--r--src/library.js2
-rw-r--r--tests/websockets.c2
-rw-r--r--tests/websockets_bi.c2
-rw-r--r--tests/websockets_bi_bigdata.c2
-rw-r--r--tests/websockets_bi_listener.c2
-rw-r--r--tests/websockets_gethostbyname.c2
6 files changed, 6 insertions, 6 deletions
diff --git a/src/library.js b/src/library.js
index 7d0012a8..53fc8617 100644
--- a/src/library.js
+++ b/src/library.js
@@ -7027,7 +7027,7 @@ LibraryManager.library = {
if (!info) return -1;
if (info.inQueue.length == 0) {
___setErrNo(ERRNO_CODES.EAGAIN); // no data, and all sockets are nonblocking, so this is the right behavior
- return 0; // should this be -1 like the spec says?
+ return -1;
}
var buffer = info.inQueue.shift();
#if SOCKET_DEBUG
diff --git a/tests/websockets.c b/tests/websockets.c
index 57549e94..59acbd69 100644
--- a/tests/websockets.c
+++ b/tests/websockets.c
@@ -50,7 +50,7 @@ unsigned int get_all_buf(int sock, char* output, unsigned int maxsize)
}
}
- if(n < 0) {
+ if(n < 0 && errno != EAGAIN && errno != EWOULDBLOCK) {
fprintf(stderr, "error in get_all_buf!");
exit(EXIT_FAILURE);
}
diff --git a/tests/websockets_bi.c b/tests/websockets_bi.c
index c2dbb7da..18cdd664 100644
--- a/tests/websockets_bi.c
+++ b/tests/websockets_bi.c
@@ -35,7 +35,7 @@ unsigned int get_all_buf(int sock, char* output, unsigned int maxsize)
}
}
- if(n < 0) {
+ if(n < 0 && errno != EAGAIN && errno != EWOULDBLOCK) {
fprintf(stderr, "error in get_all_buf!");
exit(EXIT_FAILURE);
}
diff --git a/tests/websockets_bi_bigdata.c b/tests/websockets_bi_bigdata.c
index 5db2c951..2039f83c 100644
--- a/tests/websockets_bi_bigdata.c
+++ b/tests/websockets_bi_bigdata.c
@@ -37,7 +37,7 @@ unsigned int get_all_buf(int sock, char* output, unsigned int maxsize)
}
}
- if(n < 0) {
+ if(n < 0 && errno != EAGAIN && errno != EWOULDBLOCK) {
fprintf(stderr, "error in get_all_buf!");
exit(EXIT_FAILURE);
}
diff --git a/tests/websockets_bi_listener.c b/tests/websockets_bi_listener.c
index 587fbed2..6c3b17b1 100644
--- a/tests/websockets_bi_listener.c
+++ b/tests/websockets_bi_listener.c
@@ -35,7 +35,7 @@ unsigned int get_all_buf(int sock, char* output, unsigned int maxsize)
}
}
- if(n < 0) {
+ if(n < 0 && errno != EAGAIN && errno != EWOULDBLOCK) {
fprintf(stderr, "error in get_all_buf!");
exit(EXIT_FAILURE);
}
diff --git a/tests/websockets_gethostbyname.c b/tests/websockets_gethostbyname.c
index 6b8777f1..cba2c635 100644
--- a/tests/websockets_gethostbyname.c
+++ b/tests/websockets_gethostbyname.c
@@ -35,7 +35,7 @@ unsigned int get_all_buf(int sock, char* output, unsigned int maxsize)
}
}
- if(n < 0) {
+ if(n < 0 && errno != EAGAIN && errno != EWOULDBLOCK) {
fprintf(stderr, "error in get_all_buf!");
exit(EXIT_FAILURE);
}