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-10-14 23:34:17 +0400
committerAlexey Shchepin <alexey@process-one.net>2003-10-14 23:34:17 +0400
commit8106d5f9c1aa507e1a8aca25a48dc5efbf43eca1 (patch)
tree4412b1cd0dcf060909c1c8f672073816a2e3ec28 /src
parent5c0ba6e337a9166be985101eae83153e96251d7d (diff)
* 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
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd.cfg.example9
-rw-r--r--src/ejabberd_local.erl14
-rw-r--r--src/ejabberd_s2s_out.erl2
-rw-r--r--src/mod_register.erl18
4 files changed, 36 insertions, 7 deletions
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.