[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Message d'erreur avec bind9




Stopping domaine name service: namedprocess `rndc' is using obsolete
setsockopt SO_BSDCOMPAT

Et au démarrage du serveur j'ai ce message la aussi :

Starting DHCP server : process `named' is using obsolete setsockopt
SO_BSDCOMPAT
A prioris, c'est un problème qui arrive après un changement de noyau.
en tout cas j'ai trouvé ce bug sur ggogle pour des gens qui passent en noyau 2.6.

Il semble qu'il faut recompiler bind pour corriger le problème en désactivant des options.
J'essaie de te traduire ce que j'ai trouvé ci dessous.. bonne lecture ;-)

reprise de ce que j'ai trouvé, je suppose que /* Press on... /* veut dire qu'il n'a pas mis tout le texte.

...le gars vient de booter sur son nouveau noyau..

finalement, j'ai et pollué par des messages provenant de "named" et de son controleur 'rndc' :

 process `named' is using obsolete setsockopt SO_BSDCOMPAT

Maintenant il trouve que SO_BSDCOMPAT est une définition obsolète dans les derbiers noyaux et cette erreur est générée par le processus bind.

Donc, j'ai décidé de télécharger le dernier source bind ( code source 9.2.3 ), corriger l'erreur et recompiler.

Aprés avoir décompacté le source, le code à changer pourra être trouvé dans /lib/isc/unix/socket.c

Premièrement, localiser ceci (à peu près à la ligne 1297):

 #if defined(USE_CMSG) || defined(SO_BSDCOMPAT)
        int on = 1;

et le modifier comme ceci (c'est à dire supprimer la référence à SO_BSDCOMPAT)

 #if defined(USE_CMSG)
        int on = 1;

Ensuite, localiser la sous-routine (à peu près ligne line 1384):
/* Press on... /*
 #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

et commenter cette sous-routine complètement :

 /* Remarques #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 Remarques */

Enfin, compiler et installer... Les warnings vont stopper.

J'espère que tu as tout compris, bonne chance...



Reply to: