View previous topic :: View next topic |
Author |
Message |
invictus n00b
Joined: 09 Jan 2004 Posts: 26
|
Posted: Fri Jan 09, 2004 3:47 pm Post subject: weird dmesg output |
|
|
I am using gentoo 1.4 with kernel 2.6.0. After emerging bind and doing rc-update add named default I get the following message when using dmesg:
process `named' is using obsolete setsockopt SO_BSDCOMPAT
Does anyone know how to fix this? named isnt working as I want either |
|
Back to top |
|
|
Kirigoe Tux's lil' helper
Joined: 10 Jan 2003 Posts: 147 Location: concrete hut, sweden
|
|
Back to top |
|
|
invictus n00b
Joined: 09 Jan 2004 Posts: 26
|
Posted: Fri Jan 09, 2004 4:14 pm Post subject: |
|
|
so the only solution is really to edit bind's source? if its obsolete, why is it still in the code? do you think it will be removed in a later version so I dont have to get this message?
*cant stop getting annoyed by warnings and such* |
|
Back to top |
|
|
radulucian Apprentice
Joined: 05 Jan 2004 Posts: 151 Location: Bucharest Romania
|
Posted: Tue Mar 16, 2004 8:59 am Post subject: |
|
|
bumped.
did you figured out what that was ?
same problem here. can anyone at least explain this issue a little ? _________________ --------------------------
i am gen2 fan too
noone clicks links in the signature
-------------------------- |
|
Back to top |
|
|
vague n00b
Joined: 17 May 2004 Posts: 6 Location: Cape Town, South Afica
|
Posted: Thu Mar 31, 2005 6:45 am Post subject: |
|
|
Quote: | same problem here. can anyone at least explain this issue a little ? |
Let me try and explain this a bit.
The SO_BSDCOMPAT define is obsolete in 2.6 kernels.
I am not sure exactly what it was used for in 2.4 kernels, but we do not need it now.
However a lot of programs still use this define and until they stop using it we will still get this message, though it does no harm that I can see.
With bind you can comment out the references to the define in the source.
You can find it in lib/isc/unix/socket.c
there are two sections that need removing:
Code: | #if defined(USE_CMSG) || defined(SO_BSDCOMPAT)
int on = 1;
#endif |
should become:
Code: | #if defined(USE_CMSG)
int on = 1;
#endif |
And comment out this whole section:
Code: | #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 |
With programs other than bind the same approach should work, you will just need to find the right places in the source.
If you are not happy editing the source of your programs then you will just have to wait for the software developers to fix it for you or for a gentoo patch. |
|
Back to top |
|
|
|