| #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); | 
 | } |