4491. [bug] Improve message emitted when testing whether sendmsg

works with TOS/TCLASS fails. [RT #43483]

(cherry picked from commit 8eaf918adf)
This commit is contained in:
Mark Andrews 2016-10-27 09:02:06 +11:00
parent 8d0f8e8c2e
commit fd2f4551d9
2 changed files with 12 additions and 8 deletions

View file

@ -1,3 +1,6 @@
4491. [bug] Improve message emitted when testing whether sendmsg
works with TOS/TCLASS fails. [RT #43483]
4490. [maint] Added AAAA (2001:500:12::d0d) for G.ROOT-SERVERS.NET.
4489. [security] It was possible to trigger assertions when processing

View file

@ -500,7 +500,7 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
unsigned char b[256];
} control;
struct cmsghdr *cmsgp;
int dscp = 46;
int dscp = (46 << 2); /* Expedited forwarding. */
struct iovec iovec;
char buf[1] = { 0 };
isc_result_t result;
@ -562,6 +562,8 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
if (sendmsg(s, &msg, 0) < 0) {
int debug = ISC_LOG_DEBUG(10);
const char *typestr;
const char *msgstr;
switch (errno) {
#ifdef ENOPROTOOPT
case ENOPROTOOPT:
@ -580,13 +582,12 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
"sendmsg: %s", strbuf);
} else {
UNEXPECTED_ERROR(__FILE__, __LINE__,
"sendmsg() %s: %s",
isc_msgcat_get(isc_msgcat,
ISC_MSGSET_GENERAL,
ISC_MSG_FAILED,
"failed"),
strbuf);
typestr = (type == IP_TOS) ? "IP_TOS" : "IPV6_TCLASS";
msgstr = isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL,
ISC_MSG_FAILED, "failed");
UNEXPECTED_ERROR(__FILE__, __LINE__, "probing "
"sendmsg() with %s=%02x %s: %s",
typestr, dscp, msgstr, strbuf);
}
return (ISC_FALSE);
}