Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -module(rudy).
- -export([init/1]).
- -export([start/1, stop/0]).
- start(Port) ->
- register(rudy, spawn(fun() -> init(Port) end)).
- stop() ->
- exit(whereis(rudy), "time to die").
- init(Port) ->
- Opt = [list, {active, false}, {reuseaddr, true}],
- case gen_tcp:listen(Port, Opt) of
- {ok, Listen} ->
- handler(Listen), % added this
- gen_tcp:close(Listen),
- % ok;
- init(Port); % added so it doesnt crash after exec
- {error, Error} ->
- io:format("~p~n", ["error 1"]),
- io:format("~p~n", [Error]),
- error
- end.
- handler(Listen) ->
- case gen_tcp:accept(Listen) of
- {ok, Client} ->
- request(Client); % added this
- {error, Error} ->
- io:format("~p~n", ["error 2"]),
- io:format("~p~n", [Error]),
- error
- end.
- request(Client) ->
- Recv = gen_tcp:recv(Client, 0),
- case Recv of
- {ok, Str} ->
- Request = http:parse_request(Str), % added this
- Response = reply(Request),
- gen_tcp:send(Client, Response);
- {error, Error} ->
- io:format("rudy: error ~w~n", [Error])
- end,
- gen_tcp:close(Client).
- reply({{get, URI, _}, _, _}) ->
- % http:ok(...).
- % http:ok("<html><head><title>Rudy</title></head><body>This is a test.<br/>" ++ URI ++ "</body></html>").
- timer:sleep(40),
- http:ok("Hello there.").
- % ok(Body) ->
- % "HTTP/1.1 200 OK\r\n" ++ "\r\n" ++ Body.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement