summaryrefslogtreecommitdiff
path: root/src/mod_muc
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-05-09 19:32:59 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-05-09 19:32:59 +0000
commit86cd1729cb0fce35e17c9e4a8d44a64cfd409db8 (patch)
treec05468bce96e13031bc68eed1b33d5860f4a61b6 /src/mod_muc
parent* src/mod_muc/mod_muc.erl: Denied using of empty nick (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 '')
-rw-r--r--src/mod_muc/mod_muc.erl25
-rw-r--r--src/mod_muc/mod_muc_room.erl3
2 files changed, 25 insertions, 3 deletions
diff --git a/src/mod_muc/mod_muc.erl b/src/mod_muc/mod_muc.erl
index ac8d1320..dfb64f52 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 38ff3750..39cf4a0e 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,