25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-24 16:23:40 +01:00

* src/web/ejabberd_http.erl: The web module now accepts HTTP

absolute URL (used behind a proxy). This apply to HTTP polling and to
the web interface (Thanks to Jean-Sebastien Pedron).

SVN Revision: 576
This commit is contained in:
Mickaël Rémond 2006-06-02 15:02:39 +00:00
parent ae537d2bfb
commit 05c50cc5ca
2 changed files with 31 additions and 6 deletions

View File

@ -1,9 +1,13 @@
2006-06-31 Mickael Remond <mickael.remond@process-one.net>
2006-06-02 Mickael Remond <mickael.remond@process-one.net>
* src/web/ejabberd_http_poll.erl: Messages polled between the
the last client request and the polling timeout were lost. Those
messages are now resent using ejabberd routing mechanisms.
* src/web/ejabberd_http.erl: The web module now accepts HTTP
absolute URL (used behind a proxy). This apply to HTTP polling and
to the web interface (Thanks to Jean-Sebastien Pedron).
2006-05-29 Mickael Remond <mickael.remond@process-one.net>
* src/mod_roster.erl: According to RFC3921 section 9.2, outbound

View File

@ -133,13 +133,17 @@ process_header(State, Data) ->
SockMod = State#state.sockmod,
Socket = State#state.socket,
case Data of
{ok, {http_request, Method, Path, Version}} ->
{ok, {http_request, Method, Uri, Version}} ->
KeepAlive = case Version of
{1, 1} ->
true;
_ ->
false
end,
Path = case Uri of
{absoluteURI, _Scheme, _Host, _Port, P} -> {abs_path, P};
_ -> Uri
end,
State#state{request_method = Method,
request_version = Version,
request_path = Path,
@ -716,10 +720,27 @@ parse_req(Line) ->
"*" ->
% Is this correct?
"*";
P ->
% FIXME: Handle
% absolute URIs
{abs_path, P}
_ ->
case string:str(URI, "://") of
0 ->
% Relative URI
% ex: /index.html
{abs_path, URI};
N ->
% Absolute URI
% ex: http://localhost/index.html
% Remove scheme
% ex: URI2 = localhost/index.html
URI2 = string:substr(URI, N + 3),
% Look for the start of the path
% (or the lack of a path thereof)
case string:chr(URI2, $/) of
0 -> {abs_path, "/"};
M -> {abs_path,
string:substr(URI2, M + 1)}
end
end
end,
case VersionStr of
[] ->