commit - 1b3e768e01ef80ecdb758617e88ada3fb5a8226c
commit + 15423fd0524fae25926d807eddfe1336b2ec3be3
blob - 5e608058582e8f6e28801f1ced753fab035a9fa9
blob + 5e305a547e3101d9a327735831c802541fe15591
--- src/libauthsrv/authdial.c
+++ src/libauthsrv/authdial.c
{
char *p;
int rv;
-
- if(dom != nil){
- /* look up an auth server in an authentication domain */
- p = csgetvalue(netroot, "authdom", dom, "auth", nil);
+ Ndb *db;
+ char *file;
- /* if that didn't work, just try the IP domain */
- if(p == nil)
- p = csgetvalue(netroot, "dom", dom, "auth", nil);
- if(p == nil){
- werrstr("no auth server found for %s", dom);
+ if(dom){
+ file = unsharp("#9/ndb/local");
+ db = ndbopen(file);
+ if(db == nil){
+ fprint(2, "open %s: %r\n", file);
+ free(file);
return -1;
}
- rv = dial(netmkaddr(p, netroot, "ticket"), 0, 0, 0);
- free(p);
+ 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);
return rv;
- } else {
- /* look for one relative to my machine */
- return dial(netmkaddr("$auth", netroot, "ticket"), 0, 0, 0);
}
+ p = getenv("auth");
+ if(p == nil)
+ p = "$auth";
+ return dial(netmkaddr(p, "tcp", "ticket"), 0, 0, 0);
}
blob - a69cc942d7d92ca0f05592e66639b03956e446c2
blob + ddbefa5670e36d101278c8c972140a0de85c00c3
--- src/libauthsrv/mkfile
+++ src/libauthsrv/mkfile
-PLAN9=../..
<$PLAN9/src/mkhdr
LIB=libauthsrv.a
OFILES=\
_asgetticket.$O\
_asrdresp.$O\
-# authdial.$O\
+ authdial.$O\
convA2M.$O\
convM2A.$O\
convM2PR.$O\