Добрый день! Модифицирую libcurl для constrained delegation(krb5). Всё бы ничего, но каждый вызов curl приходится заново получать все токены. Для создания secure context(получение TGS тикета) вызываю метод gss_init_secure_context. Что делать в случае, когда контекст уже был проинициализирован ранее, можно его как-то использовать повторно? Пробовал сохранять initiator_context и output_token, но обойтись без вызова gss_init_secure_context не могу, ибо не работает (со старыми initiator_context, output_token). Что я упускаю?
OM_uint32 Curl_gss_init_sec_context_kcd(struct SessionHandle *data,
OM_uint32* minor, gss_ctx_id_t *initiator_context,
gss_name_t target_server_spn_unused, gss_OID mech_unused,
gss_channel_bindings_t input_chan_bindings, gss_buffer_t input_token,
gss_buffer_t output_token, const bool mutual_auth,
OM_uint32 *ret_flags)
{
.../* много кода*/
major = gss_init_sec_context (minor, delegated_cred_handle,
initiator_context, target, &mech_krb5,
GSS_C_REPLAY_FLAG | GSS_C_SEQUENCE_FLAG,
GSS_C_INDEFINITE, input_chan_bindings,
GSS_C_NO_BUFFER/*input_token*/,
NULL, output_token, ret_flags, &time_rec);