Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <authsrv.h>
4 #include <bio.h>
5 #include <ndb.h>
7 int
8 authdial(char *netroot, char *dom)
9 {
10 char *p;
11 int rv;
12 Ndb *db;
13 char *file;
15 if(dom){
16 file = unsharp("#9/ndb/local");
17 db = ndbopen(file);
18 if(db == nil){
19 fprint(2, "open %s: %r\n", file);
20 free(file);
21 return -1;
22 }
23 free(file);
24 p = ndbgetvalue(db, nil, "authdom", dom, "auth", nil);
25 if(p == nil)
26 p = ndbgetvalue(db, nil, "dom", dom, "auth", nil);
27 if(p == nil)
28 p = dom;
29 rv = dial(netmkaddr(p, "tcp", "ticket"), 0, 0, 0);
30 if(p != dom)
31 free(p);
32 ndbclose(db);
33 return rv;
34 }
35 p = getenv("auth");
36 if(p == nil)
37 p = "$auth";
38 return dial(netmkaddr(p, "tcp", "ticket"), 0, 0, 0);
39 }