[Fingerforce-commits] [fprintd] 01/06: pam: Make max_tries and timeout arguments.
Didier Raboud
odyx at alioth.debian.org
Sun Sep 29 12:42:56 UTC 2013
This is an automated email from the git hooks/post-receive script.
odyx pushed a commit to branch master
in repository fprintd.
commit 9c99e5cd59fc942ea0d5f5d1263424eaf78c27b4
Author: Didier Raboud <odyx at debian.org>
Date: Mon May 14 17:29:56 2012 +0200
pam: Make max_tries and timeout arguments.
https://bugs.freedesktop.org/show_bug.cgi?id=49918
---
pam/pam_fprintd.c | 34 +++++++++++++++++++++++++++-------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/pam/pam_fprintd.c b/pam/pam_fprintd.c
index 52fce32..7e1f954 100644
--- a/pam/pam_fprintd.c
+++ b/pam/pam_fprintd.c
@@ -21,6 +21,7 @@
#include <config.h>
#include <stdio.h>
+#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
@@ -39,8 +40,11 @@
#include "fingerprint-strings.h"
-#define MAX_TRIES 3
-#define TIMEOUT 30
+#define DEFAULT_MAX_TRIES 3
+#define DEFAULT_TIMEOUT 30
+
+#define MAX_TRIES_MATCH "max-tries="
+#define TIMEOUT_MATCH "timeout="
#define D(pamh, ...) { \
if (debug) { \
@@ -53,6 +57,8 @@
static gboolean debug = FALSE;
+static guint max_tries = DEFAULT_MAX_TRIES;
+static guint timeout = DEFAULT_TIMEOUT;
static gboolean send_info_msg(pam_handle_t *pamh, const char *msg)
{
@@ -271,7 +277,7 @@ static int do_verify(GMainLoop *loop, pam_handle_t *pamh, DBusGProxy *dev, gbool
int ret;
data = g_new0 (verify_data, 1);
- data->max_tries = MAX_TRIES;
+ data->max_tries = max_tries;
data->pamh = pamh;
data->loop = loop;
@@ -304,7 +310,7 @@ static int do_verify(GMainLoop *loop, pam_handle_t *pamh, DBusGProxy *dev, gbool
GSource *source;
/* Set up the timeout on our non-default context */
- source = g_timeout_source_new_seconds (TIMEOUT);
+ source = g_timeout_source_new_seconds (timeout);
g_source_attach (source, g_main_loop_get_context (loop));
g_source_set_callback (source, verify_timeout_cb, data, NULL);
@@ -429,9 +435,23 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc,
return PAM_AUTHINFO_UNAVAIL;
for (i = 0; i < argc; i++) {
- if (argv[i] != NULL && g_str_equal (argv[i], "debug")) {
- g_message ("debug on");
- debug = TRUE;
+ if (argv[i] != NULL) {
+ if(g_str_equal (argv[i], "debug")) {
+ g_message ("debug on");
+ debug = TRUE;
+ }
+ else if (strncmp(argv[i], MAX_TRIES_MATCH, strlen (MAX_TRIES_MATCH)) == 0 && strlen(argv[i]) == strlen (MAX_TRIES_MATCH) + 1) {
+ max_tries = atoi (argv[i] + strlen (MAX_TRIES_MATCH));
+ if (max_tries < 1)
+ max_tries = DEFAULT_MAX_TRIES;
+ D(pamh, "max_tries specified as: %d", max_tries);
+ }
+ else if (strncmp(argv[i], TIMEOUT_MATCH, strlen (TIMEOUT_MATCH)) == 0 && strlen(argv[i]) <= strlen (TIMEOUT_MATCH) + 2) {
+ timeout = atoi (argv[i] + strlen (TIMEOUT_MATCH));
+ if (timeout < 10)
+ timeout = DEFAULT_TIMEOUT;
+ D(pamh, "timeout specified as: %d", timeout);
+ }
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/fingerforce/fprintd.git
More information about the Fingerforce-commits
mailing list