Blame


1 4180d05b 2004-06-17 devnull #include <u.h>
2 4180d05b 2004-06-17 devnull #include <libc.h>
3 4180d05b 2004-06-17 devnull #include <authsrv.h>
4 4180d05b 2004-06-17 devnull #include <bio.h>
5 4180d05b 2004-06-17 devnull #include <ndb.h>
6 4180d05b 2004-06-17 devnull
7 4180d05b 2004-06-17 devnull int
8 4180d05b 2004-06-17 devnull authdial(char *netroot, char *dom)
9 4180d05b 2004-06-17 devnull {
10 4180d05b 2004-06-17 devnull char *p;
11 4180d05b 2004-06-17 devnull int rv;
12 4180d05b 2004-06-17 devnull
13 4180d05b 2004-06-17 devnull if(dom != nil){
14 4180d05b 2004-06-17 devnull /* look up an auth server in an authentication domain */
15 4180d05b 2004-06-17 devnull p = csgetvalue(netroot, "authdom", dom, "auth", nil);
16 4180d05b 2004-06-17 devnull
17 4180d05b 2004-06-17 devnull /* if that didn't work, just try the IP domain */
18 4180d05b 2004-06-17 devnull if(p == nil)
19 4180d05b 2004-06-17 devnull p = csgetvalue(netroot, "dom", dom, "auth", nil);
20 4180d05b 2004-06-17 devnull if(p == nil){
21 4180d05b 2004-06-17 devnull werrstr("no auth server found for %s", dom);
22 4180d05b 2004-06-17 devnull return -1;
23 4180d05b 2004-06-17 devnull }
24 4180d05b 2004-06-17 devnull rv = dial(netmkaddr(p, netroot, "ticket"), 0, 0, 0);
25 4180d05b 2004-06-17 devnull free(p);
26 4180d05b 2004-06-17 devnull return rv;
27 4180d05b 2004-06-17 devnull } else {
28 4180d05b 2004-06-17 devnull /* look for one relative to my machine */
29 4180d05b 2004-06-17 devnull return dial(netmkaddr("$auth", netroot, "ticket"), 0, 0, 0);
30 4180d05b 2004-06-17 devnull }
31 4180d05b 2004-06-17 devnull }