summaryrefslogtreecommitdiffstats
path: root/contrib/bind/bin/named-xfer/named-xfer.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind/bin/named-xfer/named-xfer.c')
-rw-r--r--contrib/bind/bin/named-xfer/named-xfer.c85
1 files changed, 44 insertions, 41 deletions
diff --git a/contrib/bind/bin/named-xfer/named-xfer.c b/contrib/bind/bin/named-xfer/named-xfer.c
index 27d9ac0..696c821 100644
--- a/contrib/bind/bin/named-xfer/named-xfer.c
+++ b/contrib/bind/bin/named-xfer/named-xfer.c
@@ -130,7 +130,7 @@ char copyright[] =
#if !defined(lint) && !defined(SABER)
static const char sccsid[] = "@(#)named-xfer.c 4.18 (Berkeley) 3/7/91";
-static const char rcsid[] = "$Id: named-xfer.c,v 8.121 2002/06/26 03:27:22 marka Exp $";
+static const char rcsid[] = "$Id: named-xfer.c,v 8.122.8.2 2003/06/02 05:59:56 marka Exp $";
#endif /* not lint */
#include "port_before.h"
@@ -242,8 +242,9 @@ LIST(tsig_node) tsig_list;
/*
* Debugging printf.
*/
-void
-dprintf(int level, const char *format, ...) {
+static void lprintf(int level, const char *format, ...) ISC_FORMAT_PRINTF(2, 3);
+static void
+lprintf(int level, const char *format, ...) {
va_list ap;
va_start(ap, format);
@@ -596,15 +597,15 @@ main(int argc, char *argv[]) {
#endif /* SIGUSR1&&SIGUSR2 */
if (dbfile)
- dprintf(1, "domain `%s'; file `%s'; serial %u\n",
+ lprintf(1, "domain `%s'; file `%s'; serial %u\n",
domain, dbfile, serial_no);
if (ixfrfile)
- dprintf(1, "domain `%s'; ixfrfile `%s'; serial %u\n",
+ lprintf(1, "domain `%s'; ixfrfile `%s'; serial %u\n",
domain, ixfrfile, serial_no);
if (tsigfile)
- dprintf(1, "tsigfile `%s'\n", tsigfile);
+ lprintf(1, "tsigfile `%s'\n", tsigfile);
buildservicelist();
buildprotolist();
@@ -626,7 +627,7 @@ main(int argc, char *argv[]) {
zp->z_source = dbfile;
zp->z_axfr_src = axfr_src;
zp->z_addrcnt = 0;
- dprintf(1, "zone found (%d): \"%s\", source = %s\n",
+ lprintf(1, "zone found (%d): \"%s\", source = %s\n",
zp->z_type,
(zp->z_origin[0] == '\0') ? "." : zp->z_origin,
zp->z_source);
@@ -670,15 +671,15 @@ main(int argc, char *argv[]) {
memcpy(&zp->z_addr[zp->z_addrcnt],
hp->h_addr,
INADDRSZ);
- dprintf(1, "Arg: \"%s\" %s\n", tm,((tmpsupportixfr) ? "IXFR":"AXFR"));
+ lprintf(1, "Arg: \"%s\" %s\n", tm,((tmpsupportixfr) ? "IXFR":"AXFR"));
}
if (++zp->z_addrcnt >= NSMAX) {
zp->z_addrcnt = NSMAX;
- dprintf(1, "NSMAX reached\n");
+ lprintf(1, "NSMAX reached\n");
break;
}
}
- dprintf(1, "addrcnt = %d\n", zp->z_addrcnt);
+ lprintf(1, "addrcnt = %d\n", zp->z_addrcnt);
res_ninit(&res);
res.options &= ~(RES_DEFNAMES | RES_DNSRCH | RES_RECURSE);
@@ -890,7 +891,7 @@ make_query(int fd, struct zoneinfo *zp, int type, u_int32_t serial_no,
if (type == T_IXFR) {
hp = (HEADER *) buf;
cp = buf;
- dprintf(1, "len = %d\n", n);
+ lprintf(1, "len = %d\n", n);
hp->nscount = htons(1+ntohs(hp->nscount));
cp += n;
n = dn_comp(zp->z_origin, cp, bufsize - (cp - buf), NULL, NULL);
@@ -911,7 +912,7 @@ make_query(int fd, struct zoneinfo *zp, int type, u_int32_t serial_no,
PUTLONG(0xABCD, cp); /* Expire */
PUTLONG(0x1776, cp); /* Min TTL */
n = cp - buf;
- dprintf(1, "len = %d\n", cp-buf);
+ lprintf(1, "len = %d\n", cp-buf);
}
tsig_signed = 0;
@@ -1116,7 +1117,7 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
for (cnt = 0; cnt < zp->z_addrcnt; cnt++) {
methode = servermethode[cnt];
sin.sin_addr = zp->z_addr[cnt];
- dprintf(3, "address [%s] %s\n",
+ lprintf(3, "address [%s] %s\n",
inet_ntoa(sin.sin_addr),
(methode == ISIXFR) ? "IXFR":"AXFR");
}
@@ -1156,7 +1157,7 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
sin.sin_family = AF_INET;
sin.sin_port = 0; /* "ANY" */
sin.sin_addr = z_axfr_src;
- dprintf(2, "binding to address [%s]\n",
+ lprintf(2, "binding to address [%s]\n",
inet_ntoa(sin.sin_addr));
if (bind(s, (struct sockaddr *)&sin, sizeof sin) < 0)
syslog(LOG_INFO, "warning: bind(%s) failed",
@@ -1166,11 +1167,11 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
sin.sin_family = AF_INET;
sin.sin_port = port;
sin.sin_addr = zp->z_addr[cnt];
- dprintf(2, "connecting to server #%d [%s].%d\n",
+ lprintf(2, "connecting to server #%d [%s].%d\n",
cnt + 1, inet_ntoa(sin.sin_addr), ntohs(sin.sin_port));
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
if (z_axfr_src.s_addr != 0) {
- dprintf(2, "connect failed, trying w/o -x");
+ lprintf(2, "connect failed, trying w/o -x");
z_axfr_src.s_addr = 0;
(void) my_close(s);
goto try_again;
@@ -1369,7 +1370,7 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
}
}
if ((loop_cnt >= 1) && (soa_cnt < 2)) {
- dprintf(1,
+ lprintf(1,
"server %s %d rejected IXFR and responded with AXFR\n",
inet_ntoa(sin.sin_addr), soa_cnt);
methode = ISNOTIXFR;
@@ -1379,7 +1380,7 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
break;
}
/* Skip to next record, if any. */
- dprintf(1, "skipping %s %s RR in response\n",
+ lprintf(1, "skipping %s %s RR in response\n",
name2, p_type(type));
tmp = cp4 + dlen;
loop_cnt++;
@@ -1391,7 +1392,7 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
if (check_serial &&
!SEQ_GT(zp_start.z_serial, query_serial)) {
(void) my_close(s);
- dprintf(1,
+ lprintf(1,
"zone up-to-date, serial %u\n",
zp_start.z_serial);
if (ixfp) {
@@ -1540,7 +1541,7 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
soa_cnt = 0;
goto axfr_response;
}
- dprintf(1, "need update, serial %u\n",
+ lprintf(1, "need update, serial %u\n",
zp_start.z_serial);
soa_cnt = 0;
hp = (HEADER *) buf;
@@ -1564,14 +1565,16 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
serial_no, tsig_key,
buf, bufsize);
syslog(LOG_INFO,
- "send %s query %d to %s",
- p_type(query_type),
- cnt, inet_ntoa(sin.sin_addr));
- dprintf(1,
+ "send %s query %d to %s for %s",
+ p_type(query_type),
+ cnt, inet_ntoa(sin.sin_addr),
+ (*zp->z_origin != '\0') ?
+ zp->z_origin : ".");
+ lprintf(1,
"send %s query to %s\n",
p_type(query_type),
inet_ntoa(sin.sin_addr));
- dprintf(1,"bufsize = %d\n", bufsize);
+ lprintf(1,"bufsize = %d\n", bufsize);
if (n < 0) {
if (!quiet) {
if (zp->z_type == Z_STUB)
@@ -1645,7 +1648,7 @@ receive:
axfr_response:
if (query_type == T_IXFR)
if (hp->rcode != NOERROR) {
- dprintf(1,
+ lprintf(1,
"server %s did not support IXFR\n",
inet_ntoa(sin.sin_addr));
methode = ISNOTIXFR;
@@ -1655,7 +1658,7 @@ axfr_response:
if (ntohs(hp->qdcount) == 1) {
if ((query_type == T_IXFR) &&
(methode == ISIXFR)) {
- dprintf(1,
+ lprintf(1,
"server %s rejected IXFR and responded with AXFR\n",
inet_ntoa(sin.sin_addr));
methode = ISNOTIXFR;
@@ -1805,10 +1808,10 @@ axfr_response:
(void) fclose(ixfp);
ixfp = NULL;
}
- dprintf(2, "error receiving zone transfer\n");
+ lprintf(2, "error receiving zone transfer\n");
} else if (zp_start.z_serial == serial_no) {
(void) my_close(s);
- dprintf(1, "zone up-to-date, serial %u\n",
+ lprintf(1, "zone up-to-date, serial %u\n",
zp_start.z_serial);
if (ixfp) {
(void) fclose(ixfp);
@@ -1828,7 +1831,7 @@ axfr_response:
} else {
if (zp_finish.z_serial == query_serial) {
(void) my_close(s);
- dprintf(1, "zone up-to-date, serial %u\n",
+ lprintf(1, "zone up-to-date, serial %u\n",
zp_start.z_serial);
if (ixfp) {
(void) fclose(ixfp);
@@ -1843,7 +1846,7 @@ axfr_response:
"serial from [%s], zone %s: %u lower than current: %u\n",
inet_ntoa(sin.sin_addr), zp->z_origin,
zp_finish.z_serial, query_serial);
- dprintf(1,
+ lprintf(1,
"serial from [%s], zone %s: %u lower than current: %u\n",
inet_ntoa(sin.sin_addr), zp->z_origin,
zp_finish.z_serial, query_serial);
@@ -1883,7 +1886,7 @@ axfr_response:
soa_cnt = 0;
goto axfr_response;
}
- dprintf(1, "We have an IXFR\n");
+ lprintf(1, "We have an IXFR\n");
loop_cnt = 0;
while (SEQ_GT(zp_finish.z_serial, serial_no)) {
/*
@@ -2055,7 +2058,7 @@ writemsg(int rfd, const u_char *msg, int msglen) {
u_char len[INT16SZ];
int ret;
- __putshort(msglen, len);
+ ns_put16(msglen, len);
iov[0].iov_base = (char *)len;
iov[0].iov_len = INT16SZ;
DE_CONST(msg, iov[1].iov_base);
@@ -2171,7 +2174,7 @@ print_output(struct zoneinfo *zp, u_int32_t serial_no, u_char *msg,
}
escaped = (*origin++ == '\\') && !escaped;
}
- dprintf(3, "print_output: dname %s type %d class %d ttl %u\n",
+ lprintf(3, "print_output: dname %s type %d class %d ttl %u\n",
dname, type, class, ttl);
/*
* Convert the resource record data into the internal database format.
@@ -2430,13 +2433,13 @@ print_output(struct zoneinfo *zp, u_int32_t serial_no, u_char *msg,
}
if (n > MAXDATA) {
- dprintf(1, "update type %d: %d bytes is too much data\n",
+ lprintf(1, "update type %d: %d bytes is too much data\n",
type, n);
hp->rcode = FORMERR;
return (-1);
}
if (cp != rdatap + dlen) {
- dprintf(1,
+ lprintf(1,
"encoded rdata length is %u, but actual length was %u\n",
dlen, (u_int)(cp - rdatap));
hp->rcode = FORMERR;
@@ -2517,10 +2520,10 @@ print_output(struct zoneinfo *zp, u_int32_t serial_no, u_char *msg,
} else
soa_cnt++;
} else {
- dprintf(2, "SOA, serial %u\n",
+ lprintf(2, "SOA, serial %u\n",
zp_finish.z_serial);
if (zp_start.z_serial != zp_finish.z_serial) {
- dprintf(1, "serial changed, restart\n");
+ lprintf(1, "serial changed, restart\n");
restarts++;
if (restarts > MAX_XFER_RESTARTS) {
syslog(LOG_INFO,
@@ -3190,13 +3193,13 @@ ixfr_log(const u_char *msg, int len, int *delete, FILE *file,
ns_rr rr;
if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
- dprintf(1, "ixfr_log() failed\n");
+ lprintf(1, "ixfr_log() failed\n");
return (-1);
}
if (ns_initparse(msg, len, &handle) < 0) {
fprintf(file, ";; ns_initparse: %s\n", strerror(errno));
- dprintf(1, "ixfr_log() failed\n");
+ lprintf(1, "ixfr_log() failed\n");
return (-1);
}
opcode = (ns_opcode) ns_msg_getflag(handle, ns_f_opcode);
@@ -3207,7 +3210,7 @@ ixfr_log(const u_char *msg, int len, int *delete, FILE *file,
{
(void) fprintf(file,"ns_parserr() failed");
- dprintf(1, "ixfr_log() failed\n");
+ lprintf(1, "ixfr_log() failed\n");
return (-1);
}
type = (ns_type)rr.type;
OpenPOWER on IntegriCloud