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 server[Ndbvlen]; 11 Ndbtuple *nt; 12 13 14 if(dom != nil){ 15 /* look up an auth server in an authentication domain */ 16 nt = csgetval(netroot, "authdom", dom, "auth", server); 17 18 /* if that didn't work, just try the IP domain */ 19 if(nt == nil) 20 nt = csgetval(netroot, "dom", dom, "auth", server); 21 if(nt == nil){ 22 werrstr("no auth server found for %s", dom); 23 return -1; 24 } 25 ndbfree(nt); 26 return dial(netmkaddr(server, netroot, "ticket"), 0, 0, 0); 27 } else { 28 /* look for one relative to my machine */ 29 return dial(netmkaddr("$auth", netroot, "ticket"), 0, 0, 0); 30 } 31 } 32