ebind-Subroutine

Zweck

Bindet einen Namen an einen Socket. Bindet außerdem ein Socket an die spezifische Sensitivitätsstufe (SL), die als Parameter übergeben wird.

Bibliothek

Standard-C-Bibliothek (libc.a)

Syntax

#include <sys/socket.h>
#include <sys/mac.h>
int ebind ( Socket, Name, NameLength, Label)
int Socket;
const struct sockaddr *Name;
socklen_t NameLength;
sec_labels_t *Label;

Beschreibung

Die Subroutine ebind ordnet einem nicht benannten Socket einen Parameter Name zu. Sockets, die von der Subroutine socket erstellt werden, sind nicht benannt. Sie werden nur durch ihre Adressfamilie identifiziert. Subroutinen, die Sockets verbinden, weisen entweder Namen zu oder verwenden nicht benannte Sockets.

Wenn ein Nullzeiger an den Parameter Bezeichnung übergeben wird, wird ein normaler Port mit mehreren Ebenen erstellt. Wenn jedoch ein gültiger Kennsatz an den Parameter Kennsatz übergeben wird, wird ein Port mit der angegebenen Sensitivitätsstufe (SL) erstellt. Das bedeutet, dass nur die eingehenden Verbindungen am angegebenen SL eine Verbindung herstellen können. Dies bedeutet auch, dass mehrere Sockets an denselben Port an verschiedenen SLs gebunden sein können. Es ist möglich, einen Port mit mehreren Ebenen sowie mehrere Ports mit bestimmten Ebenen zu erstellen. Wenn keine der spezifischen SLs mit dem eingehenden Paket übereinstimmt, ist der Paketport ein Standardport mit mehreren Ebenen.

Parameter

Element Beschreibung
Socket Gibt den Socketdeskriptor des zu bindenden Sockets an. Der Socketdeskriptor ist eine ganze Zahl,
Name Verweist auf eine Adressstruktur, die die Adresse angibt, an die der Socket gebunden werden soll Die Datei /usr/include/sys/socket.h definiert die Adressstruktur sockaddr . Die Struktur sockaddr enthält eine spezifische Kennung für das Adressformat und das Protokoll, die in der Subroutine socket bereitgestellt werden.
NameLength Gibt die Länge der Socket-Adressstruktur an.
Kennsatz Gibt das Sensitivity-Label an, das dem Socket zugeordnet ist.

Rückgabewerte

Element Beschreibung
Erfolgreich 0
Nicht erfolgreich -1

Fehlercodes

Die Subroutine ebind ist nicht erfolgreich, wenn einer der folgenden Fehler auftritt:

Wert Beschreibung
EACCES Die angeforderte Adresse ist geschützt und der aktuelle Benutzer hat keine Zugriffsberechtigung.
EADDRINUSE Die angegebene Adresse wird bereits verwendet.
EADDRNOTAVAIL Die angegebene Adresse ist auf der lokalen Maschine nicht verfügbar.
EAFNOSUPPORT Die angegebene Adresse ist keine gültige Adresse für die Adressfamilie des angegebenen Sockets.
EBADF Der Parameter Socket ist ungültig.
EDESTADDRREQ Das Argument Adresse ist ein Nullzeiger.
EFAULT Der Parameter Adresse befindet sich nicht in einem beschreibbaren Teil des Benutzeradressraums.
EINVAL Der Socket ist bereits an eine Adresse gebunden.
ENOBUF Nicht genügend Pufferspeicher verfügbar.
ENODEV Die angegebene Einheit ist nicht vorhanden.
ENOTSOCK (ENOTSOCK) Der Parameter Socket verweist auf eine Datei, nicht auf ein Socket.
EOPNOTSUPP Das vom Parameter Socket referenzierte Socket unterstützt keine Adressbindung.