From 87ae9dbad3ede67e7b2944df689c2eb3052d0a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 28 Jan 2021 18:20:29 +0100 Subject: [PATCH] utils/verify: Terminate with EXIT_FAILURE when enrollment failed --- utils/verify.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/utils/verify.c b/utils/verify.c index fc0372b..d49fdf8 100644 --- a/utils/verify.c +++ b/utils/verify.c @@ -134,6 +134,7 @@ struct VerifyState GError *error; gboolean started; gboolean completed; + gboolean match; }; static void @@ -142,6 +143,8 @@ verify_result (GObject *object, const char *result, gboolean done, void *user_da struct VerifyState *verify_state = user_data; g_print ("Verify result: %s (%s)\n", result, done ? "done" : "not done"); + verify_state->match = g_str_equal (result, "verify-match"); + if (done != FALSE) verify_state->completed = TRUE; } @@ -195,7 +198,7 @@ proxy_signal_cb (GDBusProxy *proxy, } } -static void +static gboolean do_verify (FprintDBusDevice *dev) { g_autoptr(GError) error = NULL; @@ -243,6 +246,8 @@ do_verify (FprintDBusDevice *dev) g_print ("VerifyStop failed: %s\n", error->message); exit (1); } + + return verify_state.match; } static void @@ -270,6 +275,7 @@ main (int argc, char **argv) g_autoptr(GError) err = NULL; GOptionContext *context; const char *username = NULL; + gboolean match; setlocale (LC_ALL, ""); @@ -300,7 +306,7 @@ main (int argc, char **argv) dev = open_device (username); find_finger (dev, username); - do_verify (dev); + match = do_verify (dev); release_device (dev); - return 0; + return match ? EXIT_SUCCESS : EXIT_FAILURE; }