diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.in | 5 | ||||
-rw-r--r-- | src/Makefile.win32 | 1 | ||||
-rw-r--r-- | src/web/ejabberd_http.erl | 30 |
3 files changed, 25 insertions, 11 deletions
diff --git a/src/Makefile.in b/src/Makefile.in index 70e49f541..b6eaa886c 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -23,6 +23,8 @@ BEAMDIR = $(EJABBERDDIR)/ebin PRIVDIR = $(EJABBERDDIR)/priv SODIR = $(PRIVDIR)/lib MSGSDIR = $(PRIVDIR)/msgs +LOGDIR = $(DESTDIR)/var/log/ejabberd +ETCDIR = $(DESTDIR)/etc/ejabberd all: $(ERLSHLIBS) compile-beam all-recursive @@ -57,6 +59,9 @@ install: all install -m 644 *.so $(SODIR) install -d $(MSGSDIR) install -m 644 msgs/*.msg $(MSGSDIR) + install -d $(ETCDIR) + install -b -m 644 ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg + install -d $(LOGDIR) clean: clean-recursive clean-local diff --git a/src/Makefile.win32 b/src/Makefile.win32 index d03ffcfda..57fd239be 100644 --- a/src/Makefile.win32 +++ b/src/Makefile.win32 @@ -33,6 +33,7 @@ release : build release_clean mkdir $(EREL) mkdir $(EBIN_DIR) copy *.beam $(EBIN_DIR) + @erase $(EBIN_DIR)\configure.beam copy *.app $(EBIN_DIR) mkdir $(PRIV_DIR) mkdir $(SO_DIR) diff --git a/src/web/ejabberd_http.erl b/src/web/ejabberd_http.erl index 0723fd572..ddd164fc3 100644 --- a/src/web/ejabberd_http.erl +++ b/src/web/ejabberd_http.erl @@ -22,6 +22,7 @@ -record(state, {sockmod, socket, request_method, + request_version, request_path, request_auth, request_content_length, @@ -72,8 +73,9 @@ receive_headers(State) -> Data = SockMod:recv(Socket, 0, 300000), ?DEBUG("recv: ~p~n", [Data]), case Data of - {ok, {http_request, Method, Path, _Version}} -> + {ok, {http_request, Method, Path, Version}} -> receive_headers(State#state{request_method = Method, + request_version = Version, request_path = Path}); {ok, {http_header, _, 'Authorization', _, Auth}} -> receive_headers(State#state{request_auth = parse_auth(Auth)}); @@ -95,16 +97,22 @@ receive_headers(State) -> element(2, State#state.request_path)]), Out = process_request(State), send_text(State, Out), - case SockMod of - gen_tcp -> - inet:setopts(Socket, [{packet, http}]); - ssl -> - ssl:setopts(Socket, [{packet, http}]) - end, - receive_headers(#state{sockmod = SockMod, - socket = Socket, - use_http_poll = State#state.use_http_poll, - use_web_admin = State#state.use_web_admin}); + case State#state.request_version of + {1,1} -> + case SockMod of + gen_tcp -> + inet:setopts(Socket, [{packet, http}]); + ssl -> + ssl:setopts(Socket, [{packet, http}]) + end, + receive_headers( + #state{sockmod = SockMod, + socket = Socket, + use_http_poll = State#state.use_http_poll, + use_web_admin = State#state.use_web_admin}); + _ -> + ok + end; {error, _Reason} -> ok; _ -> |