Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-05-09 23:32:59 +0400
committerAlexey Shchepin <alexey@process-one.net>2003-05-09 23:32:59 +0400
commit86cd1729cb0fce35e17c9e4a8d44a64cfd409db8 (patch)
treec05468bce96e13031bc68eed1b33d5860f4a61b6 /src
parent848b06db12b2888f9a2092583d6042d7d3570c31 (diff)
* src/ejabberd_local.erl: Updated missed errors to new style
* src/mod_register.erl: Likewise * src/mod_version.erl: Likewise * src/mod_time.erl: Likewise * src/mod_stats.erl: Likewise * src/mod_register.erl: Likewise * src/mod_private.erl: Likewise * src/mod_configure.erl: Likewise * src/ejabberd_sm.erl: Likewise * src/ejabberd_service.erl: Likewise * src/ejabberd_c2s.erl: Likewise * src/ejabberd_s2s_out.erl: Likewise * src/mod_vcard.erl: Likewise * src/mod_roster.erl: Likewise * src/mod_muc/mod_muc.erl: Added vcard to mod_muc module * src/ejabberd_app.erl: Dump list of opened ports every hour * src/ejabberd.hrl: Added INFO_MSG macros, ERROR_LOG_PATH renamed to LOG_PATH SVN Revision: 106
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd.hrl10
-rw-r--r--src/ejabberd_app.erl11
-rw-r--r--src/ejabberd_c2s.erl6
-rw-r--r--src/ejabberd_local.erl2
-rw-r--r--src/ejabberd_s2s_in.erl10
-rw-r--r--src/ejabberd_s2s_out.erl26
-rw-r--r--src/ejabberd_service.erl3
-rw-r--r--src/ejabberd_sm.erl7
-rw-r--r--src/mod_configure.erl70
-rw-r--r--src/mod_muc/mod_muc.erl25
-rw-r--r--src/mod_muc/mod_muc_room.erl3
-rw-r--r--src/mod_private.erl8
-rw-r--r--src/mod_register.erl26
-rw-r--r--src/mod_roster.erl5
-rw-r--r--src/mod_stats.erl4
-rw-r--r--src/mod_time.erl4
-rw-r--r--src/mod_vcard.erl20
-rw-r--r--src/mod_version.erl4
18 files changed, 122 insertions, 122 deletions
diff --git a/src/ejabberd.hrl b/src/ejabberd.hrl
index 78cf0e7b4..2574c709b 100644
--- a/src/ejabberd.hrl
+++ b/src/ejabberd.hrl
@@ -19,8 +19,12 @@
-endif.
-define(ERROR_MSG(Format, Args),
- error_logger:format("E(~p:~p:~p): "++Format++"~n",
- [self(),?MODULE,?LINE]++Args)).
+ error_logger:error_msg("E(~p:~p:~p): "++Format++"~n",
+ [self(),?MODULE,?LINE]++Args)).
+
+-define(INFO_MSG(Format, Args),
+ error_logger:info_msg("I(~p:~p:~p): "++Format++"~n",
+ [self(),?MODULE,?LINE]++Args)).
%-define(MYNAME,"e.localhost").
@@ -30,5 +34,5 @@
-define(MSGS_DIR, "msgs").
-define(CONFIG_PATH, "ejabberd.cfg").
--define(ERROR_LOG_PATH, "error.log").
+-define(LOG_PATH, "ejabberd.log").
diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl
index 80f8e42fb..87cfb486f 100644
--- a/src/ejabberd_app.erl
+++ b/src/ejabberd_app.erl
@@ -14,6 +14,8 @@
-export([start/2, stop/1, init/0]).
+-export([dump_ports/0]).
+
-include("ejabberd.hrl").
start(normal, Args) ->
@@ -46,10 +48,10 @@ init() ->
%eprof:start(),
%eprof:profile([self()]),
%erlang:system_flag(fullsweep_after, 0),
- error_logger:logfile({open, ?ERROR_LOG_PATH}),
+ error_logger:logfile({open, ?LOG_PATH}),
+ timer:apply_interval(3600000, ?MODULE, dump_ports, []),
ok = erl_ddll:load_driver(".", expat_erl),
Port = open_port({spawn, expat_erl}, [binary]),
-
loop(Port).
@@ -79,3 +81,8 @@ load_modules() ->
end, Modules)
end.
+
+dump_ports() ->
+ ?INFO_MSG("ports:~n ~p",
+ [lists:map(fun(P) -> erlang:port_info(P) end, erlang:ports())]).
+
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 4722888bd..23b350d63 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -166,7 +166,7 @@ wait_for_stream(closed, StateData) ->
wait_for_auth({xmlstreamelement, El}, StateData) ->
case is_auth_packet(El) of
{auth, ID, get, {"", _, _, _}} ->
- Err = jlib:make_error_reply(El, "406", "Not Acceptable"),
+ Err = jlib:make_error_reply(El, ?ERR_BAD_REQUEST),
send_element(StateData, Err),
{next_state, wait_for_auth, StateData};
{auth, ID, get, {U, _, _, _}} ->
@@ -305,7 +305,7 @@ wait_for_sasl_auth(closed, StateData) ->
wait_for_resource_auth({xmlstreamelement, El}, StateData) ->
case is_auth_packet(El) of
{auth, ID, get, {"", _, _, _}} ->
- Err = jlib:make_error_reply(El, "406", "Not Acceptable"),
+ Err = jlib:make_error_reply(El, ?ERR_BAD_REQUEST),
send_element(StateData, Err),
{next_state, wait_for_resource_auth, StateData};
{auth, ID, get, {U, _, _, _}} ->
@@ -345,7 +345,7 @@ wait_for_resource_auth({xmlstreamelement, El}, StateData) ->
{next_state, wait_for_resource_auth, StateData}
end;
_ ->
- Err = jlib:make_error_reply(El, "406", "Not Acceptable"),
+ Err = jlib:make_error_reply(El, ?ERR_BAD_REQUEST),
send_element(StateData, Err),
{next_state, wait_for_resource_auth, StateData}
end;
diff --git a/src/ejabberd_local.erl b/src/ejabberd_local.erl
index 0a1b6f63a..3dcc1eabd 100644
--- a/src/ejabberd_local.erl
+++ b/src/ejabberd_local.erl
@@ -110,7 +110,7 @@ process_iq(State, From, To, Packet) ->
From, To, IQ);
[] ->
Err = jlib:make_error_reply(
- Packet, "501", "Not Implemented"),
+ Packet, ?ERR_FEATURE_NOT_IMPLEMENTED),
ejabberd_router ! {route,
{"", State#state.mydomain, ""},
From,
diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl
index 0256820f8..a7a058e0f 100644
--- a/src/ejabberd_s2s_in.erl
+++ b/src/ejabberd_s2s_in.erl
@@ -80,6 +80,7 @@ start(SockData, Opts) ->
%% {stop, StopReason}
%%----------------------------------------------------------------------
init([{SockMod, Socket}]) ->
+ ?INFO_MSG("started: ~p", [{SockMod, Socket}]),
ReceiverPid = spawn(?MODULE, receiver, [Socket, self()]),
{ok, wait_for_stream, #state{socket = Socket,
receiver = ReceiverPid,
@@ -121,7 +122,7 @@ wait_for_stream(closed, StateData) ->
wait_for_key({xmlstreamelement, El}, StateData) ->
case is_key_packet(El) of
{key, To, From, Id, Key} ->
- io:format("GET KEY: ~p~n", [{To, From, Id, Key}]),
+ ?INFO_MSG("GET KEY: ~p", [{To, From, Id, Key}]),
case lists:member(To, ejabberd_router:dirty_get_all_domains()) of
true ->
ejabberd_s2s_out:start(To, From,
@@ -135,7 +136,7 @@ wait_for_key({xmlstreamelement, El}, StateData) ->
{stop, normal, StateData}
end;
{verify, To, From, Id, Key} ->
- io:format("VERIFY KEY: ~p~n", [{To, From, Id, Key}]),
+ ?INFO_MSG("VERIFY KEY: ~p", [{To, From, Id, Key}]),
Key1 = ejabberd_s2s:get_key({StateData#state.myname, From}),
Type = if Key == Key1 -> "valid";
true -> "invalid"
@@ -184,7 +185,7 @@ wait_for_verification(invalid, StateData) ->
wait_for_verification({xmlstreamelement, El}, StateData) ->
case is_key_packet(El) of
{verify, To, From, Id, Key} ->
- io:format("VERIFY KEY: ~p~n", [{To, From, Id, Key}]),
+ ?INFO_MSG("VERIFY KEY: ~p", [{To, From, Id, Key}]),
Key1 = ejabberd_s2s:get_key({StateData#state.myname, From}),
Type = if Key == Key1 -> "valid";
true -> "invalid"
@@ -215,7 +216,7 @@ stream_established({xmlstreamelement, El}, StateData) ->
"db:verify" ->
case is_key_packet(El) of
{verify, To, From, Id, Key} ->
- io:format("VERIFY KEY: ~p~n", [{To, From, Id, Key}]),
+ ?INFO_MSG("VERIFY KEY: ~p", [{To, From, Id, Key}]),
Key1 = ejabberd_s2s:get_key({StateData#state.myname,
From}),
Type = if Key == Key1 -> "valid";
@@ -343,6 +344,7 @@ terminate(Reason, StateName, StateData) ->
% % StateData#state.resource)
% end,
%ejabberd_s2s ! {closed_conection, StateData#state.server},
+ ?INFO_MSG("terminated: ~p", [Reason]),
gen_tcp:close(StateData#state.socket),
ok.
diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl
index 458113b7e..a9dd26cbd 100644
--- a/src/ejabberd_s2s_out.erl
+++ b/src/ejabberd_s2s_out.erl
@@ -28,6 +28,7 @@
code_change/4]).
-include("ejabberd.hrl").
+-include("jlib.hrl").
-record(state, {socket, receiver, streamid,
myname, server, xmlpid, queue,
@@ -77,6 +78,7 @@ start(From, Host, Type) ->
%% {stop, StopReason}
%%----------------------------------------------------------------------
init([From, Server, Type]) ->
+ ?INFO_MSG("started: ~p", [{From, Server, Type}]),
gen_fsm:send_event(self(), init),
{New, Verify} = case Type of
{new, Key} ->
@@ -112,11 +114,11 @@ open_socket(init, StateData) ->
streamid = new_id()}};
{error, Reason} ->
?DEBUG("s2s_out: connect return ~p~n", [Reason]),
- Text = case Reason of
- timeout -> "Server Connect Timeout";
- _ -> "Server Connect Failed"
- end,
- bounce_messages(Text),
+ Error = case Reason of
+ timeout -> ?ERR_REMOTE_SERVER_TIMEOUT;
+ _ -> ?ERR_REMOTE_SERVER_NOT_FOUND
+ end,
+ bounce_messages(Error),
{stop, normal, StateData}
end.
@@ -175,6 +177,7 @@ wait_for_stream(closed, StateData) ->
wait_for_validation({xmlstreamelement, El}, StateData) ->
case is_verify_res(El) of
{result, To, From, Id, Type} ->
+ ?INFO_MSG("recv result: ~p", [{From, To, Id, Type}]),
case Type of
"valid" ->
send_queue(StateData#state.socket, StateData#state.queue),
@@ -184,6 +187,7 @@ wait_for_validation({xmlstreamelement, El}, StateData) ->
{stop, normal, StateData}
end;
{verify, To, From, Id, Type} ->
+ ?INFO_MSG("recv verify: ~p", [{From, To, Id, Type}]),
case StateData#state.verify of
false ->
{next_state, wait_for_validation, StateData};
@@ -215,9 +219,10 @@ wait_for_validation(closed, StateData) ->
stream_established({xmlstreamelement, El}, StateData) ->
- io:format("s2s out~n"),
+ ?INFO_MSG("stream established", []),
case is_verify_res(El) of
{verify, VTo, VFrom, VId, VType} ->
+ ?INFO_MSG("recv verify: ~p", [{VFrom, VTo, VId, VType}]),
case StateData#state.verify of
{VPid, VKey} ->
case VType of
@@ -338,7 +343,7 @@ handle_info({tcp_error, Socket, Reason}, StateName, StateData) ->
%% Returns: any
%%----------------------------------------------------------------------
terminate(Reason, StateName, StateData) ->
- ?DEBUG("s2s_out: terminate ~p~n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!~n", [[Reason, StateName, StateData]]),
+ ?INFO_MSG("terminated: ~p", [Reason]),
case StateData#state.new of
false ->
ok;
@@ -377,7 +382,7 @@ send_queue(Socket, Q) ->
new_id() ->
randoms:get_string().
-bounce_messages(Reason) ->
+bounce_messages(Error) ->
receive
{send_element, El} ->
{xmlelement, Name, Attrs, SubTags} = El,
@@ -385,13 +390,12 @@ bounce_messages(Reason) ->
"error" ->
ok;
_ ->
- Err = jlib:make_error_reply(El,
- "502", Reason),
+ Err = jlib:make_error_reply(El, Error),
From = jlib:string_to_jid(xml:get_attr_s("from", Attrs)),
To = jlib:string_to_jid(xml:get_attr_s("to", Attrs)),
ejabberd_router ! {route, To, From, Err}
end,
- bounce_messages(Reason)
+ bounce_messages(Error)
after 0 ->
ok
end.
diff --git a/src/ejabberd_service.erl b/src/ejabberd_service.erl
index 116780d4c..1b1344bb3 100644
--- a/src/ejabberd_service.erl
+++ b/src/ejabberd_service.erl
@@ -27,6 +27,7 @@
terminate/3]).
-include("ejabberd.hrl").
+-include("jlib.hrl").
-record(state, {socket, receiver, streamid,
host, password}).
@@ -173,7 +174,7 @@ stream_established({xmlstreamelement, El}, StateData) ->
(ToJID /= error) and (FromJID /= error) ->
ejabberd_router:route(FromJID, ToJID, El);
true ->
- Err = jlib:make_error_reply(El, "400", "Bad Request"),
+ Err = jlib:make_error_reply(El, ?ERR_BAD_REQUEST),
send_element(StateData#state.socket, Err),
error
end,
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl
index e715e4cf1..d9a23bf18 100644
--- a/src/ejabberd_sm.erl
+++ b/src/ejabberd_sm.erl
@@ -23,6 +23,7 @@
-include_lib("mnemosyne/include/mnemosyne.hrl").
-include("ejabberd.hrl").
+-include("jlib.hrl").
-record(session, {ur, user, node}).
-record(local_session, {ur, pid}).
@@ -301,14 +302,14 @@ route_message(From, To, Packet) ->
case catch mod_offline:store_packet(From, To, Packet) of
{'EXIT', _} ->
Err = jlib:make_error_reply(
- Packet, "503", "Service Unavailable"),
+ Packet, ?ERR_SERVICE_UNAVAILABLE),
ejabberd_router:route(To, From, Err);
_ ->
ok
end;
_ ->
Err = jlib:make_error_reply(
- Packet, "404", "Not Found"),
+ Packet, ?ERR_JID_NOT_FOUND),
ejabberd_router:route(To, From, Err)
end;
{_, R} ->
@@ -399,7 +400,7 @@ process_iq(From, To, Packet) ->
reply ->
ok;
_ ->
- Err = jlib:make_error_reply(Packet, "400", "Bad Request"),
+ Err = jlib:make_error_reply(Packet, ?ERR_BAD_REQUEST),
ejabberd_router ! {route, To, From, Err},
ok
end.
diff --git a/src/mod_configure.erl b/src/mod_configure.erl
index 71ee8f523..95bf4e417 100644
--- a/src/mod_configure.erl
+++ b/src/mod_configure.erl
@@ -51,9 +51,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
case XData of
invalid ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement, "error",
- [{"code", "400"}],
- [{xmlcdata, "Bad Request"}]}]};
+ [SubEl, ?ERR_BAD_REQUEST]};
_ ->
Node =
string:tokens(
@@ -73,9 +71,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
end;
_ ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]}
+ [SubEl, ?ERR_NOT_ALLOWED]}
end;
get ->
Node =
@@ -447,7 +443,7 @@ set_form(["running nodes", ENode, "modules", "start"], Lang, XData) ->
Node ->
case lists:keysearch("modules", 1, XData) of
false ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
{value, {_, Strings}} ->
String = lists:foldl(fun(S, Res) ->
Res ++ S ++ "\n"
@@ -465,13 +461,13 @@ set_form(["running nodes", ENode, "modules", "start"], Lang, XData) ->
end, Modules),
{result, []};
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end
end;
@@ -483,7 +479,7 @@ set_form(["running nodes", ENode, "backup", "backup"], Lang, XData) ->
Node ->
case lists:keysearch("path", 1, XData) of
false ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
case rpc:call(Node, mnesia, backup, [String]) of
{badrpc, Reason} ->
@@ -494,7 +490,7 @@ set_form(["running nodes", ENode, "backup", "backup"], Lang, XData) ->
{result, []}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end
end;
@@ -506,7 +502,7 @@ set_form(["running nodes", ENode, "backup", "restore"], Lang, XData) ->
Node ->
case lists:keysearch("path", 1, XData) of
false ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
case rpc:call(Node, mnesia, restore,
[String, [{default_op, keep_tables}]]) of
@@ -518,7 +514,7 @@ set_form(["running nodes", ENode, "backup", "restore"], Lang, XData) ->
{result, []}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end
end;
@@ -530,7 +526,7 @@ set_form(["running nodes", ENode, "backup", "textfile"], Lang, XData) ->
Node ->
case lists:keysearch("path", 1, XData) of
false ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
case rpc:call(Node, mnesia, dump_to_textfile, [String]) of
{badrpc, Reason} ->
@@ -541,7 +537,7 @@ set_form(["running nodes", ENode, "backup", "textfile"], Lang, XData) ->
{result, []}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end
end;
@@ -553,12 +549,12 @@ set_form(["running nodes", ENode, "import", "file"], Lang, XData) ->
Node ->
case lists:keysearch("path", 1, XData) of
false ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
rpc:call(Node, jd2ejd, import_file, [String]),
{result, []};
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end
end;
@@ -570,11 +566,11 @@ set_form(["running nodes", ENode, "import", "dir"], Lang, XData) ->
Node ->
case lists:keysearch("path", 1, XData) of
false ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
rpc:call(Node, jd2ejd, import_dir, [String]);
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end
end;
@@ -582,14 +578,14 @@ set_form(["running nodes", ENode, "import", "dir"], Lang, XData) ->
set_form(["config", "hostname"], Lang, XData) ->
case lists:keysearch("hostname", 1, XData) of
false ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
{value, {_, [""]}} ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
{value, {_, [NewName]}} ->
ejabberd_config:add_global_option(hostname, NewName),
{result, []};
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
set_form(["config", "acls"], Lang, XData) ->
@@ -606,16 +602,16 @@ set_form(["config", "acls"], Lang, XData) ->
ok ->
{result, []};
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
set_form(["config", "access"], Lang, XData) ->
@@ -652,16 +648,16 @@ set_form(["config", "access"], Lang, XData) ->
{result, []};
E ->
io:format("A: ~p~n", [E]),
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
_ ->
- {error, "406", "Not Acceptable"}
+ {error, ?ERR_BAD_REQUEST}
end;
set_form(["config", "remusers"], Lang, XData) ->
@@ -705,9 +701,7 @@ search_running_node(SNode, [Node | Nodes]) ->
process_sm_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
case acl:match_rule(configure, From) of
deny ->
- {iq, ID, error, XMLNS, [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]};
+ {iq, ID, error, XMLNS, [SubEl, ?ERR_NOT_ALLOWED]};
allow ->
{User, _, _} = To,
Lang = xml:get_tag_attr_s("xml:lang", SubEl),
@@ -722,9 +716,7 @@ process_sm_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
case XData of
invalid ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement, "error",
- [{"code", "400"}],
- [{xmlcdata, "Bad Request"}]}]};
+ [SubEl, ?ERR_BAD_REQUEST]};
_ ->
Node =
string:tokens(
@@ -745,9 +737,7 @@ process_sm_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
end;
_ ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]}
+ [SubEl, ?ERR_NOT_ALLOWED]}
end;
get ->
Node =
diff --git a/src/mod_muc/mod_muc.erl b/src/mod_muc/mod_muc.erl
index ac8d13207..dfb64f524 100644
--- a/src/mod_muc/mod_muc.erl
+++ b/src/mod_muc/mod_muc.erl
@@ -115,9 +115,18 @@ do_route(Host, From, To, Packet) ->
Packet, Error),
ejabberd_router:route(To, From, Err)
end;
+ {iq, ID, get, ?NS_VCARD = XMLNS, SubEl} ->
+ Lang = xml:get_tag_attr_s("xml:lang", SubEl),
+ Res = {iq, ID, result, XMLNS,
+ [{xmlelement, "query",
+ [{"xmlns", XMLNS}],
+ iq_get_vcard(Lang)}]},
+ ejabberd_router:route(To,
+ From,
+ jlib:iq_to_xml(Res));
_ ->
Err = jlib:make_error_reply(
- Packet, ?ERR_SERVICE_UNAVAILABLE),
+ Packet, ?ERR_FEATURE_NOT_IMPLEMENTED),
ejabberd_router:route(To, From, Err)
end;
_ ->
@@ -212,7 +221,8 @@ iq_disco_info() ->
{"type", "text"},
{"name", "ejabberd/mod_muc"}], []},
{xmlelement, "feature", [{"var", ?NS_MUC}], []},
- {xmlelement, "feature", [{"var", ?NS_REGISTER}], []}].
+ {xmlelement, "feature", [{"var", ?NS_REGISTER}], []},
+ {xmlelement, "feature", [{"var", ?NS_VCARD}], []}].
process_iq_disco_items(Host, From, To, ID, SubEl) ->
@@ -337,6 +347,17 @@ process_iq_register_set(From, SubEl) ->
{error, ?ERR_BAD_REQUEST}
end.
+iq_get_vcard(Lang) ->
+ [{xmlelement, "FN", [],
+ [{xmlcdata, "ejabberd/mod_muc"}]},
+ {xmlelement, "URL", [],
+ [{xmlcdata,
+ "http://ejabberd.jabberstudio.org/"}]},
+ {xmlelement, "DESC", [],
+ [{xmlcdata, "ejabberd MUC module\n"
+ "Copyright (c) 2003 Alexey Shchepin"}]}].
+
+
can_use_nick(JID, "") ->
false;
diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl
index 38ff37500..39cf4a0e9 100644
--- a/src/mod_muc/mod_muc_room.erl
+++ b/src/mod_muc/mod_muc_room.erl
@@ -306,7 +306,8 @@ normal_state({route, From, Nick,
case is_nick_exists(Nick, StateData) of
true ->
Err = jlib:make_error_reply(
- Packet, ?ERR_MUC_NICK_CHANGE_CONFLICT),
+ Packet,
+ ?ERR_MUC_NICK_CHANGE_CONFLICT),
ejabberd_router:route(
{StateData#state.room,
StateData#state.host,
diff --git a/src/mod_private.erl b/src/mod_private.erl
index 54eb8c05b..ca320a7a7 100644
--- a/src/mod_private.erl
+++ b/src/mod_private.erl
@@ -54,18 +54,14 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
case catch get_data(LUser, Els) of
{'EXIT', Reason} ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement, "error",
- [{"code", "500"}],
- [{xmlcdata, "Internal Server Error"}]}]};
+ [SubEl, ?ERR_INTERNAL_SERVER_ERROR]};
Res ->
{iq, ID, result, XMLNS,
[{xmlelement, Name, Attrs, Res}]}
end
end;
_ ->
- {iq, ID, error, XMLNS, [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]}
+ {iq, ID, error, XMLNS, [SubEl, ?ERR_NOT_ALLOWED]}
end.
set_data(LUser, El) ->
diff --git a/src/mod_register.erl b/src/mod_register.erl
index febc58dd6..08643ba8b 100644
--- a/src/mod_register.erl
+++ b/src/mod_register.erl
@@ -50,11 +50,7 @@ process_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
{iq, ID, result, XMLNS, [SubEl]};
not_allowed ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement,
- "error",
- [{"code", "405"}],
- [{xmlcdata,
- "Not Allowed"}]}]};
+ [SubEl, ?ERR_NOT_ALLOWED]};
not_exists ->
{iq, ID, error, XMLNS,
[SubEl, {xmlelement,
@@ -65,27 +61,15 @@ process_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
_ ->
{iq, ID, error, XMLNS,
[SubEl,
- {xmlelement,
- "error",
- [{"code", "500"}],
- [{xmlcdata,
- "Internal Server Error"}]}]}
+ ?ERR_INTERNAL_SERVER_ERROR]}
end;
true ->
{iq, ID, error, XMLNS,
- [SubEl,
- {xmlelement,
- "error",
- [{"code", "400"}],
- [{xmlcdata,
- "Bad Request"}]}]}
+ [SubEl, ?ERR_BAD_REQUEST]}
end
end;
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement,
- "error",
- [{"code", "501"}],
- [{xmlcdata, "Not Implemented"}]}]};
+ [SubEl, ?ERR_FEATURE_NOT_IMPLEMENTED]};
(UTag /= false) and (PTag /= false) ->
User = xml:get_tag_cdata(UTag),
Password = xml:get_tag_cdata(PTag),
@@ -119,7 +103,7 @@ process_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
try_register(User, Password) ->
case jlib:is_nodename(User) of
false ->
- {error, "406", "Not Acceptable"};
+ {error, ?ERR_BAD_REQUEST};
_ ->
case ejabberd_auth:try_register(User, Password) of
{atomic, ok} ->
diff --git a/src/mod_roster.erl b/src/mod_roster.erl
index 38b6e36aa..6fbd5ef0e 100644
--- a/src/mod_roster.erl
+++ b/src/mod_roster.erl
@@ -62,7 +62,7 @@ process_iq(From, To, IQ) ->
ignore;
_ ->
{iq, ID, error, XMLNS,
- [SubEl, jlib:make_error_element("404", "Not Found")]}
+ [SubEl, ?ERR_JID_NOT_FOUND]}
end.
process_iq_get(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
@@ -79,8 +79,7 @@ process_iq_get(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
XItems}]};
_ ->
{iq, ID, error, XMLNS,
- [SubEl, jlib:make_error_element("500",
- "Internal Server Error")]}
+ [SubEl, ?ERR_INTERNAL_SERVER_ERROR]}
end.
item_to_xml(Item) ->
diff --git a/src/mod_stats.erl b/src/mod_stats.erl
index c2f432c1c..09eb18cda 100644
--- a/src/mod_stats.erl
+++ b/src/mod_stats.erl
@@ -31,9 +31,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
Lang = xml:get_tag_attr_s("xml:lang", SubEl),
case Type of
set ->
- {iq, ID, error, XMLNS, [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]};
+ {iq, ID, error, XMLNS, [SubEl, ?ERR_NOT_ALLOWED]};
get ->
{xmlelement, _, Attrs, Els} = SubEl,
Node = string:tokens(xml:get_tag_attr_s("node", SubEl), "/"),
diff --git a/src/mod_time.erl b/src/mod_time.erl
index 36c190774..bcc6b45a8 100644
--- a/src/mod_time.erl
+++ b/src/mod_time.erl
@@ -32,9 +32,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
case Type of
set ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]};
+ [SubEl, ?ERR_NOT_ALLOWED]};
get ->
UTC = jlib:timestamp_to_iso(calendar:universal_time()),
{iq, ID, result, XMLNS,
diff --git a/src/mod_vcard.erl b/src/mod_vcard.erl
index 8e9225ffe..3f19d21ca 100644
--- a/src/mod_vcard.erl
+++ b/src/mod_vcard.erl
@@ -91,9 +91,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
{iq, ID, result, XMLNS, []};
_ ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]}
+ [SubEl, ?ERR_NOT_ALLOWED]}
end;
get ->
{iq, ID, result, XMLNS,
@@ -116,9 +114,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
process_sm_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
case Type of
set ->
- {iq, ID, error, XMLNS, [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]};
+ {iq, ID, error, XMLNS, [SubEl, ?ERR_NOT_ALLOWED]};
get ->
{User, _, _} = To,
LUser = jlib:tolower(User),
@@ -217,7 +213,7 @@ do_route(From, To, Packet) ->
{User, Server, Resource} = To,
if
(User /= "") or (Resource /= "") ->
- Err = jlib:make_error_reply(Packet, "503", "Service Unavailable"),
+ Err = jlib:make_error_reply(Packet, ?ERR_SERVICE_UNAVAILABLE),
ejabberd_router ! {route, To, From, Err};
true ->
IQ = jlib:iq_query_info(Packet),
@@ -230,7 +226,7 @@ do_route(From, To, Packet) ->
case XDataEl of
false ->
Err = jlib:make_error_reply(
- Packet, "400", "Bad Request"),
+ Packet, ?ERR_BAD_REQUEST),
ejabberd_router:route(To, From, Err);
_ ->
XData = jlib:parse_xdata_submit(XDataEl),
@@ -238,7 +234,7 @@ do_route(From, To, Packet) ->
invalid ->
Err = jlib:make_error_reply(
Packet,
- "400", "Bad Request"),
+ ?ERR_BAD_REQUEST),
ejabberd_router:route(To, From,
Err);
_ ->
@@ -271,7 +267,7 @@ do_route(From, To, Packet) ->
case Type of
set ->
Err = jlib:make_error_reply(
- Packet, "405", "Not Allowed"),
+ Packet, ?ERR_NOT_ALLOWED),
ejabberd_router:route(To, From, Err);
get ->
ResIQ = {iq, ID, result, ?NS_DISCO_INFO,
@@ -294,7 +290,7 @@ do_route(From, To, Packet) ->
case Type of
set ->
Err = jlib:make_error_reply(
- Packet, "405", "Not Allowed"),
+ Packet, ?ERR_NOT_ALLOWED),
ejabberd_router:route(To, From, Err);
get ->
ResIQ = {iq, ID, result, ?NS_DISCO_INFO,
@@ -307,7 +303,7 @@ do_route(From, To, Packet) ->
end;
_ ->
Err = jlib:make_error_reply(Packet,
- "503", "Service Unavailable"),
+ ?ERR_SERVICE_UNAVAILABLE),
ejabberd_router:route(To, From, Err)
end
end.
diff --git a/src/mod_version.erl b/src/mod_version.erl
index 53c3a7535..fefecdcd6 100644
--- a/src/mod_version.erl
+++ b/src/mod_version.erl
@@ -34,9 +34,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
case Type of
set ->
{iq, ID, error, XMLNS,
- [SubEl, {xmlelement, "error",
- [{"code", "405"}],
- [{xmlcdata, "Not Allowed"}]}]};
+ [SubEl, ?ERR_NOT_ALLOWED]};
get ->
OSType = case os:type() of
{Osfamily, Osname} ->