zonec: unable to open xxx.yy.zone: Too many open files

Hello NSD folks,

i found an error, while building the nsd.db via
nsdc rebuild (Version nsd-1.2.0):

..
zonec: reading zone "xxx0.yy.": 0 errors
zonec: writing zone "xxx0.yy.": done.
zonec: unable to open dominic-zones/xxx1.yy.zone: Too many open files
zonec: unable to open dominic-zones/xxx2.yy.zone: Too many open files
zonec: done with total 2 errors.

The zone-list-file contains only 251 zone-entries.
This happens on a
"SunOS xxx 5.9 Generic_112233-06 sun4u sparc SUNW,Sun-Fire-280R".

I fixed this problem in the file "zonec.c" simply adding
a line (line-nr: 582) to close the stream:

struct zone *
zone_read (char *name, char *zonefile)
{
..
         /* Open the zone file */
         if((parser = nsd_zopen(zonefile, 3600, CLASS_IN, name)) == NULL) {
                 fprintf(stderr, "zonec: unable to open %s: %s\n", zonefile, strerror(errno));
                 zone_free(z);
                 return NULL;
         }
..
+ /* Close the zone file */
+ fclose(parser->file);
         return z;
}

I hope it helps everybody else.

Best regard,

Wilhelm Zenz

Wilhelm Zenz wrote:

Hello NSD folks,

i found an error, while building the nsd.db via
nsdc rebuild (Version nsd-1.2.0):

[... code snipped ...]

I hope it helps everybody else.

Thanks. This is now in bugzilla (http://www.nlnetlabs.nl/bugs/show_bug.cgi?id=60).

ERik