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. |