|
Lines 1736-1742
dns_message_renderbegin(dns_message_t *m
Link Here
|
| 1736 |
if (r.length < DNS_MESSAGE_HEADERLEN) |
1736 |
if (r.length < DNS_MESSAGE_HEADERLEN) |
| 1737 |
return (ISC_R_NOSPACE); |
1737 |
return (ISC_R_NOSPACE); |
| 1738 |
|
1738 |
|
| 1739 |
if (r.length < msg->reserved) |
1739 |
if (r.length - DNS_MESSAGE_HEADERLEN < msg->reserved) |
| 1740 |
return (ISC_R_NOSPACE); |
1740 |
return (ISC_R_NOSPACE); |
| 1741 |
|
1741 |
|
| 1742 |
/* |
1742 |
/* |
|
Lines 1863-1870
norender_rdataset(const dns_rdataset_t *
Link Here
|
| 1863 |
|
1863 |
|
| 1864 |
return (ISC_TRUE); |
1864 |
return (ISC_TRUE); |
| 1865 |
} |
1865 |
} |
| 1866 |
|
|
|
| 1867 |
#endif |
1866 |
#endif |
|
|
1867 |
|
| 1868 |
static isc_result_t |
| 1869 |
renderset(dns_rdataset_t *rdataset, dns_name_t *owner_name, |
| 1870 |
dns_compress_t *cctx, isc_buffer_t *target, |
| 1871 |
unsigned int reserved, unsigned int options, unsigned int *countp) |
| 1872 |
{ |
| 1873 |
isc_result_t result; |
| 1874 |
|
| 1875 |
/* |
| 1876 |
* Shrink the space in the buffer by the reserved amount. |
| 1877 |
*/ |
| 1878 |
if (target->length - target->used < reserved) |
| 1879 |
return (ISC_R_NOSPACE); |
| 1880 |
|
| 1881 |
target->length -= reserved; |
| 1882 |
result = dns_rdataset_towire(rdataset, owner_name, |
| 1883 |
cctx, target, options, countp); |
| 1884 |
target->length += reserved; |
| 1885 |
|
| 1886 |
return (result); |
| 1887 |
} |
| 1888 |
|
| 1868 |
isc_result_t |
1889 |
isc_result_t |
| 1869 |
dns_message_rendersection(dns_message_t *msg, dns_section_t sectionid, |
1890 |
dns_message_rendersection(dns_message_t *msg, dns_section_t sectionid, |
| 1870 |
unsigned int options) |
1891 |
unsigned int options) |
|
Lines 1907-1912
dns_message_rendersection(dns_message_t
Link Here
|
| 1907 |
/* |
1928 |
/* |
| 1908 |
* Shrink the space in the buffer by the reserved amount. |
1929 |
* Shrink the space in the buffer by the reserved amount. |
| 1909 |
*/ |
1930 |
*/ |
|
|
1931 |
if (msg->buffer->length - msg->buffer->used < msg->reserved) |
| 1932 |
return (ISC_R_NOSPACE); |
| 1910 |
msg->buffer->length -= msg->reserved; |
1933 |
msg->buffer->length -= msg->reserved; |
| 1911 |
|
1934 |
|
| 1912 |
total = 0; |
1935 |
total = 0; |
|
Lines 2183-2191
dns_message_renderend(dns_message_t *msg
Link Here
|
| 2183 |
* Render. |
2206 |
* Render. |
| 2184 |
*/ |
2207 |
*/ |
| 2185 |
count = 0; |
2208 |
count = 0; |
| 2186 |
result = dns_rdataset_towire(msg->opt, dns_rootname, |
2209 |
result = renderset(msg->opt, dns_rootname, msg->cctx, |
| 2187 |
msg->cctx, msg->buffer, 0, |
2210 |
msg->buffer, msg->reserved, 0, &count); |
| 2188 |
&count); |
|
|
| 2189 |
msg->counts[DNS_SECTION_ADDITIONAL] += count; |
2211 |
msg->counts[DNS_SECTION_ADDITIONAL] += count; |
| 2190 |
if (result != ISC_R_SUCCESS) |
2212 |
if (result != ISC_R_SUCCESS) |
| 2191 |
return (result); |
2213 |
return (result); |
|
Lines 2201-2209
dns_message_renderend(dns_message_t *msg
Link Here
|
| 2201 |
if (result != ISC_R_SUCCESS) |
2223 |
if (result != ISC_R_SUCCESS) |
| 2202 |
return (result); |
2224 |
return (result); |
| 2203 |
count = 0; |
2225 |
count = 0; |
| 2204 |
result = dns_rdataset_towire(msg->tsig, msg->tsigname, |
2226 |
result = renderset(msg->tsig, msg->tsigname, msg->cctx, |
| 2205 |
msg->cctx, msg->buffer, 0, |
2227 |
msg->buffer, msg->reserved, 0, &count); |
| 2206 |
&count); |
|
|
| 2207 |
msg->counts[DNS_SECTION_ADDITIONAL] += count; |
2228 |
msg->counts[DNS_SECTION_ADDITIONAL] += count; |
| 2208 |
if (result != ISC_R_SUCCESS) |
2229 |
if (result != ISC_R_SUCCESS) |
| 2209 |
return (result); |
2230 |
return (result); |
|
Lines 2224-2232
dns_message_renderend(dns_message_t *msg
Link Here
|
| 2224 |
* the owner name of a SIG(0) is irrelevant, and will not |
2245 |
* the owner name of a SIG(0) is irrelevant, and will not |
| 2225 |
* be set in a message being rendered. |
2246 |
* be set in a message being rendered. |
| 2226 |
*/ |
2247 |
*/ |
| 2227 |
result = dns_rdataset_towire(msg->sig0, dns_rootname, |
2248 |
result = renderset(msg->sig0, dns_rootname, msg->cctx, |
| 2228 |
msg->cctx, msg->buffer, 0, |
2249 |
msg->buffer, msg->reserved, 0, &count); |
| 2229 |
&count); |
|
|
| 2230 |
msg->counts[DNS_SECTION_ADDITIONAL] += count; |
2250 |
msg->counts[DNS_SECTION_ADDITIONAL] += count; |
| 2231 |
if (result != ISC_R_SUCCESS) |
2251 |
if (result != ISC_R_SUCCESS) |
| 2232 |
return (result); |
2252 |
return (result); |