xref: /plan9/sys/src/libauthsrv/authdial.c (revision a84536681645e23c630ce4ef2e5c3b284d4c590b)
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 
13 	if(dom != nil){
14 		/* look up an auth server in an authentication domain */
15 		p = csgetvalue(netroot, "authdom", dom, "auth", nil);
16 
17 		/* if that didn't work, just try the IP domain */
18 		if(p == nil)
19 			p = csgetvalue(netroot, "dom", dom, "auth", nil);
20 		if(p == nil){
21 			werrstr("no auth server found for %s", dom);
22 			return -1;
23 		}
24 		rv = dial(netmkaddr(p, netroot, "ticket"), 0, 0, 0);
25 		free(p);
26 		return rv;
27 	} else {
28 		/* look for one relative to my machine */
29 		return dial(netmkaddr("$auth", netroot, "ticket"), 0, 0, 0);
30 	}
31 }
32