connld(7) connld(7)
NAME
connld - Leitungsprozedur für eindeutige Stream-Verbindungen
BESCHREIBUNG
connld ist ein Modul unter STREAMS, das eindeutige Verbindungen zwi-
schen Server- und Client-Prozessen bietet. Es kann nur in ein Ende
einer Pipe unter STREAMS eingeklinkt werden [siehe streamio(7)], dem
hinterher ein Name aus dem Namensraum des Dateisystems zugeordnet wer-
den kann. Nachdem das Pipe-Ende einen Namen erhalten hat, wird intern
eine neue Pipe erzeugt, wenn ein Prozeß versucht, ein open(2) oder
creat(2) für den Dateisystem-Knoten auszuführen. Eine Dateikennzahl
für ein Ende der neuen Pipe wird in eine Nachricht gepackt, die zu der
Nachricht identisch ist, die für den ioctl-Aufruf ISENDFD erzeugt
wird [siehe streamio(7)]. Diese Nachricht wird dann an den Server-
Prozeß am anderen Ende übertragen. Der aufrufende Prozeß blockiert,
bis der Server antwortet.
Der Server antwortet auf die ISENDFD-Anforderung, indem er die Datei-
kennzahl durch eine IRECVFD-ioctl-Nachricht akzeptiert. Wenn dies
geschieht, dann wird die Dateikennzahl, die dem anderen Ende der neuen
Pipe zugeordnet ist, als die von open(2) oder creat(2) zurückgelie-
ferte Dateikennzahl an den aufrufenden Prozeß übertragen.
Antwortet der Server nicht auf die ISENDFD-Anforderung, dann arbeitet
der Stream, in den das Modul connld eingeklinkt worden ist, nur noch
in eine Richtung, da der Server solange nicht in der Lage ist, irgend-
welche Daten aus dem Stream zu lesen, solange nicht die IRECVFD-An-
forderung erfolgt ist. Wenn sich der Server-Prozeß vor dem Aufruf von
IRECVFD beendet, dann schlägt der open(2)- oder creat(2)-Systemaufruf
fehl und liefert das Ergebnis -1 an den aufrufenden Prozeß.
Wenn das Modul connld in eine Pipe eingeklinkt wird, dann werden Nach-
richten, die auf der Pipe hin- und herfließen, von connld ignoriert.
Bei Erfolgt liefert ein Öffnen von connld den Wert 0. Im Fehlerfall
wird errno auf einen der folgenden Werte gesetzt:
EINVAL Der Stream, in den connld eingeklinkt wird, ist keine Pipe
oder die Pipe besitzt keinen Schreib-Warteschlangen-Zeiger,
der auf eine Lese-Warteschlange eines Stream-Kopfs zeigt.
EINVAL Das andere Ende der Pipe, in die connld eingeklinkt wird,
ist unter einem Multiplexer angebunden.
EPIPE connld wird in eine Pipe eingeklinkt, deren anderes Ende
nicht länger existiert.
ENOMEM Es konnte keine interne Pipe erzeugt werden.
ENXIO Eine MHANGUP-Nachricht befindet sich beim Stream-Kopf der
Pipe, in die connld eingeklinkt wird.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
connld(7) connld(7)
EAGAIN Interne Datenstrukturen konnten nicht reserviert werden.
ENFILE Es konnte kein Eintrag in der Dateitabelle reserviert wer-
den.
SIEHE AUCH
streamio(7).
Leitfaden für Programmierer: STREAMS
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98