resolv: Reformat resolv/res_mkquery.c to GNU style

This commit is contained in:
Florian Weimer 2017-06-30 11:31:12 +02:00
parent 7ab27b76d2
commit 74084febc4
2 changed files with 145 additions and 144 deletions

View File

@ -1,3 +1,8 @@
2017-06-30 Florian Weimer <fweimer@redhat.com>
* resolv/res_mkquery.c: Reformat to GNU style.
(T_OPT): Remove definition. It is present in the header file.
2017-06-30 Florian Weimer <fweimer@redhat.com>
* resolv/res_mkquery.c (DEBUG): Remove macro and preprocessor

View File

@ -97,41 +97,39 @@
# define RANDOM_BITS(Var) { uint64_t v64; HP_TIMING_NOW (v64); Var = v64; }
#endif
/*
* Form all types of queries.
* Returns the size of the result or -1.
*/
/* Form all types of queries. Returns the size of the result or -1 on
error.
STATP points to an initialized resolver state. OP is the opcode of
the query. DNAME is the domain. CLASS and TYPE are the DNS query
class and type. DATA can be NULL; otherwise, it is a pointer to a
domain name which is included in the generated packet (if op ==
NS_NOTIFY_OP). BUF must point to the out buffer of BUFLEN bytes.
DATALEN and NEWRR_IN are currently ignored. */
int
res_nmkquery(res_state statp,
int op, /* opcode of query */
const char *dname, /* domain name */
int class, int type, /* class and type of query */
const u_char *data, /* resource record data */
int datalen, /* length of data */
const u_char *newrr_in, /* new rr for modify or append */
u_char *buf, /* buffer to put query */
int buflen) /* size of buffer */
res_nmkquery (res_state statp, int op, const char *dname,
int class, int type,
const unsigned char *data, int datalen,
const unsigned char *newrr_in,
unsigned char *buf, int buflen)
{
HEADER *hp;
u_char *cp;
unsigned char *cp;
int n;
u_char *dnptrs[20], **dpp, **lastdnptr;
unsigned char *dnptrs[20], **dpp, **lastdnptr;
if (class < 0 || class > 65535
|| type < 0 || type > 65535)
if (class < 0 || class > 65535 || type < 0 || type > 65535)
return -1;
/*
* Initialize header fields.
*/
/* Initialize header fields. */
if ((buf == NULL) || (buflen < HFIXEDSZ))
return (-1);
return -1;
memset (buf, 0, HFIXEDSZ);
hp = (HEADER *) buf;
/* We randomize the IDs every time. The old code just
incremented by one after the initial randomization which
still predictable if the application does multiple
requests. */
/* We randomize the IDs every time. The old code just incremented
by one after the initial randomization which still predictable if
the application does multiple requests. */
int randombits;
do
{
@ -144,6 +142,7 @@ res_nmkquery(res_state statp,
#endif
}
while ((randombits & 0xffff) == 0);
statp->id = (statp->id + randombits) & 0xffff;
hp->id = statp->id;
hp->opcode = op;
@ -155,24 +154,24 @@ res_nmkquery(res_state statp,
*dpp++ = buf;
*dpp++ = NULL;
lastdnptr = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
/*
* perform opcode specific processing
*/
switch (op) {
/* Perform opcode specific processing. */
switch (op)
{
case NS_NOTIFY_OP:
if ((buflen -= QFIXEDSZ + (data == NULL ? 0 : RRFIXEDSZ)) < 0)
return (-1);
return -1;
goto compose;
case QUERY:
if ((buflen -= QFIXEDSZ) < 0)
return (-1);
return -1;
compose:
n = ns_name_compress (dname, cp, buflen,
(const u_char **) dnptrs,
(const u_char **) lastdnptr);
(const unsigned char **) dnptrs,
(const unsigned char **) lastdnptr);
if (n < 0)
return (-1);
return -1;
cp += n;
buflen -= n;
NS_PUT16 (type, cp);
@ -180,14 +179,13 @@ res_nmkquery(res_state statp,
hp->qdcount = htons (1);
if (op == QUERY || data == NULL)
break;
/*
* Make an additional record for completion domain.
*/
/* Make an additional record for completion domain. */
n = ns_name_compress ((char *)data, cp, buflen,
(const u_char **) dnptrs,
(const u_char **) lastdnptr);
(const unsigned char **) dnptrs,
(const unsigned char **) lastdnptr);
if (__glibc_unlikely (n < 0))
return (-1);
return -1;
cp += n;
buflen -= n;
NS_PUT16 (T_NULL, cp);
@ -198,37 +196,36 @@ res_nmkquery(res_state statp,
break;
default:
return (-1);
return -1;
}
return (cp - buf);
return cp - buf;
}
libresolv_hidden_def (res_nmkquery)
/* Create an OPT resource record. Return the length of the final
packet, or -1 on error.
/* attach OPT pseudo-RR, as documented in RFC2671 (EDNS0). */
#ifndef T_OPT
#define T_OPT 41
#endif
STATP must be an initialized resolver state. N0 is the current
number of bytes of the packet (already written to BUF by the
aller). BUF is the packet being constructed. The array it
pointers to must be BUFLEN bytes long. ANSLEN is the advertised
EDNS buffer size (to be included in the OPT resource record). */
int
__res_nopt(res_state statp,
int n0, /* current offset in buffer */
u_char *buf, /* buffer to put query */
int buflen, /* size of buffer */
int anslen) /* UDP answer buffer size */
__res_nopt (res_state statp, int n0, unsigned char *buf, int buflen,
int anslen)
{
u_int16_t flags = 0;
uint16_t flags = 0;
HEADER *hp = (HEADER *) buf;
u_char *cp = buf + n0;
u_char *ep = buf + buflen;
unsigned char *cp = buf + n0;
unsigned char *ep = buf + buflen;
if ((ep - cp) < 1 + RRFIXEDSZ)
return -1;
*cp++ = 0; /* "." */
/* Add the root label. */
*cp++ = 0;
NS_PUT16(T_OPT, cp); /* TYPE */
NS_PUT16 (T_OPT, cp); /* Record type. */
/* Lowering the advertised buffer size based on the actual
answer buffer size is desirable because the server will
@ -253,15 +250,14 @@ __res_nopt(res_state statp,
NS_PUT16 (buffer_size, cp);
}
*cp++ = NOERROR; /* extended RCODE */
*cp++ = 0; /* EDNS version */
*cp++ = NOERROR; /* Extended RCODE. */
*cp++ = 0; /* EDNS version. */
if (statp->options & RES_USE_DNSSEC) {
if (statp->options & RES_USE_DNSSEC)
flags |= NS_OPT_DNSSEC_OK;
}
NS_PUT16 (flags, cp);
NS_PUT16(0, cp); /* RDLEN */
NS_PUT16 (0, cp); /* RDATA length (no options are preent). */
hp->arcount = htons (ntohs (hp->arcount) + 1);
return cp - buf;