« マイブーム「メジャーリーグ」 | メイン

bind-9.4.1-P1のインストールと「process `named' is using obsolete setsockopt SO_BSDCOMPAT」対策

Linux(CentOS4.5)サーバにbind-9.4.1-P1を通常通りインストールするとサーバ起動時に「process `named' is using obsolete setsockopt SO_BSDCOMPAT」のエラーメッセージがコンソールに表示されます。このエラーメッセージは古いソケットオプションを使用しているLinuxに対応しているそうで、新しいLinixカーネル2.6には対応していないため警告メッセージとして表示されるようです。特に何も影響が内容なのでほっといても大丈夫なのですが、サーバ起動時に毎回でるのではあまり気持ちいいものではないのでエラーメッセージを表示させないようにインストールしてみました。

ソースのダウンロードはBindのサイトへ

以下、インストールになります。


1. namedユーザの作成

# groupadd named
# useradd -g named -d /var/named -s /bin/false named

2. bindのインストールとエラーメッセージ対策
# cd /root/
# tar -zxvf bind-9.4.1-P1.tar.gz
# vi /root/bind-9.4.1-P1/lib/isc/unix/socket.c

----------------------------------------------------------------------------
//エラーメッセージを表示させないようにsocket.cを修正
// 1401行目くらいに下記のような行があるので以下のように修正
#if defined(USE_CMSG) || defined(SO_BSDCOMPAT)
      ↓
#if defined(USE_CMSG)

// 1495行目くらいにある下記の部分を削除
#ifdef SO_BSDCOMPAT
if (type != isc_sockettype_unix &&
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
-------------------------------------------------------------------------------

# cd bind-9.4.1-P1
# ./configure --prefix=/usr --sysconfdir=/etc
# make
# make install

以上のようにsocket.cファイルを修正することで「process `named' is using obsolete setsockopt SO_BSDCOMPAT」のエラーメッセージが起動時に表示されなくります。

トラックバック

このエントリーのトラックバックURL:
http://supernet.is.land.to/mt/mt-tb.cgi/14

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年09月05日 02:47に投稿されたエントリーのページです。

ひとつ前の投稿は「マイブーム「メジャーリーグ」」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Sponsored link