diff options
author | Erlang/OTP <[email protected]> | 2017-09-13 10:36:06 +0200 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2017-09-13 10:36:06 +0200 |
commit | 6f09e2fe50a614fcc368c17410a23498f0cc2d6a (patch) | |
tree | 26ad28beb3b7228485f37d774151a4eb316f4e5d /lib/inets/src/http_server/httpd_example.erl | |
parent | a230f26086b3db9097f06d4bb91fb3b2e9379c77 (diff) | |
parent | 4e1b1fd249c07676823513cad7f3845a8b9bbe95 (diff) | |
download | otp-6f09e2fe50a614fcc368c17410a23498f0cc2d6a.tar.gz otp-6f09e2fe50a614fcc368c17410a23498f0cc2d6a.tar.bz2 otp-6f09e2fe50a614fcc368c17410a23498f0cc2d6a.zip |
Merge branch 'ingela/inets/httpd-chunk-post/OTP-14450' into maint-20
* ingela/inets/httpd-chunk-post/OTP-14450:
inets: httpd correct server_name environment value
inets: httpd - Add chunk handling of client data
Diffstat (limited to 'lib/inets/src/http_server/httpd_example.erl')
-rw-r--r-- | lib/inets/src/http_server/httpd_example.erl | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/lib/inets/src/http_server/httpd_example.erl b/lib/inets/src/http_server/httpd_example.erl index c893b10dca..45b6deba97 100644 --- a/lib/inets/src/http_server/httpd_example.erl +++ b/lib/inets/src/http_server/httpd_example.erl @@ -22,7 +22,7 @@ -export([print/1]). -export([get/2, put/2, post/2, yahoo/2, test1/2, get_bin/2, peer/2]). --export([newformat/3]). +-export([newformat/3, post_chunked/3]). %% These are used by the inets test-suite -export([delay/1, chunk_timeout/3]). @@ -131,15 +131,31 @@ footer() -> "</BODY> </HTML>\n". - -newformat(SessionID, _Env, _Input)-> +post_chunked(_SessionID, _Env, {first, _Body} = _Bodychunk) -> + {continue, {state, 1}}; +post_chunked(_SessionID, _Env, {continue, _Body, {state, N}} = _Bodychunk) -> + {continue, {state, N+1}}; +post_chunked(SessionID, _Env, {last, _Body, {state, N}} = _Bodychunk) -> + mod_esi:deliver(SessionID, "Content-Type:text/html\r\n\r\n"), + mod_esi:deliver(SessionID, top("Received chunked body")), + mod_esi:deliver(SessionID, "Received" ++ integer_to_list(N) ++ "chunks"), + mod_esi:deliver(SessionID, footer()); +post_chunked(SessionID, _Env, {last, _Body, undefined} = _Bodychunk) -> + mod_esi:deliver(SessionID, "Content-Type:text/html\r\n\r\n"), + mod_esi:deliver(SessionID, top("Received chunked body")), + mod_esi:deliver(SessionID, "Received 1 chunk"), + mod_esi:deliver(SessionID, footer()); +post_chunked(_, _, _Body) -> + exit(body_not_chunked). + +newformat(SessionID,_,_) -> mod_esi:deliver(SessionID, "Content-Type:text/html\r\n\r\n"), mod_esi:deliver(SessionID, top("new esi format test")), mod_esi:deliver(SessionID, "This new format is nice<BR>"), mod_esi:deliver(SessionID, "This new format is nice<BR>"), mod_esi:deliver(SessionID, "This new format is nice<BR>"), mod_esi:deliver(SessionID, footer()). - + %% ------------------------------------------------------ delay(Time) when is_integer(Time) -> |