Dienstag, 29. April 2008

Die Namensauflösung bei Linux (DNS resolve) funktioniert nach einem bestimmten Schema. Dieses ist folgend aufgelistet, wobei SYSV, BSE auf die Vorlieben der Distribution hindeutet.
  1. Nameserviceswitch /etc/nsswitch.conf SysV
  2. prehistoric libc-legacy /etc/host.conf BSE
  3. libc DNS resolver /etc/resolv.conf BSE wie SysV

Wenn der Nameserviceswitch besagt, dass Anstelle von dns lieber files
befragt werden sollen, schaut der Resolver direkt nach 1. in /etc/hosts nach.
(Gegebenenfalls in der aufgeführten Reihenfolge)

Eventuell ist der Nameservicecachedeamon (nscd) aktiv. Dieser ist bei
Resolvingproblemen am sinnvollsten praeventiv zu toeten (pkill -9 nscd)

Der sinnvollste Einsatz von nscd ist an die Verwendung von LDAP Verzeichnisdienst
(fuer User) gekoppelt, und/oder wenn DNS Anfragen für den Rechner besonders teuer sind

BIND kommt erst dann zum Einsatz, wenn die drei aufgeführten Punkte gleichzeitig erfüllt sind!

  1. In nsswitch.conf der Eintrag wie folgt aussieht
    hosts: dns
  2. host.conf richtig konfiguriert ist oder nicht vorhanden ist
  3. In resolv.conf eine lokale IP Adresse (127.0.0.1 oder die IP eines der aktiven Netzwerkinterfaces) steht.

Mittwoch, 2. April 2008

undefined reference to vtable!?

One of the most obscure error message the gcc produces is the output
undefined reference to vtable
The reason is usually simple:

gcc has to put the vtable into an object file. That is the object file, where the definition of the first non-inline member function is. If it is missing, you get this rather unhelpful linker error.
So?! You now have to check the member functions!