Blob
1 #include <u.h>2 #include <libc.h>3 #include <authsrv.h>4 #include <bio.h>5 #include <ndb.h>7 int8 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 }