Les cookies peuvent également être utilisés dans les rappels. Un serveur peut spécifier un rappel (défini par l'utilisateur) de manière à connaître le moment de la première utilisation d'un contexte, au moyen de la fonction rpc_gss_set_callback(). Le rappel est effectué la première fois qu'un contexte est utilisé pour l'échange de données, après que le contexte ait été établi pour le programme et la version spécifiés.
Le sous-programme de rappel défini par l'utilisateur a la forme suivante :
Les deuxième et troisième arguments, deleg et gss_context, sont des types de données de l'API GSS qui ne sont pas actuellement exposés, donc la fonction de rappel n'a pas à en tenir compte. (En bref, deleg est l'identité d'un homologue délégué, tandis que gss_context est un pointeur de contexte d'API GSS, au cas où le programme souhaite effectuer des opérations d'API GSS sur le contexte -- c'est-à-dire tester les critères d'acceptation.) L'argument cookie a déjà été décrit.
L'argument lock est un pointeur de structure rpc_gss_lock_t :
typedef struct { bool_t locked; rpc_gss_rawcred_t *raw_cred; } rpc_gss_lock_t;Ce paramètre permet à un serveur de mettre en oeuvre une qualité de protection et un service particuliers pour la session. La qualité de protection et le service sont indiqués dans la structure rpc_gss_rawcred_t décrite dans Exemple 8-5. (Un serveur ne doit pas changer les valeurs de service et de qualité de protection.) Lorsque le rappel défini par l'utilisateur est effectué, le champ locked est réglé à FALSE. Si le serveur règle le champ locked à TRUE, seules les requêtes ayant des valeurs de qualité de protection et de service correspondant à celles de la structure rpc_gss_rawcred_t seront acceptées.
Pour de plus amples renseignements, consultez la page de manuel rpc_gss_set_callback(3N).