13 * true if a name is in our area
22 for(s = owned; s; s = s->next){
25 if(cistrcmp(s->soarr->owner->name, name + len - s->len) == 0)
26 if(len == s->len || name[len - s->len - 1] == '.')
32 for(d = delegated; d; d = d->next){
35 if(cistrcmp(d->soarr->owner->name, name + len - d->len) == 0)
36 if(len == d->len || name[len - d->len - 1] == '.')
44 * our area is the part of the domain tree that
48 addarea(DN *dp, RR *rp, Ndbtuple *t)
58 * The area contains a copy of the soa rr that created it.
59 * The owner of the the soa rr should stick around as long
62 s = emalloc(sizeof(*s));
63 s->len = strlen(dp->name);
64 rrcopy(rp, &s->soarr);
71 syslog(0, logfile, "new area %s", dp->name);
90 * refresh all areas that need it
91 * this entails running a command 'zonerefreshprogram'. This could
92 * copy over databases from elsewhere or just do a zone transfer.
95 refresh_areas(Area *s)
100 argv[0] = zonerefreshprogram;
104 for(; s != nil; s = s->next){
108 if(zonerefreshprogram == nil){
113 argv[1] = s->soarr->owner->name;
114 w = runproc(argv[0], argv, 0);