Summary: | BIND 9.2.x is using obsolete setsockopt SO_BSDCOMPAT in kernels 2.6.x | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Forza <forza> |
Component: | [OLD] Server | Assignee: | Stewart (RETIRED) <blkdeath> |
Status: | RESOLVED UPSTREAM | ||
Severity: | normal | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Forza
2004-04-21 12:15:47 UTC
This also applies to bind-tools-9.2.3-r1 (I have not tested with earler versions). Have you consulted with the fine folks at ISC? Try http://www.isc.org/sw/bind/ and find the link to the mailing lists, and/or contact information. Mark Andrews, Paul Vixie or many others will certainly be interested in your input. (Used old resolution method. Changed to upstream issue.) ^^ I have registered and submitted to their mailing list bind9-users@isc.org and am waiting for any response. In their mailing list archive I found what would be some form of workaround though I did not find any of the referenses it needed in my system: http://marc.theaimsgroup.com/?l=bind9-users&m=107704346530456&w=2 I got an aswer from the mailing list. I will post most of it here. Unfortunately I am only a user with not so much experience in patching/ making patches etc so I cannot provide any info about if this will work. : ~~~~~~~~~~~~~~~~~~~~ it turns out SO_BSDCOMPAT is an obsolete define in later kernels, and this is an error generated from the bind process. I will suggest better to get the latest bind 9.2.3 code , fix the error, and rebuild. After unpacking, the code to change will be found in /lib/isc/unix/socket.c First, locate this (around line 1297): #if defined(USE_CMSG) || defined(SO_BSDCOMPAT) int on = 1; and change to this (i.e. remove the reference to SO_BSDCOMPAT) #if defined(USE_CMSG) int on = 1; And then locate the subroutine (around line 1384): #ifdef SO_BSDCOMPAT if (setsockopt(sock->fd, SOL_SOCKET, SO_BSDCOMPAT, (void *)&on, sizeof on) < 0) { isc__strerror(errno, strbuf, sizeof(strbuf)); UNEXPECTED_ERROR(__FILE__, __LINE__, "setsockopt(%d, SO_BSDCOMPAT) %s: %s", sock->fd, isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, ISC_MSG_FAILED, "failed"), strbuf); /* Press on... /* } #endif and comment out all of that routine completely: /* Nick #ifdef SO_BSDCOMPAT if (setsockopt(sock->fd, SOL_SOCKET, SO_BSDCOMPAT, (void *)&on, sizeof on) < 0) { isc__strerror(errno, strbuf, sizeof(strbuf)); UNEXPECTED_ERROR(__FILE__, __LINE__, "setsockopt(%d, SO_BSDCOMPAT) %s: %s", sock->fd, isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, ISC_MSG_FAILED, "failed"), strbuf); Press on... } #endif End Nick */ Build, install... and the warnings stop. ~~~~~~~~~~~~~~~~~~~~ There should be a gentoo patch for bind-tools to prevent the syslog from being spamed by this nagging message, isn't it ? |