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 15423fd0 2005-02-11 devnull Ndb *db;
13 15423fd0 2005-02-11 devnull char *file;
14 4180d05b 2004-06-17 devnull
15 15423fd0 2005-02-11 devnull if(dom){
16 15423fd0 2005-02-11 devnull file = unsharp("#9/ndb/local");
17 15423fd0 2005-02-11 devnull db = ndbopen(file);
18 15423fd0 2005-02-11 devnull if(db == nil){
19 15423fd0 2005-02-11 devnull fprint(2, "open %s: %r\n", file);
20 15423fd0 2005-02-11 devnull free(file);
21 4180d05b 2004-06-17 devnull return -1;
22 4180d05b 2004-06-17 devnull }
23 15423fd0 2005-02-11 devnull free(file);
24 15423fd0 2005-02-11 devnull p = ndbgetvalue(db, nil, "authdom", dom, "auth", nil);
25 15423fd0 2005-02-11 devnull if(p == nil)
26 15423fd0 2005-02-11 devnull p = ndbgetvalue(db, nil, "dom", dom, "auth", nil);
27 15423fd0 2005-02-11 devnull if(p == nil)
28 15423fd0 2005-02-11 devnull p = dom;
29 15423fd0 2005-02-11 devnull rv = dial(netmkaddr(p, "tcp", "ticket"), 0, 0, 0);
30 15423fd0 2005-02-11 devnull if(p != dom)
31 15423fd0 2005-02-11 devnull free(p);
32 ac963cb3 2005-11-07 devnull ndbclose(db);
33 4180d05b 2004-06-17 devnull return rv;
34 4180d05b 2004-06-17 devnull }
35 15423fd0 2005-02-11 devnull p = getenv("auth");
36 15423fd0 2005-02-11 devnull if(p == nil)
37 15423fd0 2005-02-11 devnull p = "$auth";
38 15423fd0 2005-02-11 devnull return dial(netmkaddr(p, "tcp", "ticket"), 0, 0, 0);
39 4180d05b 2004-06-17 devnull }