aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_auth_anonymous.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_auth_anonymous.erl')
-rw-r--r--src/ejabberd_auth_anonymous.erl31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/ejabberd_auth_anonymous.erl b/src/ejabberd_auth_anonymous.erl
index 05f790db6..9c4b719c3 100644
--- a/src/ejabberd_auth_anonymous.erl
+++ b/src/ejabberd_auth_anonymous.erl
@@ -5,7 +5,7 @@
%%% Created : 17 Feb 2006 by Mickael Remond <mremond@process-one.net>
%%%
%%%
-%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
+%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -24,6 +24,8 @@
%%%----------------------------------------------------------------------
-module(ejabberd_auth_anonymous).
+
+-behaviour(ejabberd_config).
-author('mickael.remond@process-one.net').
-export([start/1,
@@ -36,16 +38,15 @@
unregister_connection/3
]).
-
-%% Function used by ejabberd_auth:
-export([login/2, set_password/3, check_password/4,
check_password/6, try_register/3,
dirty_get_registered_users/0, get_vh_registered_users/1,
- get_vh_registered_users/2, get_vh_registered_users_number/1,
- get_vh_registered_users_number/2, get_password_s/2,
+ get_vh_registered_users/2,
+ get_vh_registered_users_number/1,
+ get_vh_registered_users_number/2, get_password_s/2,
get_password/2, get_password/3, is_user_exists/2,
remove_user/2, remove_user/3, store_type/0,
- plain_password_required/0]).
+ plain_password_required/0, opt_type/1]).
-include("ejabberd.hrl").
-include("logger.hrl").
@@ -55,7 +56,7 @@
%% Create the anonymous table if at least one virtual host has anonymous features enabled
%% Register to login / logout events
-record(anonymous, {us = {<<"">>, <<"">>} :: {binary(), binary()},
- sid = {now(), self()} :: ejabberd_sm:sid()}).
+ sid = {p1_time_compat:timestamp(), self()} :: ejabberd_sm:sid()}).
start(Host) ->
%% TODO: Check cluster mode
@@ -121,8 +122,8 @@ allow_multiple_connections(Host) ->
%% Check if user exist in the anonymus database
anonymous_user_exist(User, Server) ->
- LUser = jlib:nodeprep(User),
- LServer = jlib:nameprep(Server),
+ LUser = jid:nodeprep(User),
+ LServer = jid:nameprep(Server),
US = {LUser, LServer},
case catch mnesia:dirty_read({anonymous, US}) of
[] ->
@@ -141,7 +142,7 @@ remove_connection(SID, LUser, LServer) ->
%% Register connection
register_connection(SID,
#jid{luser = LUser, lserver = LServer}, Info) ->
- AuthModule = list_to_atom(binary_to_list(xml:get_attr_s(<<"auth_module">>, Info))),
+ AuthModule = proplists:get_value(auth_module, Info, undefined),
case AuthModule == (?MODULE) of
true ->
ejabberd_hooks:run(register_user, LServer,
@@ -269,3 +270,13 @@ plain_password_required() -> false.
store_type() ->
plain.
+
+opt_type(allow_multiple_connections) ->
+ fun (V) when is_boolean(V) -> V end;
+opt_type(anonymous_protocol) ->
+ fun (sasl_anon) -> sasl_anon;
+ (login_anon) -> login_anon;
+ (both) -> both
+ end;
+opt_type(_) ->
+ [allow_multiple_connections, anonymous_protocol].