今天在Linux 2.6下编译安装Bind-9.3.2发现了一个..
时间:2006-03-08 来源:R9_Alien
在正确设置Dns配置文件后,启动Bind,发现提示
process `named' is using obsolete setsockopt SO_BSDCOMPAT
解决办法:
将Bind得tar包解压后,在其/lib/isc/unix/socket.c里面找到需要修改的代码:
首先找到这个 (在1297行附近):
#if defined(USE_CMSG) || defined(SO_BSDCOMPAT)
int on = 1;
改成:
#if defined(USE_CMSG)
int on = 1;
再找到这段子程序(在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
**********************************************************************
把这段全部注释掉或者删除,然后在编译安装一遍就OK了。