diff options
author | Björn Gustavsson <[email protected]> | 2010-09-08 16:19:54 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2010-09-09 12:18:17 +0200 |
commit | 33caf70b63ef4cdb7ba5f3b24d7f04c596f081eb (patch) | |
tree | 1c0fb85a71004e1c53000d42f069ac8e911031b0 /erts/emulator | |
parent | a78b39a0e9ff2cfd13273ab077dc852d70565647 (diff) | |
download | otp-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.c | 4 |
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); |