commit 15423fd0524fae25926d807eddfe1336b2ec3be3 from: rsc date: Fri Feb 11 19:46:29 2005 UTC use ndb directly for authdial commit - 1b3e768e01ef80ecdb758617e88ada3fb5a8226c commit + 15423fd0524fae25926d807eddfe1336b2ec3be3 blob - 5e608058582e8f6e28801f1ced753fab035a9fa9 blob + 5e305a547e3101d9a327735831c802541fe15591 --- src/libauthsrv/authdial.c +++ src/libauthsrv/authdial.c @@ -9,23 +9,30 @@ authdial(char *netroot, char *dom) { 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 @@ -1,11 +1,10 @@ -PLAN9=../.. <$PLAN9/src/mkhdr LIB=libauthsrv.a OFILES=\ _asgetticket.$O\ _asrdresp.$O\ -# authdial.$O\ + authdial.$O\ convA2M.$O\ convM2A.$O\ convM2PR.$O\