Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

t_getprotaddr() - Protokolladressen abfragen

&pagelevel(4)&pagelevel

#include <xti.h>

int t_getprotaddr(int fd, struct t_bind *boundaddr, struct t_bind *peeraddr);

Beschreibung

Die Funktion getprotaddr() liefert die lokale und die entfernte Protokolladresse zurück, die dem Transportendpunkt fd aktuell zugeordnet sind. Die Parameter boundaddr und peeraddr zeigen auf Objekte vom Typ struct t_bind.

Die Struktur t_bind ist in <xti.h> wie folgt deklariert:

struct t_bind {
   struct netbuf addr;
   unsigned qlen;
};

Vor Aufruf von t_getprotaddr() spezifiziert der Benutzer in boundaddr->maxlen und peeraddr->maxlen die maximale Größe der Adresspuffer. Außerdem spezifiziert der Benutzer mit boundaddr->addr.buf und peeraddr->addr.buf jeweils einen Zeiger auf den Puffer, in dem t_getprotaddr() die betreffende Adresse zurückliefern soll.

Nach Ausführung von t_getprotaddr() zeigt boundaddr->addr.buf auf die Adresse (sofern vorhanden), die dem Transportendpunkt fd zugeordnet ist. boundaddr->addr.len enthält die Länge dieser Adresse.

Falls sich der Transportendpunkt fd im Zustand T_UNBND befindet, liefert t_getprotaddr() in der Komponente boundaddr->addr.len den Wert 0 zurück.

peeraddr->addr.buf zeigt nach Ausführung von t_getprotaddr() auf die Adresse des Kommunikationspartners (sofern vorhanden) von fdpeeraddr->addr.len enthält die Länge dieser Adresse. Falls sich der Transportendpunkt fd nicht im Zustand T_DATAXFER befindet, liefert t_getprotaddr() in der Komponente peeraddr->addr.len den Wert 0 zurück.

Returnwert

0:

Bei Erfolg.

-1:

Bei Fehler. t_ errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

TBADF

Der angegebene Dateideskriptor verweist nicht auf einen Transportendpunkt.

TBUFOVFLW

Die Anzahl der Bytes, die für einen Ergebnisparameter (mit maxlen) reserviert wurden, ist größer als 0, aber nicht ausreichend, um den Wert dieses Parameters zu speichern.

TPROTO

Dieser Fehler zeigt an, dass ein Kommunikationsproblem zwischen XTI und dem Transportsystem entdeckt wurde, für das es keine andere passende Fehlerbeschreibung gibt.

TSYSERR

Während der Ausführung dieser Funktion ist ein Systemfehler aufgetreten.

Siehe auch

t_bind()