#endif
;
-void k5_set_error_fl(struct errinfo *ep, long code, const char *file, int line,
- const char *fmt, ...)
-#if !defined(__cplusplus) && (__GNUC__ > 2)
- __attribute__((__format__(__printf__, 5, 6)))
-#endif
- ;
-
-void k5_vset_error_fl(struct errinfo *ep, long code, const char *file,
- int line, const char *fmt, va_list args)
-#if !defined(__cplusplus) && (__GNUC__ > 2)
- __attribute__((__format__(__printf__, 5, 0)))
-#endif
- ;
-
const char *k5_get_error(struct errinfo *ep, long code);
void k5_free_error(struct errinfo *ep, const char *msg);
void k5_clear_error(struct errinfo *ep);
void k5_set_error_info_callout_fn(const char *(KRB5_CALLCONV *f)(long));
-#ifdef DEBUG_ERROR_LOCATIONS
-#define k5_set_error(ep, code, ...) \
- k5_set_error_fl(ep, code, __FILE__, __LINE__, __VA_ARGS__)
-#endif
-
#endif /* K5_ERR_H */
void k5_change_error_message_code(krb5_context ctx, krb5_error_code oldcode,
krb5_error_code newcode);
-#ifdef DEBUG_ERROR_LOCATIONS
-#define krb5_set_error_message(ctx, code, ...) \
- krb5_set_error_message_fl(ctx, code, __FILE__, __LINE__, __VA_ARGS__)
-#endif
-void KRB5_CALLCONV_C
-krb5_set_error_message_fl(krb5_context ctx, krb5_error_code code,
- const char *file, int line, const char *fmt, ...)
-#ifdef __GNUC__
- __attribute__((__format__(printf,5,6)))
-#endif
- ;
-
#endif /* _KRB5_INT_H */
#endif
#endif
-#undef krb5_set_error_message
void KRB5_CALLCONV_C
krb5_set_error_message(krb5_context ctx, krb5_error_code code,
const char *fmt, ...)
va_end(args);
}
-void KRB5_CALLCONV_C
-krb5_set_error_message_fl(krb5_context ctx, krb5_error_code code,
- const char *file, int line, const char *fmt, ...)
-{
- va_list args;
-
- if (ctx == NULL)
- return;
- va_start(args, fmt);
-#ifdef DEBUG
- if (ERROR_MESSAGE_DEBUG()) {
- fprintf(stderr,
- "krb5_set_error_message(ctx=%p/err=%p, code=%ld, ...)\n",
- ctx, &ctx->err, (long)code);
- }
-#endif
- k5_vset_error_fl(&ctx->err, code, file, line, fmt, args);
-#ifdef DEBUG
- if (ERROR_MESSAGE_DEBUG())
- fprintf(stderr, "->%s\n", ctx->err.msg);
-#endif
- va_end(args);
-}
-
void KRB5_CALLCONV
krb5_vset_error_message(krb5_context ctx, krb5_error_code code,
const char *fmt, va_list args)
krb5_set_default_tgs_enctypes
krb5_set_default_tgs_ktypes
krb5_set_error_message
-krb5_set_error_message_fl
krb5_set_password
krb5_set_password_using_ccache
krb5_set_principal_realm
#define lock() k5_mutex_lock(&krb5int_error_info_support_mutex)
#define unlock() k5_mutex_unlock(&krb5int_error_info_support_mutex)
-#undef k5_set_error
void
k5_set_error(struct errinfo *ep, long code, const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
- k5_vset_error_fl(ep, code, NULL, 0, fmt, args);
- va_end(args);
-}
-
-void
-k5_set_error_fl(struct errinfo *ep, long code, const char *file, int line,
- const char *fmt, ...)
-{
- va_list args;
-
- va_start(args, fmt);
- k5_vset_error_fl(ep, code, file, line, fmt, args);
+ k5_vset_error(ep, code, fmt, args);
va_end(args);
}
void
k5_vset_error(struct errinfo *ep, long code, const char *fmt, va_list args)
-{
- k5_vset_error_fl(ep, code, NULL, 0, fmt, args);
-}
-
-void
-k5_vset_error_fl(struct errinfo *ep, long code, const char *file, int line,
- const char *fmt, va_list args)
{
char *str, *slash;
if (vasprintf(&str, fmt, args) < 0)
return;
ep->msg = str;
-
- if (line) {
- /* Try to add file and line suffix. */
- slash = strrchr(file, '/');
- if (slash)
- file = slash + 1;
- if (asprintf(&str, "%s (%s: %d)", ep->msg, file, line) > 0) {
- free(ep->msg);
- ep->msg = str;
- }
- }
}
static inline const char *
k5_free_buf
k5_set_error
k5_vset_error
-k5_set_error_fl
-k5_vset_error_fl
k5_get_error
k5_free_error
k5_clear_error