Nisserver mit mehreren Typen von Maps
Bemerkungen zur Implementierung und weitere Ideen
Zu den internen Strukturen:
Hier läuft die Suche zweistufig, erst die Domain, dann die Map.
Eine Hash-Tabelle (Domainname,Mapname) -> Map ist sicher schneller (fällt mir e ein, wo ich fertig bin)
Zur Adabas-Datenbankanbindung
Es ist durchaus denkbar, daß verschiedene Domains auch in verschiedenen SERVERDBs sind. Dies ist hier aber noch nicht eingebaut.
Die Klasse Adabasconnection müßte hierzu erweitert werden und eine Verwaltung für mehrere Instanzen gebaut werden.
Mehrere Maps greifen auf die selbe Relation zu, man denke nur an passwd.byname und passwd.byuid. In der Datenbank wird dis durch verschiedene Indices realisiert.
Zur rpc-Schnittstelle
Beim Neubau würde ich sie so generieren:
cp /usr/include/rpcsvc/yp.x .
rpcgen yp.x
rpcgen -Ss /usr/include/rpcsvc/yp.x > yp_server.c
Torsten Kukuk hat aber das yp.h aufgeräumt, auf den zweiten blick hat er
hauptsächlich die ifdef-Alternativen sortiert
Alle rpc generierten Dateien wurden verbessert.
Daher werden sie übernommen.
weitere Ideen
firstkey und nextkey - Methoden mit Parameter präfix erweitern, wo der erste
Satz zurückgeliefert wird, dessen key nicht mit dem Präfix beginnt.
Müssen die YP_??? in der Map stehen ?
YP_MASTER könnte ja auch in der Konfigurationsdatei stehen.
Eine Alternative für firstkey und nextkey wäre ein Iterator, der
auf in der Dmap-Schnittstelle.
Rudolf Weber Informatik und Netzwerkverein Ravensburg e.V