/*
* find a matching entry in the database
*/
+ t = nil;
nstrcpy(dname, name, sizeof dname);
for(x=0; x<4; x++){
switch(x){
continue;
break;
}
- t = nil;
- free(ndbgetvalue(db, &s, "dom", dname, attr, &t));
- if(t == nil && strchr(dname, '.') == nil)
- free(ndbgetvalue(db, &s, "sys", dname, attr, &t));
+ for(nt = ndbsearch(db, &s, "dom", dname); nt != nil; nt = ndbsnext(&s, "dom", dname)) {
+ if(ndbfindattr(nt, s.t, attr) == nil) {
+ ndbfree(nt);
+ continue;
+ }
+ t = ndbconcatenate(t, ndbreorder(nt, s.t));
+ }
+ if(t == nil && strchr(dname, '.') == nil) {
+ for(nt = ndbsearch(db, &s, "sys", dname); nt != nil; nt = ndbsnext(&s, "sys", dname)) {
+ if(ndbfindattr(nt, s.t, attr) == nil) {
+ ndbfree(nt);
+ continue;
+ }
+ t = ndbconcatenate(t, ndbreorder(nt, s.t));
+ }
+ }
+ s.t = t;
if(t != nil)
break;
}
return nil;
}
+
/* search whole entry for default domain name */
for(nt = t; nt; nt = nt->entry)
if(strcmp(nt->attr, "dom") == 0){