6 int __res_mkquery(int op
, const char *dname
, int class, int type
,
7 const unsigned char *data
, int datalen
,
8 const unsigned char *newrr
, unsigned char *buf
, int buflen
)
13 size_t l
= strnlen(dname
, 255);
16 if (l
&& dname
[l
-1]=='.') l
--;
18 if (l
>253 || buflen
<n
|| op
>15u || class>255u || type
>255u)
21 /* Construct query template - ID will be filled later */
25 memcpy((char *)q
+13, dname
, l
);
26 for (i
=13; q
[i
]; i
=j
+1) {
27 for (j
=i
; q
[j
] && q
[j
] != '.'; j
++);
28 if (j
-i
-1u > 62u) return -1;
34 /* Make a reasonably unpredictable id */
35 clock_gettime(CLOCK_REALTIME
, &ts
);
36 id
= ts
.tv_nsec
+ ts
.tv_nsec
/65536UL & 0xffff;
44 weak_alias(__res_mkquery
, res_mkquery
);