t_accept(3N) t_accept(3N)
NAME
taccept - Verbindungswunsch annehmen
SYNTAX
#include <sys/tiuser.h>
int taccept(int fd, int resfd, struct tcall *call);
BESCHREIBUNG
Diese Funktion wird von einem Transportbenutzer ausgeführt, um einen
Verbindungswunsch entgegenzunehmen. fd gibt den lokalen Transportend-
punkt an, auf dem der Verbindungswunsch angezeigt ist. resfd gibt den
lokalen Transportendpunkt an, auf dem die Verbindung eingerichtet wer-
den soll. call enthält Information, die von dem Transportanbieter
benötigt wird, um die Verbindung herzustellen. call zeigt auf eine
Struktur tcall, die folgende Felder besitzt:
struct netbuf addr;
struct netbuf opt;
struct netbuf udata;
int sequence;
addr ist die Adresse des Verbindungswunsches. opt zeigt alle proto-
kollspezifischen Parameter an, die mit der Verbindung zu tun haben.
udata zeigt auf alle Benutzerdaten, die an den Aufrufer zurückgegeben
werden sollen. sequence ist der Wert, der von tlisten zurückgeliefert
wird und den Verbindungswunsch auf dem Transportendpunkt fd eindeutig
identifiziert.
Ein Transportbenutzer kann eine Verbindung entweder auf dem gleichen
Transportendpunkt annehmen, auf dem die Verbindungsanfrage angekommen
ist, oder auf einem anderen lokalen Transportendpunkt. Wenn der glei-
che Endpunkt angegeben wird (d. h. resfd=fd), kann die Verbindung
akzeptiert werden, es sei denn, es stehen noch weitere Verbindungswün-
sche an fd an, die noch nicht bearbeitet wurden (mit taccept oder
tsnddis). In diesem Fall schlägt taccept fehl und setzt terrno auf
TBADF.
Wenn ein anderer Transportendpunkt spezifiziert ist (d. h. resfd!=fd),
muß der Endpunkt mit einer Protokolladresse verbunden werden und sich
im Zustand TIDLE befinden [siehe tgetstate(3N)], bevor das taccept
durchgeführt wird.
Bei beiden Fällen scheitert taccept und setzt terrno auf TLOOK,
falls es Anforderungen gibt (z. B. eine Anforderung zur Verbindungs-
einrichtung oder -auflösung), die auf diesem Endpunkt darauf warten,
empfangen zu werden.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
t_accept(3N) t_accept(3N)
Die Werte der Parameter, die durch opt spezifiziert werden, und die
Syntax dieser Werte sind protokollspezifisch. Das Argument udata
ermöglicht dem gerufenen Transportbenutzer, Benutzerdaten an den Auf-
rufer zu senden. Die Benutzerdatenmenge darf die Grenze nicht über-
schreiten, die vom Transportanbieter als Rückgabewert im connect-Feld
des info-Arguments von topen oder tgetinfo zurückgegeben wird. Falls
das len-Feld von udata Null ist, werden keine Daten zum Aufrufer
gesendet.
FEHLER
Im Fehlerfall wird terrno auf einen der folgenden Werte gesetzt:
TBADF Der angegebene Deskriptor verweist nicht auf einen
Transportendpunkt oder der Benutzer akzeptiert uner-
laubterweise eine Verbindung auf demselben Transport-
endpunkt, auf dem die Verbindungsanfrage hereinkam.
TOUTSTATE Die Funktion wurde auf dem Transportendpunkt, auf den
durch fd verwiesen wird, in der falschen Reihenfolge
ausgeführt, oder der Transportendpunkt, auf den durch
resfd verwiesen wird, befindet sich nicht im Zustand
TIDLE.
TACCES Der Benutzer hat keine Erlaubnis, eine Verbindung auf
dem antwortenden Transportendpunkt zu akzeptieren,
oder die angegebenen Optionen zu verwenden.
TBADOPT Die spezifizierten Optionen hatten ein falsches Format
oder enthielten ungültige Informationen.
TBADDATA Der Umfang an Benutzerdaten war nicht innerhalb der
vom Transportanbieter erlaubten Grenzen.
TBADSEQ Es wurde eine ungültige Sequenznummer angegeben.
TLOOK Es ist ein asynchrones Ereignis auf dem Transportend-
punkt aufgetreten, auf den fd verweist, und erfordert
sofortige Bearbeitung.
TNOTSUPPORT Diese Funktion wird von dem darunterliegenden Trans-
port nicht angeboten.
TSYSERR Während der Ausführung dieser Funktion ist ein System-
fehler aufgetreten.
DIAGNOSE
Bei einer erfolgreichen Ausführung wird 0 zurückgeliefert. Andernfalls
wird -1 zurückgeliefert und terrno wird gesetzt, um den Fehler anzu-
zeigen.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
t_accept(3N) t_accept(3N)
SIEHE AUCH
tconnect(3N), tgetstate(3N), tlisten(3N), topen(3N),
trcvconnect(3N).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98