summaryrefslogtreecommitdiffstats
path: root/contrib/bind/bin/mkservdb/mkservdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind/bin/mkservdb/mkservdb.c')
-rw-r--r--contrib/bind/bin/mkservdb/mkservdb.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/contrib/bind/bin/mkservdb/mkservdb.c b/contrib/bind/bin/mkservdb/mkservdb.c
index 5647ec7..b3b758c 100644
--- a/contrib/bind/bin/mkservdb/mkservdb.c
+++ b/contrib/bind/bin/mkservdb/mkservdb.c
@@ -1,5 +1,5 @@
#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: mkservdb.c,v 1.6 1999/10/13 16:39:00 vixie Exp $";
+static const char rcsid[] = "$Id: mkservdb.c,v 1.9 2001/01/26 06:54:11 vixie Exp $";
#endif /* not lint */
/*
@@ -29,6 +29,7 @@ static const char rcsid[] = "$Id: mkservdb.c,v 1.6 1999/10/13 16:39:00 vixie Exp
#include <ctype.h>
#ifdef IRS_LCL_SV_DB
#include <db.h>
+#include <err.h>
#endif
#include <fcntl.h>
#include <limits.h>
@@ -37,9 +38,11 @@ static const char rcsid[] = "$Id: mkservdb.c,v 1.6 1999/10/13 16:39:00 vixie Exp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "../../include/irs.h"
#include "../../lib/irs/irs_p.h"
+#include "../../include/isc/misc.h"
#include "port_after.h"
@@ -61,6 +64,7 @@ main(int argc, char **argv) {
struct servent *getnextent(FILE *);
+int
main(int argc, char **argv) {
DB *db;
DBT key;
@@ -112,24 +116,26 @@ main(int argc, char **argv) {
}
data.size = p - dbuf;
- if ((r = db->put(db, &key, &data, R_NOOVERWRITE)))
+ if ((r = db->put(db, &key, &data, R_NOOVERWRITE))) {
if (r < 0)
- errx(1, "failed to write %s", key.data);
+ errx(1, "failed to write %s", (char *)key.data);
else
- warnx("will not overwrite %s", key.data);
+ warnx("will not overwrite %s", (char *)key.data);
+ }
for (n = 0; sv->s_aliases[n]; ++n) {
if (strlen(sv->s_aliases[n]) + sizeof "/"
+ strlen(sv->s_proto) > sizeof kbuf)
continue;
key.size = SPRINTF((kbuf, "%s/%s",
sv->s_aliases[n], sv->s_proto))+1;
- if ((r = db->put(db, &key, &data, R_NOOVERWRITE)))
+ if ((r = db->put(db, &key, &data, R_NOOVERWRITE))) {
if (r < 0)
errx(1, "failed to write %s",
- key.data);
+ (char *)key.data);
else
warnx("will not overwrite %s",
- key.data);
+ (char *)key.data);
+ }
}
ports = (u_short *)kbuf;
@@ -152,16 +158,17 @@ main(int argc, char **argv) {
}
data.size = p - dbuf;
- if ((r = db->put(db, &key, &data, R_NOOVERWRITE)))
+ if ((r = db->put(db, &key, &data, R_NOOVERWRITE))) {
if (r < 0)
errx(1, "failed to write %d/%s",
ntohs(sv->s_port), sv->s_proto);
else
warnx("will not overwrite %d/%s",
- ntohs(sv->s_port), sv->s_proto);
+ ntohs(sv->s_port), sv->s_proto);
+ }
}
db->close(db);
- if (rename(tmpdatabase, database))
+ if (isc_movefile(tmpdatabase, database))
err(1, "rename %s -> %s", tmpdatabase, database);
exit(0);
}
OpenPOWER on IntegriCloud