2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 22:45:39 +00:00

3717. [port] hpux: Treat EOPNOTSUPP as a expected error code when

probing to see if it is possible to set dscp values
                        on a per packet basis. [RT #35252]

3716.   [bug]           The dns_request code was setting dcsp values when not
                        requested.  [RT #35252]
This commit is contained in:
Mark Andrews
2014-01-28 08:25:28 +11:00
parent 3b9bbd52c8
commit b8cf73a3b3
3 changed files with 23 additions and 10 deletions

View File

@@ -1,3 +1,10 @@
3717. [port] hpux: Treat EOPNOTSUPP as a expected error code when
probing to see if it is possible to set dscp values
on a per packet basis. [RT #35252]
3716. [bug] The dns_request code was setting dcsp values when not
requested. [RT #35252]
3715. [bug] The region and city databases could fail to 3715. [bug] The region and city databases could fail to
initialize when using some versions of libGeoIP, initialize when using some versions of libGeoIP,
causing assertion failures when named was causing assertion failures when named was

View File

@@ -665,7 +665,7 @@ dns_request_createraw(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
dns_request_t **requestp) dns_request_t **requestp)
{ {
return(dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr, return(dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr,
0, options, timeout, 0, 0, task, action, -1, options, timeout, 0, 0, task, action,
arg, requestp)); arg, requestp));
} }
@@ -683,7 +683,7 @@ dns_request_createraw2(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
udpretries = timeout / udptimeout; udpretries = timeout / udptimeout;
return (dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr, return (dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr,
0, options, timeout, udptimeout, -1, options, timeout, udptimeout,
udpretries, task, action, arg, udpretries, task, action, arg,
requestp)); requestp));
} }
@@ -697,7 +697,7 @@ dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
dns_request_t **requestp) dns_request_t **requestp)
{ {
return (dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr, return (dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr,
0, options, timeout, udptimeout, -1, options, timeout, udptimeout,
udpretries, task, action, arg, udpretries, task, action, arg,
requestp)); requestp));
} }
@@ -868,7 +868,7 @@ dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message,
dns_request_t **requestp) dns_request_t **requestp)
{ {
return (dns_request_createvia4(requestmgr, message, NULL, address, return (dns_request_createvia4(requestmgr, message, NULL, address,
0, options, key, timeout, 0, 0, task, -1, options, key, timeout, 0, 0, task,
action, arg, requestp)); action, arg, requestp));
} }
@@ -881,7 +881,7 @@ dns_request_createvia(dns_requestmgr_t *requestmgr, dns_message_t *message,
dns_request_t **requestp) dns_request_t **requestp)
{ {
return(dns_request_createvia4(requestmgr, message, srcaddr, destaddr, return(dns_request_createvia4(requestmgr, message, srcaddr, destaddr,
0, options, key, timeout, 0, 0, task, -1, options, key, timeout, 0, 0, task,
action, arg, requestp)); action, arg, requestp));
} }
@@ -898,7 +898,7 @@ dns_request_createvia2(dns_requestmgr_t *requestmgr, dns_message_t *message,
if (udptimeout != 0) if (udptimeout != 0)
udpretries = timeout / udptimeout; udpretries = timeout / udptimeout;
return (dns_request_createvia4(requestmgr, message, srcaddr, destaddr, return (dns_request_createvia4(requestmgr, message, srcaddr, destaddr,
0, options, key, timeout, udptimeout, -1, options, key, timeout, udptimeout,
udpretries, task, action, arg, udpretries, task, action, arg,
requestp)); requestp));
} }
@@ -913,7 +913,7 @@ dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message,
dns_request_t **requestp) dns_request_t **requestp)
{ {
return (dns_request_createvia4(requestmgr, message, srcaddr, destaddr, return (dns_request_createvia4(requestmgr, message, srcaddr, destaddr,
0, options, key, timeout, udptimeout, -1, options, key, timeout, udptimeout,
udpretries, task, action, arg, udpretries, task, action, arg,
requestp)); requestp));
} }

View File

@@ -497,8 +497,8 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
} control; } control;
struct cmsghdr *cmsgp; struct cmsghdr *cmsgp;
int dscp = 46; int dscp = 46;
struct iovec iovec = { (void *)&iovec, sizeof(iovec) }; struct iovec iovec;
char buf[sizeof(iovec)]; char buf[1] = { 0 };
isc_result_t result; isc_result_t result;
if (bind(s, res->ai_addr, res->ai_addrlen) < 0) { if (bind(s, res->ai_addr, res->ai_addrlen) < 0) {
@@ -517,6 +517,9 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
return (ISC_FALSE); return (ISC_FALSE);
} }
iovec.iov_base = buf;
iovec.iov_len = sizeof(buf);
memset(&msg, 0, sizeof(msg)); memset(&msg, 0, sizeof(msg));
msg.msg_name = (struct sockaddr *)&ss; msg.msg_name = (struct sockaddr *)&ss;
msg.msg_namelen = len; msg.msg_namelen = len;
@@ -552,6 +555,9 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
switch (errno) { switch (errno) {
#ifdef ENOPROTOOPT #ifdef ENOPROTOOPT
case ENOPROTOOPT: case ENOPROTOOPT:
#endif
#ifdef EOPNOTSUPP
case EOPNOTSUPP:
#endif #endif
case EINVAL: case EINVAL:
break; break;
@@ -582,7 +588,7 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
RUNTIME_CHECK(result == ISC_R_SUCCESS); RUNTIME_CHECK(result == ISC_R_SUCCESS);
iovec.iov_base = buf; iovec.iov_base = buf;
iovec.iov_len = sizeof(len); iovec.iov_len = sizeof(buf);
memset(&msg, 0, sizeof(msg)); memset(&msg, 0, sizeof(msg));
msg.msg_name = (struct sockaddr *)&ss; msg.msg_name = (struct sockaddr *)&ss;