mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-26 16:26:24 +01:00
Show informative webpage when browsing the HTTP-Poll page (EJAB-1106)
SVN Revision: 2752
This commit is contained in:
parent
4dcfde7737
commit
c1a7e30f12
@ -160,12 +160,34 @@ process([], #request{data = Data,
|
||||
end
|
||||
end;
|
||||
_ ->
|
||||
{200, [?CT, {"Set-Cookie", "ID=-2:0; expires=-1"}], ""}
|
||||
HumanHTMLxmlel = get_human_html_xmlel(),
|
||||
{200, [?CT, {"Set-Cookie", "ID=-2:0; expires=-1"}], HumanHTMLxmlel}
|
||||
end;
|
||||
process(_, _Request) ->
|
||||
{400, [], #xmlel{ns = ?NS_XHTML, name = 'h1', children =
|
||||
[#xmlcdata{cdata = <<"400 Bad Request">>}]}}.
|
||||
|
||||
%% Code copied from mod_http_bind.erl and customized
|
||||
get_human_html_xmlel() ->
|
||||
Heading = "ejabberd " ++ atom_to_list(?MODULE),
|
||||
H = #xmlel{name = h1, children = [#xmlcdata{cdata = Heading}]},
|
||||
Par1 = #xmlel{name = p, children =
|
||||
[#xmlcdata{cdata = <<"An implementation of ">>},
|
||||
#xmlel{name = a,
|
||||
attrs = [#xmlattr{name=href, value = <<"http://xmpp.org/extensions/xep-0025.html">>}],
|
||||
children = [#xmlcdata{cdata = <<"Jabber HTTP Polling (XEP-0025)">>}]
|
||||
}
|
||||
]},
|
||||
Par2 = #xmlel{name = p, children =
|
||||
[#xmlcdata{cdata = <<"This web page is only informative. "
|
||||
"To use HTTP-Poll you need a Jabber/XMPP client that supports it.">>}
|
||||
]},
|
||||
#xmlel{name = html,
|
||||
attrs = [#xmlattr{name = xmlns, value= <<"http://www.w3.org/1999/xhtml">>}],
|
||||
children =
|
||||
[#xmlel{name = head, children = [#xmlel{name = title, children = [#xmlcdata{cdata = Heading}]}]},
|
||||
#xmlel{name = body, children = [H, Par1, Par2]}]}.
|
||||
|
||||
%%%----------------------------------------------------------------------
|
||||
%%% Callback functions from gen_fsm
|
||||
%%%----------------------------------------------------------------------
|
||||
|
@ -45,6 +45,7 @@
|
||||
process/2
|
||||
]).
|
||||
|
||||
-include_lib("exmpp/include/exmpp.hrl").
|
||||
-include("ejabberd.hrl").
|
||||
-include("jlib.hrl").
|
||||
-include("ejabberd_http.hrl").
|
||||
@ -60,8 +61,8 @@
|
||||
process([], #request{method = 'POST',
|
||||
data = []}) ->
|
||||
?DEBUG("Bad Request: no data", []),
|
||||
{400, [], {xmlelement, "h1", [],
|
||||
[{xmlcdata, "400 Bad Request"}]}};
|
||||
{400, [], #xmlel{name = h1, children =
|
||||
[#xmlcdata{cdata = <<"400 Bad Request">>}]}};
|
||||
process([], #request{method = 'POST',
|
||||
data = Data,
|
||||
ip = IP}) ->
|
||||
@ -69,22 +70,31 @@ process([], #request{method = 'POST',
|
||||
ejabberd_http_bind:process_request(Data, IP);
|
||||
process([], #request{method = 'GET',
|
||||
data = []}) ->
|
||||
Heading = "Ejabberd " ++ atom_to_list(?MODULE) ++ " v" ++ ?MOD_HTTP_BIND_VERSION,
|
||||
{xmlelement, "html", [{"xmlns", "http://www.w3.org/1999/xhtml"}],
|
||||
[{xmlelement, "head", [],
|
||||
[{xmlelement, "title", [], [{xmlcdata, Heading}]}]},
|
||||
{xmlelement, "body", [],
|
||||
[{xmlelement, "h1", [], [{xmlcdata, Heading}]},
|
||||
{xmlelement, "p", [],
|
||||
[{xmlcdata, "An implementation of "},
|
||||
{xmlelement, "a", [{"href", "http://www.xmpp.org/extensions/xep-0206.html"}],
|
||||
[{xmlcdata, "XMPP over BOSH (XEP-0206)"}]}]}
|
||||
]}]};
|
||||
get_human_html_xmlel();
|
||||
process(_Path, _Request) ->
|
||||
?DEBUG("Bad Request: ~p", [_Request]),
|
||||
{400, [], {xmlelement, "h1", [],
|
||||
[{xmlcdata, "400 Bad Request"}]}}.
|
||||
{400, [], #xmlel{name = h1, children =
|
||||
[#xmlcdata{cdata = <<"400 Bad Request">>}]}}.
|
||||
|
||||
get_human_html_xmlel() ->
|
||||
Heading = "ejabberd " ++ atom_to_list(?MODULE) ++ " v" ++ ?MOD_HTTP_BIND_VERSION,
|
||||
H = #xmlel{name = h1, children = [#xmlcdata{cdata = Heading}]},
|
||||
Par1 = #xmlel{name = p, children =
|
||||
[#xmlcdata{cdata = <<"An implementation of ">>},
|
||||
#xmlel{name = a,
|
||||
attrs = [#xmlattr{name=href, value = <<"http://xmpp.org/extensions/xep-0206.html">>}],
|
||||
children = [#xmlcdata{cdata = <<"XMPP over BOSH (XEP-0206)">>}]
|
||||
}
|
||||
]},
|
||||
Par2 = #xmlel{name = p, children =
|
||||
[#xmlcdata{cdata = <<"This web page is only informative. "
|
||||
"To use HTTP-Bind you need a Jabber/XMPP client that supports it.">>}
|
||||
]},
|
||||
#xmlel{name = html,
|
||||
attrs = [#xmlattr{name = xmlns, value= <<"http://www.w3.org/1999/xhtml">>}],
|
||||
children =
|
||||
[#xmlel{name = head, children = [#xmlel{name = title, children = [#xmlcdata{cdata = Heading}]}]},
|
||||
#xmlel{name = body, children = [H, Par1, Par2]}]}.
|
||||
|
||||
%%%----------------------------------------------------------------------
|
||||
%%% BEHAVIOUR CALLBACKS
|
||||
|
Loading…
Reference in New Issue
Block a user