ist die Implementierung des Directoryservers von Mcntp. Ein Host, der News via Mcntp versenden möchte, muß genau einen Prozeß betreiben.
Nach dem Start von wird eine Konfigurationsdatei eingelesen, in der einige Parameter von definiert sind, wie z.B. die Reichweite der Ankündigungspakete oder welche Gruppen welche TTL erhalten. Das genaue Format dieser Datei ist weiter unten im Abschnitt 4.3.1 beschrieben.
Als nächstes wird ein TCP-Port via Bibliotheksfunktion _tcp_serv() geöffnet, der als Anlaufstelle für die Verbindungen von dient. Als Nummer des TCP-Ports wurde von der IANA (siehe 2.6) die Nummer 5418 mit dem Namen MCNTP offiziell zugewiesen.
Zusätzlich wird ein UDP-Port geöffnet, welcher dazu dient, die
Ankündigungspakete von anderen Directoryservern zu empfangen. Diese
Informationen werden momentan, im Gegensatz zu Abbildung
21 im Abschnitt 3.4.2 auf Seite
, noch nicht von
ausgewertet (siehe auch Abschnitt 7.1 auf
Seite
). Für den Betrieb auf einem zentralen
Newsserver innerhalb der Grenzen eines Providers ist dies aber nicht
weiter störend.
In der Hauptschleife wird geprüft, ob sich Aktivitäten auf dem TCP-Port abspielen (Verbindungswunsch oder Verbindungsabbau) und diese dann bearbeitet.
Für Aktivitäten auf dem Port gibt es drei Möglichkeiten, wie sie
in Abbildung 27 auf Seite
dargestellt sind. Wenn ein neuer Client eine Verbindung
anfordert, wird diese geöffnet und in die Liste der offenen Verbindungen
eingetragen.
Wenn der Client die Verbindung beendet, sei es, daß er sich ordentlich abmeldet (siehe auch Abschnitt 4.3.2) oder daß es zum Verbindungsabbruch kommt, wird die Verbindung wieder aus der Liste entfernt.
Ansonsten wird in der Liste der offenen Verbindungen geschaut, ob auf eine dieser Verbindungen reagiert werden muß. Dies kann zum einen der beschriebenen Verbindungsabbau sein, zum anderen aber auch eine Anfrage nach einer Multicastgruppe. Diese (neue) Gruppe wird ermittelt (mehr hierzu im nächsten Abschnitt), dem Client mitgeteilt und in der Liste vermerkt. Aus dieser Liste werden dann auch die Ankündingungspakete generiert.
Wenn keine Aktivitäten auf dem Port zu verzeichnen sind, wird
geprüft, ob die Wartezeit zwischen dem Versand der
Ankündigungspakete abgelaufen ist und im Bedarfsfall die Liste der
Gruppen verteilt. Die Wartezeit beträgt ca. eine Minute, um
den Datenverkehr gering zu halten.
Es könnte auch nach jeder Änderung in der Liste der Verbindungen ein
Ankündigungspaket generiert werden, aber dies würde in der Praxis
teilweise eine große Anzahl von Ankündigungspaketen in kurzer Zeit
generieren.