Swipe-type scanners make it hard to get a reliably good scan on the
first try, so allow a number of retries before returning with a
failure.
---
 src/pam_fprint.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/pam_fprint.c b/src/pam_fprint.c
index 24fc104..b0f6eeb 100644
--- a/src/pam_fprint.c
+++ b/src/pam_fprint.c
@@ -163,7 +163,8 @@ static int do_identify(pam_handle_t *pamh, struct fp_dev 
*dev,
 
                
                if (fp_dev_supports_identification(dev)) {
-                   snprintf(msg, sizeof(msg), "Scan finger on %s", 
driver_name);
+                   snprintf(msg, sizeof(msg), "Scan finger on %s, %d %s left",
+                            driver_name, max_tries, max_tries==1 ? "attempt" : 
"attempts");
                    msg[sizeof(msg) - 1] = 0;
                    send_info_msg(pamh, msg);
                    r = fp_identify_finger(dev, gallery, &offset);
@@ -183,7 +184,11 @@ static int do_identify(pam_handle_t *pamh, struct fp_dev 
*dev,
                }
                switch (r) {
                case FP_VERIFY_NO_MATCH:
-                       return PAM_AUTH_ERR;
+                       if (max_tries==1)
+                         return PAM_AUTH_ERR;
+                       else {
+                         break;
+                       }
                case FP_VERIFY_MATCH:
                        return PAM_SUCCESS;
                case FP_VERIFY_RETRY:
-- 
1.7.1

_______________________________________________
fprint mailing list
[email protected]
http://lists.reactivated.net/mailman/listinfo/fprint

Reply via email to