From 8106d5f9c1aa507e1a8aca25a48dc5efbf43eca1 Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Tue, 14 Oct 2003 19:34:17 +0000 Subject: [PATCH] * src/ejabberd_local.erl: Bugfix * src/mod_register.erl: Added support for sending of "welcome" message * src/ejabberd.cfg.example: Updated * src/ejabberd_s2s_out.erl: Replaced "_jabber-server" with "_xmpp-server" SVN Revision: 150 --- ChangeLog | 11 +++++++++++ src/ejabberd.cfg.example | 9 +++++++++ src/ejabberd_local.erl | 14 +++++++++----- src/ejabberd_s2s_out.erl | 2 +- src/mod_register.erl | 18 +++++++++++++++++- 5 files changed, 47 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2162c330c..04dd65443 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2003-10-14 Alexey Shchepin + + * src/ejabberd_local.erl: Bugfix + + * src/mod_register.erl: Added support for sending of "welcome" + message + * src/ejabberd.cfg.example: Updated + + * src/ejabberd_s2s_out.erl: Replaced "_jabber-server" with + "_xmpp-server" + 2003-10-12 Alexey Shchepin * doc/guide.tex: Updated diff --git a/src/ejabberd.cfg.example b/src/ejabberd.cfg.example index 4474f3b68..b2d90b773 100644 --- a/src/ejabberd.cfg.example +++ b/src/ejabberd.cfg.example @@ -24,6 +24,15 @@ % Every username can be registered via in-band registration: {access, register, [{allow, all}]}. +% After successful registration user will get message with following subject +% and body: +{welcome_message, + {"Welcome!", + "Welcome to Jabber Service. " + "For information about Jabber visit http://jabber.org"}}. +% Replace them with 'none' if you don't want to send such message: +%{welcome_message, none}. + % Only non-blocked users can use c2s connections: {access, c2s, [{deny, blocked}, diff --git a/src/ejabberd_local.erl b/src/ejabberd_local.erl index 6df88e3da..d4517f35b 100644 --- a/src/ejabberd_local.erl +++ b/src/ejabberd_local.erl @@ -84,11 +84,15 @@ do_route(State, From, To, Packet) -> ok end; #jid{luser = ""} -> - Err = jlib:make_error_reply(Packet, ?ERR_ITEM_NOT_FOUND), - ejabberd_router ! {route, - jlib:make_jid("", State#state.mydomain, ""), - From, - Err}; + {xmlelement, _Name, Attrs, _Els} = Packet, + case xml:get_attr_s("type", Attrs) of + "error" -> ok; + "result" -> ok; + _ -> + Err = jlib:make_error_reply(Packet, ?ERR_ITEM_NOT_FOUND), + ejabberd_router:route( + jlib:make_jid("", State#state.mydomain, ""), From, Err) + end; _ -> ejabberd_sm ! {route, From, To, Packet} end. diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl index 466f9fd0b..90faf4c55 100644 --- a/src/ejabberd_s2s_out.erl +++ b/src/ejabberd_s2s_out.erl @@ -443,7 +443,7 @@ is_verify_res(_) -> -include_lib("kernel/include/inet.hrl"). get_addr_port(Server) -> - Res = case inet_res:getbyname("_jabber-server._tcp." ++ Server, srv) of + Res = case inet_res:getbyname("_xmpp-server._tcp." ++ Server, srv) of {error, _Reason} -> inet_res:getbyname("_jabber._tcp." ++ Server, srv); {ok, _HEnt} = R -> R diff --git a/src/mod_register.erl b/src/mod_register.erl index 9bf89f05e..f19a608a3 100644 --- a/src/mod_register.erl +++ b/src/mod_register.erl @@ -116,12 +116,14 @@ try_register(User, Password) -> false -> {error, ?ERR_BAD_REQUEST}; _ -> - case acl:match_rule(register, jlib:make_jid(User, ?MYNAME, "")) of + JID = jlib:make_jid(User, ?MYNAME, ""), + case acl:match_rule(register, JID) of deny -> {error, ?ERR_CONFLICT}; allow -> case ejabberd_auth:try_register(User, Password) of {atomic, ok} -> + send_welcome_message(JID), ok; {atomic, exists} -> {error, ?ERR_CONFLICT}; @@ -132,4 +134,18 @@ try_register(User, Password) -> end. +send_welcome_message(JID) -> + case ejabberd_config:get_local_option(welcome_message) of + {"", ""} -> + ok; + {Subj, Body} -> + ejabberd_router:route( + jlib:make_jid("", ?MYNAME, ""), + JID, + {xmlelement, "message", [{"type", "normal"}], + [{xmlelement, "subject", [], [{xmlcdata, Subj}]}, + {xmlelement, "body", [], [{xmlcdata, Body}]}]}); + _ -> + ok + end.