20
19
-behaviour(gen_server).
21
-export([start_link/0, init/1, is_auth/1,
21
-export([start_link/0]).
23
%% Old documented interface - deprecated
24
-export([is_auth/1, cookie/0, cookie/1, node_cookie/1, node_cookie/2]).
25
-deprecated([{is_auth,1}, {cookie,'_'}, {node_cookie, '_'}]).
27
%% New interface - meant for internal use within kernel only
28
-export([get_cookie/0, get_cookie/1,
29
set_cookie/1, set_cookie/2,
23
-export([get_cookie/0, get_cookie/1, set_cookie/1,
24
set_cookie/2, sync_cookie/0]).
25
%-define(DBG,io:format("~p:~p~n",[?MODULE,?LINE])).
26
-define(DBG,erlang:display([?MODULE,?LINE])).
28
%% Backward compatibility.
30
-export([cookie/0, cookie/1, node_cookie/1,
33
-export([handle_call/3,handle_cast/2,handle_info/2,terminate/2,
33
%% gen_server callbacks
34
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
35
terminate/2, code_change/3]).
36
37
-define(COOKIE_ETS_PROTECTION, protected).
43
44
-include("../include/file.hrl").
45
%% -----------------------------------------------------
46
%% Interface functions.
47
%% -----------------------------------------------------
46
%%----------------------------------------------------------------------
48
%%----------------------------------------------------------------------
51
gen_server:start_link({local, auth}, auth, [], []).
53
%%--Deprecated interface------------------------------------------------
50
case catch gen:call({net_kernel, Node},
56
case net_adm:ping(Node) of
60
set_cookie(_Node, _Cookie) when node() =:= nonode@nohost ->
61
erlang:fault(distribution_not_started);
63
set_cookie(Node, Cookie) ->
64
gen_server:call(auth,{set_cookie, Node, Cookie}).
67
set_cookie(node(),Cookie).
69
get_cookie(_Node) when node() =:= nonode@nohost ->
73
gen_server:call(auth,{get_cookie, Node}).
79
gen_server:call(auth,sync_cookie).
82
print(Node,Format,Args) ->
83
(catch gen_server:cast({auth,Node},{print,Format,Args})).
85
%% These are for backward compatibility.
88
64
cookie([Cookie]) ->
89
65
set_cookie(Cookie);
92
67
set_cookie(Cookie).
69
node_cookie([Node, Cookie]) ->
70
node_cookie(Node, Cookie).
97
71
node_cookie(Node, Cookie) ->
98
72
set_cookie(Node, Cookie),
101
node_cookie([Node, Cookie]) ->
102
node_cookie(Node, Cookie).
104
%% -----------------------------------------------------
106
start_link() -> gen_server:start_link({local,auth}, auth, [], []).
75
%%--"New" interface-----------------------------------------------------
80
get_cookie(_Node) when node() =:= nonode@nohost ->
83
gen_server:call(auth, {get_cookie, Node}).
86
set_cookie(node(), Cookie).
88
set_cookie(_Node, _Cookie) when node()=:=nonode@nohost ->
89
erlang:fault(distribution_not_started);
90
set_cookie(Node, Cookie) ->
91
gen_server:call(auth, {set_cookie, Node, Cookie}).
94
gen_server:call(auth, sync_cookie).
96
print(Node,Format,Args) ->
97
(catch gen_server:cast({auth,Node},{print,Format,Args})).
99
%%--gen_server callbacks------------------------------------------------
109
process_flag(trap_exit,true),
102
process_flag(trap_exit, true),
110
103
{ok, init_cookie()}.
112
105
%% Opened is a list of servers we have opened up