const char **type,
const char **desktop,
const char **area,
+ const char **inhibit_what,
+ const char **inhibit_why,
bool *debug,
uint64_t *default_capability_bounding_set,
uint64_t *default_capability_ambient_set) {
sym_pam_syslog(pamh, LOG_WARNING, "Area name specified among PAM module parameters is not valid, ignoring: %s", p);
else if (area)
*area = p;
+ } else if ((p = startswith(argv[i], "inhibit="))) {
+ if (inhibit_what)
+ *inhibit_what = p;
+ } else if ((p = startswith(argv[i], "inhibit-why="))) {
+ if (inhibit_why)
+ *inhibit_why = p;
} else if (streq(argv[i], "debug")) {
if (debug)
pam_log_setup();
uint64_t default_capability_bounding_set = CAP_MASK_UNSET, default_capability_ambient_set = CAP_MASK_UNSET;
- const char *class_pam = NULL, *type_pam = NULL, *desktop_pam = NULL, *area_pam = NULL;
+ const char *class_pam = NULL, *type_pam = NULL, *desktop_pam = NULL, *area_pam = NULL, *inhibit_what = NULL, *inhibit_why = NULL;
bool debug = false;
if (parse_argv(pamh,
argc, argv,
&type_pam,
&desktop_pam,
&area_pam,
+ &inhibit_what,
+ &inhibit_why,
&debug,
&default_capability_bounding_set,
&default_capability_ambient_set) < 0)
/* type= */ NULL,
/* desktop= */ NULL,
/* area= */ NULL,
+ /* inhibit_what= */ NULL,
+ /* inhibit_why= */ NULL,
&debug,
/* default_capability_bounding_set= */ NULL,
/* default_capability_ambient_set= */ NULL) < 0)