Sun 企業辯證機制使用指南

回叫

另一個可以使用 cookie 的地方是回叫。一個伺服器可以指定(使用者定義的)回叫,因此它會利用 rpc_gss_set_callback() 函數而得知上下文何時第一次被使用。回叫會在在為指定的程式及版本建立上下文之後,資料交換第一次使用上下文時被調用。

使用者定義的回叫常式有下列各種形式﹕

第二及第三個引數﹕deleggss_context 是 GSS-API 的資料類型,而且目前尚未被公開,因此回叫函數可以忽視它們。(簡而言之,deleg 是任何被指派的同層的身份,而 gss_context 則是 GSS-API 上下文的指標,如果程式想要在上下文之上執行 GSS-API 操作 - 也就是要測試接受條件的話。)前面我們已經談過 cookie 引數。

lock 引數是 rpc_gss_lock_t 結構的指標﹕

typedef struct {
		bool_t              locked;
		rpc_gss_rawcred_t   *raw_cred;
} rpc_gss_lock_t;
此參數會啟用一個伺服器以強迫實行一個作業階段的特定 QOP 及服務。範例 8-5 中所述的rpc_gss_rawcred_t 結構中包括 QOP 及服務。(一個伺服器不應該變更服務及 QOP 的數值)。當使用者定義的回叫被調用時,locked 欄位被設定為 FALSE。如果伺服器將 locked 設定為 TRUE,那麼只有 QOP 及服務數值符合rpc_gss_rawcred_t 結構中的 QOP 及服務數值符合的要求會被接受。

如需更詳細的資訊,請參見 rpc_gss_set_callback(3N) 線上援助頁。