~ubuntu-branches/debian/squeeze/erlang/squeeze

« back to all changes in this revision

Viewing changes to lib/kernel/src/auth.erl

  • Committer: Bazaar Package Importer
  • Author(s): Erlang Packagers, Sergei Golovan
  • Date: 2006-12-03 17:07:44 UTC
  • mfrom: (2.1.11 feisty)
  • Revision ID: james.westby@ubuntu.com-20061203170744-rghjwupacqlzs6kv
Tags: 1:11.b.2-4
[ Sergei Golovan ]
Fixed erlang-base and erlang-base-hipe prerm scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
%% 
16
16
%%     $Id$
17
17
%%
18
 
 
19
18
-module(auth).
20
19
-behaviour(gen_server).
21
 
-export([start_link/0, init/1, is_auth/1, 
 
20
 
 
21
-export([start_link/0]).
 
22
 
 
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, '_'}]).
 
26
 
 
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,
 
30
         sync_cookie/0,
22
31
         print/3]).
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])).
27
 
%%
28
 
%% Backward compatibility.
29
 
%% 
30
 
-export([cookie/0, cookie/1, node_cookie/1, 
31
 
         node_cookie/2]).
32
32
 
33
 
-export([handle_call/3,handle_cast/2,handle_info/2,terminate/2,
34
 
         code_change/3]).
 
33
%% gen_server callbacks
 
34
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
 
35
         terminate/2, code_change/3]).
35
36
 
36
37
-define(COOKIE_ETS_PROTECTION, protected). 
37
38
 
42
43
 
43
44
-include("../include/file.hrl").
44
45
 
45
 
%% -----------------------------------------------------
46
 
%% Interface functions.
47
 
%% -----------------------------------------------------
 
46
%%----------------------------------------------------------------------
 
47
%% Exported functions
 
48
%%----------------------------------------------------------------------
 
49
 
 
50
start_link() ->
 
51
    gen_server:start_link({local, auth}, auth, [], []).
 
52
 
 
53
%%--Deprecated interface------------------------------------------------
48
54
 
49
55
is_auth(Node) ->
50
 
    case catch gen:call({net_kernel, Node},
51
 
                        '$gen_call',
52
 
                        {is_auth, node()},
53
 
                        infinity) of
54
 
        {ok,Res} -> Res;
55
 
        {'EXIT',_} -> no;
56
 
        {error, _} -> no
 
56
    case net_adm:ping(Node) of
 
57
        pong -> yes;
 
58
        pang -> no
57
59
    end.
58
60
 
59
 
 
60
 
set_cookie(_Node, _Cookie) when node() =:= nonode@nohost ->
61
 
    erlang:fault(distribution_not_started);
62
 
 
63
 
set_cookie(Node, Cookie) ->
64
 
    gen_server:call(auth,{set_cookie, Node, Cookie}).
65
 
 
66
 
set_cookie(Cookie) ->
67
 
    set_cookie(node(),Cookie).
68
 
    
69
 
get_cookie(_Node) when node() =:= nonode@nohost ->
70
 
    nocookie;
71
 
 
72
 
get_cookie(Node) ->
73
 
    gen_server:call(auth,{get_cookie, Node}).
74
 
    
75
 
get_cookie() ->
76
 
    get_cookie(node()).
77
 
 
78
 
sync_cookie() ->
79
 
    gen_server:call(auth,sync_cookie).
80
 
    
81
 
 
82
 
print(Node,Format,Args) ->
83
 
    (catch gen_server:cast({auth,Node},{print,Format,Args})).
84
 
%%
85
 
%% These are for backward compatibility.
86
 
%%
 
61
cookie() ->
 
62
    get_cookie().
87
63
 
88
64
cookie([Cookie]) ->
89
65
    set_cookie(Cookie);
90
 
 
91
66
cookie(Cookie) ->
92
67
    set_cookie(Cookie).
93
68
 
94
 
cookie() ->
95
 
    get_cookie().
96
 
 
 
69
node_cookie([Node, Cookie]) ->
 
70
    node_cookie(Node, Cookie).
97
71
node_cookie(Node, Cookie) ->
98
72
    set_cookie(Node, Cookie),
99
73
    is_auth(Node).
100
74
 
101
 
node_cookie([Node, Cookie]) ->
102
 
    node_cookie(Node, Cookie).
103
 
 
104
 
%% -----------------------------------------------------
105
 
 
106
 
start_link() -> gen_server:start_link({local,auth}, auth, [], []).
 
75
%%--"New" interface-----------------------------------------------------
 
76
 
 
77
get_cookie() ->
 
78
    get_cookie(node()).
 
79
 
 
80
get_cookie(_Node) when node() =:= nonode@nohost ->
 
81
    nocookie;
 
82
get_cookie(Node) ->
 
83
    gen_server:call(auth, {get_cookie, Node}).
 
84
 
 
85
set_cookie(Cookie) ->
 
86
    set_cookie(node(), Cookie).
 
87
 
 
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}).
 
92
 
 
93
sync_cookie() ->
 
94
    gen_server:call(auth, sync_cookie).
 
95
 
 
96
print(Node,Format,Args) ->
 
97
    (catch gen_server:cast({auth,Node},{print,Format,Args})).
 
98
 
 
99
%%--gen_server callbacks------------------------------------------------
107
100
 
108
101
init([]) ->
109
 
    process_flag(trap_exit,true),
 
102
    process_flag(trap_exit, true),
110
103
    {ok, init_cookie()}.
111
104
 
112
105
%% Opened is a list of servers we have opened up
148
141
    {reply, hello, O}.
149
142
 
150
143
handle_cast({print,What,Args}, O) ->
151
 
  %% allways allow print outs
 
144
  %% always allow print outs
152
145
  error_logger:error_msg(What,Args), 
153
146
  {noreply, O}.
154
147
 
198
191
            end
199
192
    end, 
200
193
    {noreply, Opened};
201
 
handle_info(_, O)->   %% Ignore anything else especially EXIT signals
 
194
handle_info(_, O)->   % Ignore anything else especially EXIT signals
202
195
    {noreply, O}.
203
196
 
204
197
code_change(_OldVsn, State, _Extra) ->
207
200
terminate(_Reason, _State) ->
208
201
    ok.
209
202
 
210
 
getnode(P) when pid(P) -> node(P);
 
203
getnode(P) when is_pid(P) -> node(P);
211
204
getnode(P) -> P.
212
205
 
213
 
 
 
206
 
214
207
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
215
208
%%%
216
209
%%%     Cookie functions