#include "kdc_locl.h"
#include "krb5_err.h"
+#include "krb5_locl.h"
#ifdef TIME_T_SIGNED
#if SIZEOF_TIME_T == 4
pac_attributes = pacreq.include_pac ? KRB5_PAC_WAS_REQUESTED : 0;
free_PA_PAC_REQUEST(&pacreq);
+ if (pac_attributes == 0 && context->flags & KRB5_CTX_F_ALWAYS_INCLUDE_PAC) {
+ pac_attributes = KRB5_PAC_WAS_GIVEN_IMPLICITLY;
+ }
return pac_attributes;
}
INIT_FLAG(context, flags, KRB5_CTX_F_CHECK_PAC, TRUE, "check_pac");
INIT_FLAG(context, flags, KRB5_CTX_F_ENFORCE_OK_AS_DELEGATE, FALSE, "enforce_ok_as_delegate");
INIT_FLAG(context, flags, KRB5_CTX_F_REPORT_CANONICAL_CLIENT_NAME, FALSE, "report_canonical_client_name");
+ INIT_FLAG(context, flags, KRB5_CTX_F_ALWAYS_INCLUDE_PAC, FALSE, "always_include_pac");
/* report_canonical_client_name implies check_pac */
if (context->flags & KRB5_CTX_F_REPORT_CANONICAL_CLIENT_NAME)
#define KRB5_CTX_F_FCACHE_STRICT_CHECKING 32
#define KRB5_CTX_F_ENFORCE_OK_AS_DELEGATE 64
#define KRB5_CTX_F_REPORT_CANONICAL_CLIENT_NAME 128
+#define KRB5_CTX_F_ALWAYS_INCLUDE_PAC 256
struct send_to_kdc *send_to_kdc;
#ifdef PKINIT
hx509_context hx509ctx;