Zum Hauptinhalt springen

9. CreatePermission

TURN unterstützt zwei Möglichkeiten für den Client, Berechtigungen auf dem Server zu installieren oder zu aktualisieren. Dieser Abschnitt beschreibt eine Möglichkeit: die CreatePermission-Anfrage.

Die CreatePermission-Anfrage kann in Verbindung mit dem Send-Mechanismus in Abschnitt 10 oder mit dem Kanalmechanismus in Abschnitt 11 verwendet werden.

9.1. Bilden einer CreatePermission-Anfrage

Ein Client, der eine oder mehrere Berechtigungen installieren oder aktualisieren möchte, kann eine CreatePermission-Anfrage an den Server senden.

Beim Bilden einer CreatePermission-Anfrage muss der Client mindestens ein XOR-PEER-ADDRESS-Attribut einschließen und kann mehr als ein solches Attribut einschließen. Der IP-Adressteil jedes XOR-PEER-ADDRESS-Attributs enthält die IP-Adresse, für die eine Berechtigung installiert oder aktualisiert werden soll. Der Portteil jedes XOR-PEER-ADDRESS-Attributs wird ignoriert und kann ein beliebiger Wert sein. Die verschiedenen XOR-PEER-ADDRESS-Attribute können in beliebiger Reihenfolge erscheinen.

9.2. Empfangen einer CreatePermission-Anfrage

Wenn der Server eine CreatePermission-Anfrage erhält, verarbeitet er sie gemäß Abschnitt 4 sowie den hier erwähnten spezifischen Regeln.

Die Nachricht wird auf Gültigkeit geprüft. Die CreatePermission-Anfrage muss mindestens ein XOR-PEER-ADDRESS-Attribut enthalten und kann mehrere solcher Attribute enthalten. Wenn kein solches Attribut existiert oder wenn eines dieser Attribute ungültig ist, wird ein 400-Fehler (Bad Request) zurückgegeben. Wenn die Anfrage gültig ist, der Server jedoch aufgrund einer Kapazitätsbeschränkung oder ähnlichem nicht in der Lage ist, die Anfrage zu erfüllen, wird ein 508-Fehler (Insufficient Capacity) zurückgegeben.

Der Server kann Einschränkungen für die im XOR-PEER-ADDRESS-Attribut zulässige IP-Adresse auferlegen -- wenn ein Wert nicht zulässig ist, lehnt der Server die Anfrage mit einem 403-Fehler (Forbidden) ab.

Wenn die Nachricht gültig ist und der Server in der Lage ist, die Anfrage auszuführen, installiert oder aktualisiert der Server eine Berechtigung für die in jedem XOR-PEER-ADDRESS-Attribut enthaltene IP-Adresse, wie in Abschnitt 8 beschrieben. Der Portteil jedes Attributs wird ignoriert und kann ein beliebiger Wert sein.

Der Server antwortet dann mit einer CreatePermission-Erfolgsantwort. Es gibt keine obligatorischen Attribute in der Erfolgsantwort.

HINWEIS: Der Server muss nichts Besonderes tun, um die Idempotenz von CreatePermission-Anfragen über UDP mit dem „zustandslosen Stack-Ansatz" zu implementieren. Erneut übertragene CreatePermission-Anfragen aktualisieren einfach die Berechtigungen.

9.3. Empfangen einer CreatePermission-Antwort

Wenn der Client eine gültige CreatePermission-Erfolgsantwort erhält, aktualisiert der Client seine Datenstrukturen, um anzuzeigen, dass die Berechtigungen installiert oder aktualisiert wurden.