authdial.c (711B)
1 #include <u.h> 2 #include <libc.h> 3 #include <authsrv.h> 4 #include <bio.h> 5 #include <ndb.h> 6 7 int 8 authdial(char *netroot, char *dom) 9 { 10 char *p; 11 int rv; 12 Ndb *db; 13 char *file; 14 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 }