Просмотр исходного кода

Simplify the guards for cowboy_http_req:body/2

Loïc Hoguin 13 лет назад
Родитель
Сommit
3649b0ee0d
1 измененных файлов с 2 добавлено и 3 удалено
  1. 2 3
      src/cowboy_http_req.erl

+ 2 - 3
src/cowboy_http_req.erl

@@ -341,12 +341,11 @@ body(Req) ->
 -spec body(non_neg_integer(), #http_req{})
 -spec body(non_neg_integer(), #http_req{})
 	-> {ok, binary(), #http_req{}} | {error, atom()}.
 	-> {ok, binary(), #http_req{}} | {error, atom()}.
 body(Length, Req=#http_req{body_state=waiting, buffer=Buffer})
 body(Length, Req=#http_req{body_state=waiting, buffer=Buffer})
-		when Length =< byte_size(Buffer) ->
+		when is_integer(Length) andalso Length =< byte_size(Buffer) ->
 	<< Body:Length/binary, Rest/bits >> = Buffer,
 	<< Body:Length/binary, Rest/bits >> = Buffer,
 	{ok, Body, Req#http_req{body_state=done, buffer=Rest}};
 	{ok, Body, Req#http_req{body_state=done, buffer=Rest}};
 body(Length, Req=#http_req{socket=Socket, transport=Transport,
 body(Length, Req=#http_req{socket=Socket, transport=Transport,
-		body_state=waiting, buffer=Buffer})
-		when is_integer(Length) andalso Length > byte_size(Buffer) ->
+		body_state=waiting, buffer=Buffer}) ->
 	case Transport:recv(Socket, Length - byte_size(Buffer), 5000) of
 	case Transport:recv(Socket, Length - byte_size(Buffer), 5000) of
 		{ok, Body} -> {ok, << Buffer/binary, Body/binary >>,
 		{ok, Body} -> {ok, << Buffer/binary, Body/binary >>,
 			Req#http_req{body_state=done, buffer= <<>>}};
 			Req#http_req{body_state=done, buffer= <<>>}};