MCPcopy Create free account
hub / github.com/OpenPrinting/cups / cupsdLogGSSMessage

Function cupsdLogGSSMessage

scheduler/log.c:439–492  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

437 */
438
439int /* O - 1 on success, 0 on error */
440cupsdLogGSSMessage(
441 int level, /* I - Log level */
442 OM_uint32 major_status, /* I - Major GSSAPI status */
443 OM_uint32 minor_status, /* I - Minor GSSAPI status */
444 const char *message, /* I - printf-style message string */
445 ...) /* I - Additional args as needed */
446{
447 OM_uint32 err_major_status, /* Major status code for display */
448 err_minor_status; /* Minor status code for display */
449 OM_uint32 msg_ctx; /* Message context */
450 gss_buffer_desc major_status_string = GSS_C_EMPTY_BUFFER,
451 /* Major status message */
452 minor_status_string = GSS_C_EMPTY_BUFFER;
453 /* Minor status message */
454 int ret; /* Return value */
455 char buffer[8192]; /* Buffer for vsnprintf */
456
457
458 if (strchr(message, '%'))
459 {
460 /*
461 * Format the message string...
462 */
463
464 va_list ap; /* Pointer to arguments */
465
466 va_start(ap, message);
467 vsnprintf(buffer, sizeof(buffer), message, ap);
468 va_end(ap);
469
470 message = buffer;
471 }
472
473 msg_ctx = 0;
474 err_major_status = gss_display_status(&err_minor_status,
475 major_status,
476 GSS_C_GSS_CODE,
477 GSS_C_NO_OID,
478 &msg_ctx,
479 &major_status_string);
480
481 if (!GSS_ERROR(err_major_status))
482 gss_display_status(&err_minor_status, minor_status, GSS_C_MECH_CODE,
483 GSS_C_NULL_OID, &msg_ctx, &minor_status_string);
484
485 ret = cupsdLogMessage(level, "%s: %s, %s", message,
486 (char *)major_status_string.value,
487 (char *)minor_status_string.value);
488 gss_release_buffer(&err_minor_status, &major_status_string);
489 gss_release_buffer(&err_minor_status, &minor_status_string);
490
491 return (ret);
492}
493#endif /* HAVE_GSSAPI */
494
495

Callers 2

auth.cFile · 0.85
cupsdDefaultAuthTypeFunction · 0.85

Calls 1

cupsdLogMessageFunction · 0.85

Tested by

no test coverage detected