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.