aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2010-09-08 16:19:54 +0200
committerBjörn Gustavsson <[email protected]>2010-09-09 12:18:17 +0200
commit33caf70b63ef4cdb7ba5f3b24d7f04c596f081eb (patch)
tree1c0fb85a71004e1c53000d42f069ac8e911031b0 /erts/emulator
parenta78b39a0e9ff2cfd13273ab077dc852d70565647 (diff)
downloadotp-33caf70b63ef4cdb7ba5f3b24d7f04c596f081eb.tar.gz
otp-33caf70b63ef4cdb7ba5f3b24d7f04c596f081eb.tar.bz2
otp-33caf70b63ef4cdb7ba5f3b24d7f04c596f081eb.zip
Make gen_tcp:recv/2 consistent with ssl:recv/2
When the HTTP packet mode has been enabled for a socket, the ssl and gen_tcp modules have different error indications when there is an error while parsing the HTTP header: ssl:recv(SSLSocket, 0) -> {ok, {http_error, _Str}} gen_tcp:recv(Socket, 0) -> {error, {http_error, _Str}} We have decided to change gen_tcp:recv/2 to behave the same way as ssl:recv/2. That means that there will be always be an ok tuple if data could be succefully read from the socket, and an error tuple if there was a read error at the socket level.
Diffstat (limited to 'erts/emulator')
-rw-r--r--erts/emulator/drivers/common/inet_drv.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c
index 3f761eeb19..3de48194fb 100644
--- a/erts/emulator/drivers/common/inet_drv.c
+++ b/erts/emulator/drivers/common/inet_drv.c
@@ -2174,7 +2174,7 @@ static int http_error_inetdrv(void* arg, const char* buf, int len)
ErlDrvTermData spec[19];
if (desc->inet.active == INET_PASSIVE) {
- /* {inet_async,S,Ref,{error,{http_error,Line}}} */
+ /* {inet_async,S,Ref,{ok,{http_error,Line}}} */
int req;
int aid;
ErlDrvTermData caller;
@@ -2184,7 +2184,7 @@ static int http_error_inetdrv(void* arg, const char* buf, int len)
i = LOAD_ATOM(spec, i, am_inet_async);
i = LOAD_PORT(spec, i, desc->inet.dport);
i = LOAD_INT(spec, i, aid);
- i = LOAD_ATOM(spec, i, am_error);
+ i = LOAD_ATOM(spec, i, am_ok);
i = LOAD_ATOM(spec, i, am_http_error);
i = http_load_string(desc, spec, i, buf, len);
i = LOAD_TUPLE(spec, i, 2);