From 58425ba45d37d5fd4d7ef03eaf33b2334bde91c4 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 23 Nov 2009 15:21:05 +0000 Subject: [PATCH] Show informative webpage when browsing the HTTP-Poll page (EJAB-1106) SVN Revision: 2751 --- src/web/ejabberd_http_poll.erl | 22 +++++++++++++++++++++- src/web/mod_http_bind.erl | 25 ++++++++++++++++--------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/web/ejabberd_http_poll.erl b/src/web/ejabberd_http_poll.erl index 9a41fc362..66a7a314f 100644 --- a/src/web/ejabberd_http_poll.erl +++ b/src/web/ejabberd_http_poll.erl @@ -154,12 +154,32 @@ 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, [], {xmlelement, "h1", [], [{xmlcdata, "400 Bad Request"}]}}. +%% Code copied from mod_http_bind.erl and customized +get_human_html_xmlel() -> + Heading = "ejabberd " ++ atom_to_list(?MODULE), + {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://xmpp.org/extensions/xep-0025.html"}], + [{xmlcdata, "Jabber HTTP Polling (XEP-0025)"}]}]}, + {xmlelement, "p", [], + [{xmlcdata, "This web page is only informative. " + "To use HTTP-Poll you need a Jabber/XMPP client that supports it."} + ]} + ]}]}. + %%%---------------------------------------------------------------------- %%% Callback functions from gen_fsm %%%---------------------------------------------------------------------- diff --git a/src/web/mod_http_bind.erl b/src/web/mod_http_bind.erl index 615642ce5..1e86d13da 100644 --- a/src/web/mod_http_bind.erl +++ b/src/web/mod_http_bind.erl @@ -69,7 +69,14 @@ 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, + get_human_html_xmlel(); +process(_Path, _Request) -> + ?DEBUG("Bad Request: ~p", [_Request]), + {400, [], {xmlelement, "h1", [], + [{xmlcdata, "400 Bad Request"}]}}. + +get_human_html_xmlel() -> + 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}]}]}, @@ -77,14 +84,14 @@ process([], #request{method = 'GET', [{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)"}]}]} - ]}]}; -process(_Path, _Request) -> - ?DEBUG("Bad Request: ~p", [_Request]), - {400, [], {xmlelement, "h1", [], - [{xmlcdata, "400 Bad Request"}]}}. - + {xmlelement, "a", + [{"href", "http://xmpp.org/extensions/xep-0206.html"}], + [{xmlcdata, "XMPP over BOSH (XEP-0206)"}]}]}, + {xmlelement, "p", [], + [{xmlcdata, "This web page is only informative. " + "To use HTTP-Bind you need a Jabber/XMPP client that supports it."} + ]} + ]}]}. %%%---------------------------------------------------------------------- %%% BEHAVIOUR CALLBACKS