| #include <u.h> |
| #include <libc.h> |
| #include <authsrv.h> |
| #include <bio.h> |
| #include <ndb.h> |
| |
| int |
| authdial(char *netroot, char *dom) |
| { |
| char *p; |
| int rv; |
| Ndb *db; |
| char *file; |
| |
| if(dom){ |
| file = unsharp("#9/ndb/local"); |
| db = ndbopen(file); |
| if(db == nil){ |
| fprint(2, "open %s: %r\n", file); |
| free(file); |
| return -1; |
| } |
| free(file); |
| p = ndbgetvalue(db, nil, "authdom", dom, "auth", nil); |
| if(p == nil) |
| p = ndbgetvalue(db, nil, "dom", dom, "auth", nil); |
| if(p == nil) |
| p = dom; |
| rv = dial(netmkaddr(p, "tcp", "ticket"), 0, 0, 0); |
| if(p != dom) |
| free(p); |
| ndbclose(db); |
| return rv; |
| } |
| p = getenv("auth"); |
| if(p == nil) |
| p = "$auth"; |
| return dial(netmkaddr(p, "tcp", "ticket"), 0, 0, 0); |
| } |