diff options
Diffstat (limited to 'contrib/libpam/libpam/pam_delay.c')
-rw-r--r-- | contrib/libpam/libpam/pam_delay.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/contrib/libpam/libpam/pam_delay.c b/contrib/libpam/libpam/pam_delay.c index e6950e2a966bd..b414ecc4972d9 100644 --- a/contrib/libpam/libpam/pam_delay.c +++ b/contrib/libpam/libpam/pam_delay.c @@ -1,12 +1,11 @@ /* * pam_delay.c * - * Copyright (c) Andrew G. Morgan <morgan@linux.kernel.org> 1996-8 + * Copyright (c) Andrew G. Morgan <morgan@kernel.org> 1996-9 * All rights reserved. * - * $Id: pam_delay.c,v 1.5 1997/04/05 06:54:19 morgan Exp $ + * $Id: pam_delay.c,v 1.3 2001/01/22 06:07:28 agmorgan Exp $ * - * $Log: pam_delay.c,v $ */ /* @@ -94,13 +93,20 @@ void _pam_await_timer(pam_handle_t *pamh, int status) if (pamh->fail_delay.delay_fn_ptr) { union { const void *value; - void (*fn)(int, unsigned); + void (*fn)(int, unsigned, void *); } hack_fn_u; + void *appdata_ptr; + + if (pamh->pam_conversation) { + appdata_ptr = pamh->pam_conversation->appdata_ptr; + } else { + appdata_ptr = NULL; + } /* always call the applications delay function, even if the delay is zero - indicate status */ hack_fn_u.value = pamh->fail_delay.delay_fn_ptr; - hack_fn_u.fn(status, delay); + hack_fn_u.fn(status, delay, appdata_ptr); } else if (status != PAM_SUCCESS && pamh->fail_delay.set) { |