t_rcvconnect(3N) t_rcvconnect(3N)
NAME
trcvconnect - Bestätigung einer Verbindungsanforderung empfangen
SYNTAX
#include <sys/tiuser.h>
int trcvconnect(int fd, struct tcall *call);
BESCHREIBUNG
Mit dieser Funktion kann der Benutzer des Transportanbieters den Sta-
tus einer zuvor abgeschickten Verbindungsanforderung ermitteln. Diese
Funktion wird zusammen mit tconnect verwendet, um eine Verbindung im
asynchronen Modus einzurichten. Bei erfolgreicher Durchführung dieser
Funktion ist die Verbindung eingerichtet.
fd kennzeichnet den lokalen Transportendpunkt der Verbindung und call
verweist auf Information über die gerade eingerichtete Verbindung.
call verweist auf eine Struktur tcall, die folgende Elemente besitzt:
struct netbuf addr;
struct netbuf opt;
struct netbuf udata;
int sequence;
addr enthält die zurückgelieferte Protokolladresse, die dem Transport-
endpunkt des antwortenden Prozesses entspricht. opt enthält alle pro-
tokollspezifischen Informationen, die mit der Verbindung zusammenhän-
gen. udata verweist auf optionale Benutzerdaten, die vom Ziel-Trans-
portbenutzer während der Verbindungseinrichtung zurückgesendet werden
können. sequence hat für diese Funktion keine Bedeutung.
Das Feld maxlen jedes Arguments muß vor dem Aufruf der Funktion
gesetzt werden, um jeweils die maximale Puffergröße festzulegen. call
hingegen kann NULL sein, in welchem Fall von trcvconnect keine Infor-
mation an den Benutzer zurückgeliefert wird. trcvconnect arbeitet
standardmäßig im synchronen Modus und es wird darauf gewartet, bis die
Verbindung eingerichtet ist. Bei der Rückkehr enthalten die Felder
addr, opt und udata die Werte, die für die gerade eingerichtete Ver-
bindung gelten.
Falls ONDELAY oder ONONBLOCK gesetzt ist (mittels topen oder
fcntl), wird trcvconnect im asynchronen Modus ausgeführt fragt ledig-
lich ab (Polling), ob Verbindungsbestätigungen überprüfen. Wenn keine
Verbindungsbestätigungen vorhanden sind, schlägt trcvconnect fehl und
kehrt sofort zurück, ohne auf die Einrichtung der Verbindung zu warten
(siehe TNODATA unten). trcvconnect muß zu einem späteren Zeitpunkt
nochmals durchgeführt werden, um die Verbindungsphase zu beenden, und
um die Information zu bekommen, die in call zurückgeliefert wird.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
t_rcvconnect(3N) t_rcvconnect(3N)
FEHLER
Im Fehlerfall wird terrno auf einen der folgenden Werte gesetzt:
TBADF Der angegebene Dateideskriptor verweist nicht auf
einen Transportendpunkt.
TBUFOVFLW Die Anzahl Bytes, die für ein ankommendes Argument
reserviert wurden, reichen nicht aus, um den Wert des
Arguments zu speichern. Die Information über die Ver-
bindung, die in call zurückgegeben werden soll, wird
gelöscht. Der Zustand des Transportanbieters wird aus
der Sicht des Benutzers in den Zustand DATAXFER
gebracht.
TNODATA ONDELAY oder ONONBLOCK wurde gesetzt, aber es ist
noch keine Verbindungsbestätigung angekommen.
TLOOK Auf diesem Transportendpunkt ist ein asynchrones
Ereignis aufgetreten, das sofortige Bearbeitung erfor-
dert.
TNOTSUPPORT Diese Funktion wird von dem darunterliegenden Trans-
portanbieter nicht angeboten.
TSYSERR Während der Ausführung dieser Funktion ist ein System-
fehler aufgetreten.
DIAGNOSE
trcvconnect liefert im Erfolgsfall 0 zurück. Im Fehlerfall wird -1
zurückgegeben und terrno gesetzt, um den Fehler anzuzeigen.
SIEHE AUCH
taccept(3N), tbind(3N), tconnect(3N), tlisten(3N), topen(3N).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98