Left Up Right Nisserver mit mehreren Typen von Maps

Änderungen zu ypserv-1.3.6

Das mit dem Parser neubauen habe ich sehr genau genommen. Dabei habe ich gleich die internen Strukturen neu gebaut.

Mit autoconf und automake habe ich mich noch nicht beschäftigt, daher hier ein Rückfall.

Übersicht über die Änderungen

yp_db.{h,c} -> Bibiothek der Maps in Unterverzeichnis maps und lrustrack.h
yp_msg.{h,c} -> logmsg.{h,c}
Gemeinsame Schnittstelle für Server und Testprogramme und evntuell Clients (verwende ich auch im radiusd)
access.c -> security.cc
Damit alles in der nismap.conf steht und wegen der Bemerkung von Torsten Kukuk über tcpdwrapper lassen wir das tcpwrapper weg.
Neu ist auch, daß es eine dreistufige Zugriffsliste gibt: global,domain und map. Die domain und Map-Prüfung isrd in Nismap::fetch vorgenommen.
Die Entscheidung, ob gemangelt wird, wurde in Nismap::fetch verlagert. Hier müßte dann konsequenterweise die Port-Sicherheit erfolgen.
ypserv_conf.c -> nmpars.y,nmpars.l und alles in Unterverzeichnis parser

Debugging

Die Syntax der Konfigurtionsdatei kann mit nmpars getestet werden. Die Syntax ist nun schöner aber deswegen auch komplizierter geworden. Dank flex und bison kann sie aber relativ leicht erweitert werden.
Jemand der sich noch besser mit Compilerbau auskennt, könnte die Fehlerbehandlung verbessern, daß nicht beim ersten Syntaxfehler die Sache beendet wird. der sich besser mit Compilerbau auskennt, könnte die Fehlerbehandlung verbessern.
Vorerst ist das höchste der gefühle, das nmpars -s das Debuging des bisonparsers anwirft. Dann seihet man, warum der Parser anderer Meinung ist.
Oft werden solche Testprogramme einfach weggeschmissen, oder versteckt. Ich bin der Meinung, daß es für den normalsterblichen Administator wichtig ist, seine Konfiguration ausgiebig zu testen. Insbesondere das mit Ip-Zugriffslisten will gut ausprobiert sein. Dazu soll das nmpars-Programm dienen.

Zuviel Debugging macht das ganze unübersichtlich. Deswegen soll man die Aspekte eingrenzen können:

Folgende Werte können zusammengeodert (auch zusammenaddieren für den Anfänger):

noch unklar

ypproc_all_2: Wozu braucht man diese ?
Es scheint u.a. der Datenbankhandle zurückgegeben zu werden. Wahrscheinlich gehört hier ein Dmap-Zeiger zurückgeliefert.

Selbstkritische Bemerkung

Durch die objektorientierte Reimplementierung von den Innereien mit C++ und die Nutzung eines mit bison und flex generierten Parsers sind manche Änderungen auf eine andere Sichtweise zurückzuführen.

Manche Änderungswut mag auch auf meinen Hang zum Kathedralenbau zurückzuführen sein, die heute bekanntlich nicht mehr zeitgemäß ist. Daher freue ich mich auf patches und Alternativvorschläge. Das ist ja das schöne an der GNU-Software: Wer es besser weiss, der mache.


Rudolf Weber Informatik und Netzwerkverein Ravensburg e.V