Aller au contenu principal

9. CreatePermission

TURN prend en charge deux façons pour le client d'installer ou de rafraîchir des permissions sur le serveur. Cette section décrit une façon : la demande CreatePermission.

La demande CreatePermission peut être utilisée en conjonction avec le mécanisme Send de la section 10 ou avec le mécanisme de canal de la section 11.

9.1. Formation d'une demande CreatePermission

Un client souhaitant installer ou rafraîchir une ou plusieurs permissions peut envoyer une demande CreatePermission au serveur.

Lors de la formation d'une demande CreatePermission, le client doit inclure au moins un attribut XOR-PEER-ADDRESS et peut inclure plusieurs de ces attributs. La partie adresse IP de chaque attribut XOR-PEER-ADDRESS contient l'adresse IP pour laquelle une permission doit être installée ou rafraîchie. La partie port de chaque attribut XOR-PEER-ADDRESS sera ignorée et peut être n'importe quelle valeur arbitraire. Les différents attributs XOR-PEER-ADDRESS peuvent apparaître dans n'importe quel ordre.

9.2. Réception d'une demande CreatePermission

Lorsque le serveur reçoit une demande CreatePermission, il la traite conformément à la section 4 plus les règles spécifiques mentionnées ici.

Le message est vérifié pour sa validité. La demande CreatePermission doit contenir au moins un attribut XOR-PEER-ADDRESS et peut contenir plusieurs de ces attributs. Si un tel attribut n'existe pas, ou si l'un de ces attributs est invalide, alors une erreur 400 (Bad Request) est retournée. Si la demande est valide, mais que le serveur est incapable de satisfaire la demande en raison d'une limite de capacité ou similaire, alors une erreur 508 (Insufficient Capacity) est retournée.

Le serveur peut imposer des restrictions sur l'adresse IP autorisée dans l'attribut XOR-PEER-ADDRESS -- si une valeur n'est pas autorisée, le serveur rejette la demande avec une erreur 403 (Forbidden).

Si le message est valide et que le serveur est capable d'exécuter la demande, alors le serveur installe ou rafraîchit une permission pour l'adresse IP contenue dans chaque attribut XOR-PEER-ADDRESS comme décrit dans la section 8. La partie port de chaque attribut est ignorée et peut être n'importe quelle valeur arbitraire.

Le serveur répond ensuite avec une réponse de succès CreatePermission. Il n'y a pas d'attributs obligatoires dans la réponse de succès.

NOTE : Le serveur n'a pas besoin de faire quoi que ce soit de spécial pour implémenter l'idempotence des demandes CreatePermission sur UDP en utilisant « l'approche pile sans état ». Les demandes CreatePermission retransmises rafraîchiront simplement les permissions.

9.3. Réception d'une réponse CreatePermission

Si le client reçoit une réponse de succès CreatePermission valide, alors le client met à jour ses structures de données pour indiquer que les permissions ont été installées ou rafraîchies.