Commit graph

87 commits

Author SHA1 Message Date
Bastien Nocera
0c76397a6e loop: Use signed type for fp_get_pollfds() retval
This will be a warning with slightly older versions of libfprint, but at
least it would catch errors.
2018-06-26 15:19:45 +02:00
Bastien Nocera
31b985f547 device: Fix crash on exit
Fix a possible crash when an fprintd client disappears. If the client
requested for the device to be released, then, without waiting for the
reply of that release, disappeared from the bus, we would try to close
it a second time, accessing a function pointer that didn't exist
anymore.

See https://bugzilla.redhat.com/show_bug.cgi?id=1515720
2018-05-31 12:02:31 +02:00
Bastien Nocera
661684b1f5 main: Turn messages in debug messages
Rather than filling the logs with mostly useless messages, print those
as debug.
2018-05-30 19:59:07 +02:00
Bastien Nocera
2322244c5a build: Add a log domain for fprintd debug messages 2018-05-30 19:58:20 +02:00
Bastien Nocera
8e0c030f62 main: Split off events loop handling into a separate file
To make it easier to use as an example.
2018-05-25 16:06:54 +02:00
Bastien Nocera
4234902671 main: Clean up main loop integration
Remove do/while loops in favour of for loops, and downgrade some
warnings and messages statements to debug.
2018-05-25 15:45:02 +02:00
Christian Kellner
e55ad52ded device: Fix warning when open the device fails
The error should be initialised to NULL before being set.
2017-02-16 15:51:22 +01:00
Christian Kellner
0d28678118 device: dbus_g_method_return_error() does not free the error
So free the errors after sending them on the bus.

https://bugs.freedesktop.org/show_bug.cgi?id=99838
2017-02-16 15:44:12 +01:00
Christian Kellner
3d2d73d615 main: call g_type_init only if using an old glib
Calling g_type_init() is not needed anymore and deprecated since
glib version 2.36.

https://bugs.freedesktop.org/show_bug.cgi?id=99812
2017-02-14 17:14:20 +01:00
Christian Kellner
8fa3dcd5cd main: Plug tiny memory leak
dbus_g_method_get_sender() returns an allocated-string which we need to
free. This is handled properly in the rest of the codebase.

https://bugs.freedesktop.org/show_bug.cgi?id=99811
2017-02-14 14:29:54 +01:00
Bastien Nocera
b3c1ed0d2a main: Don't hardcode fingerprint storage directory
It used to be hard-coded to /var/lib/fprint, but is now set to
$(localstatedir)/lib/fprint/.
2017-01-05 12:50:06 +01:00
Bastien Nocera
e437d20108 device: Don't call fp_async_dev_close() with NULL device
In some cases, the priv->dev is already freed and NULL, so ensure
that we don't try to close NULL devices and crash.
2015-10-14 12:12:39 +02:00
Bastien Nocera
4edc17ac99 manager: Fix sorting in GetDevices() output
Sort the devices by ID for the GetDevices() output.
2015-02-03 17:07:15 +01:00
Colin Walters
f94c8727d2 main: Don't log about normal operation
Administrators don't need to see this stuff on every boot.  The system
bus itself already logs this anyways (which is itself a bit too
chatty).

https://bugs.freedesktop.org/show_bug.cgi?id=71889
2014-04-25 11:28:20 +02:00
Colin Walters
4f9256c033 manager: Don't log when we're exiting
This happens on hardware without fingerprint readers on every boot; we
don't need to log anything about it, it's totally normal.

This patch is part of an initiative to reduce logging spew in GNOME
so that actual errors and important messages are more visible.

https://bugs.freedesktop.org/show_bug.cgi?id=71889
2014-04-25 11:28:20 +02:00
Bastien Nocera
0aaff3a6c6 device: Use non-deprecated PolKit call 2012-11-17 09:10:35 +01:00
Ray Strode
9577b6db03 main: request name unconditionally at startup
the dbus activation machinery depends on daemons taking a name on
the bus to complete activation without timeouts.

fprintd fails prematurely if there is USB bus (as found in some
virtual machine setups).

This commit moves the bus-name-acquisition code to happen before
the fail-from-no-usb-bus code to keep callers from timing out
when activating fprintd.

https://bugs.freedesktop.org/show_bug.cgi?id=57025
2012-11-13 17:17:21 +01:00
Bastien Nocera
2d11e76cb7 daemon: Use GDBus to monitor clients
Instead of the custom egg code.
2011-04-18 17:55:13 +01:00
Bastien Nocera
c3de292486 daemon: Fix warning about unused variable
By unref'ing the manager object before we exit.
2011-03-30 16:43:10 +01:00
Bastien Nocera
1e5c78e8d0 Remove unused variable 2011-02-22 18:27:35 +00:00
Bastien Nocera
731b22d368 0.2.0
Fix a missing brace in main.c, fix distchecking.
2010-08-19 16:01:23 +01:00
Bastien Nocera
7872479415 Change g_errors to g_warnings
So as to avoid aborts when D-Bus isn't available.

https://bugzilla.redhat.com/show_bug.cgi?id=549484
2010-08-17 15:34:20 +01:00
Matthias Clasen
24fefbe332 Port to PolicyKit 1.0
See https://bugzilla.redhat.com/show_bug.cgi?id=498368
and
https://fedoraproject.org/wiki/Features/PolicyKitOne
2010-08-16 19:33:01 +01:00
Bastien Nocera
4ea1c48f9f Detect when a device is disconnected
Pretty hacky way to detect whether the device we're handling has
been disconnected during a verify or enrollment. This should allow
us to avoid users having to wait when somebody pulls the plug.
2009-01-27 16:45:47 -03:00
Bastien Nocera
d93b272f06 Install interfaces files
Apparently helps developers who want to read the interfaces
by hand, rather than using the API docs. Mentioned by Matthias in
his fprintd package review:
https://bugzilla.redhat.com/show_bug.cgi?id=469955#c9
2008-12-10 00:54:27 +00:00
Bastien Nocera
6a480f409d Stop extra signals from being emitted
Some devices keep sending us signals when an enrollment or
verification finished. Ignore all those signals, we hate them.
2008-12-04 13:23:51 +00:00
Bastien Nocera
c1dc3f1394 Fix fprintd exiting after a device goes unused
Simple logic error that caused fprintd to exit when a device
was used then unused.
2008-12-04 13:23:50 +00:00
Bastien Nocera
69e987b335 Fix return value for GetDefaultDevice
Tell the front-end there's no devices available when there isn't
any, instead of erroring out.
2008-12-04 13:23:50 +00:00
Bastien Nocera
64e415aaac Fix memleak on VerifyStart
Clean up the data pass to the async verification and identification
functions ourselves.
2008-11-24 17:20:46 +00:00
Bastien Nocera
7b06c4b7f3 Review possible errors and document them
Review all the possible errors and document them for each function.
2008-11-24 17:20:46 +00:00
Bastien Nocera
1abf51afa4 Don't crash the server if there's no devices
Big ninny just crashed because there's no fingerprint readers. Hoo,
hoo. My eyes are bleeding.
2008-11-24 17:20:46 +00:00
Bastien Nocera
9743d9d2a0 Register errors with D-Bus
So we get errors like:
net.reactivated.Fprint.Error.DiscoverPrints
instead of:
org.freedesktop.DBus.GLib.UnmappedError.FprintdErrorQuark.Code2
2008-11-24 17:20:46 +00:00
Bastien Nocera
af42ec70f3 Fix possible warning when timeout is enabled
We'd get a warning when the first device starts being used, but
we don't use --no-timeout.
2008-11-22 13:01:16 +00:00
Bastien Nocera
c9fdeb47aa Use D-Bus properties instead of GetProperties
- Use D-Bus native properties instead of a GetProperties call.
- Fix a number of front-ends by registering the right signals and
marshallers following the "done" signal argument addition
- Fix VerifyStart call in the pam module
2008-11-22 13:00:48 +00:00
Bastien Nocera
f1f2ae35f8 Fix "--no-timeout" argument
Fix logic error in the manager code causing it to exit when no
devices are in use even when --no-timeout is passed.
2008-11-22 13:00:47 +00:00
Bastien Nocera
dfa539a1f8 Add documentation
Documentation FTW!
2008-11-21 18:15:51 +00:00
Bastien Nocera
3cd0a7aeaf First pass at adding API docs through gtk-doc
Required a bit of mangling.
2008-11-21 18:15:51 +00:00
Bastien Nocera
26aab5dc28 Add a done argument to result signals
For verify and enroll, add a done argument so that front-end
know easily when they should be closing the device.
2008-11-21 18:15:51 +00:00
Bastien Nocera
874d8164b4 Add ScanType and NumberEnrollStages properties
Export the type of scan the device performs, and, when the device
is claimed, the number of enrollment stages.
2008-11-21 18:15:50 +00:00
Bastien Nocera
f7186c7ff0 Remove all uses of enums in the API
The clients aren't supposed to know the magic numbers for enums,
so use strings instead.
2008-11-21 18:15:50 +00:00
Bastien Nocera
e207203b44 Add GetDefaultDevice
Gives you the first device listed in GetDevices.
2008-11-21 18:15:21 +00:00
Bastien Nocera
1e43720c15 Remove use of finger number in the API
Use well-defined strings instead of numbers to pass around
specific fingers in the public API.
2008-11-21 18:15:21 +00:00
Bastien Nocera
ea4114b976 Make GetProperties async
as the rest of our functions.
2008-11-21 18:15:21 +00:00
Bastien Nocera
924e08d2e8 Add device name property
Add GetProperties method, with a single "Name" properties into
the hashtable.
Use the device name property in the PAM module, and in the list test.
2008-11-21 18:15:21 +00:00
Bastien Nocera
69c131f723 Add gross hack to allow root to verify users
This is a gross hack for PAM sessions to work as expected. root
is allowed to verify any users. If you want to allow any other
actions for root, you'll need to go through normal PolicyKit
procedures.

This should fix fingerprint authentication not working in GDM, or
on the console.
2008-11-21 18:14:09 +00:00
Bastien Nocera
31a8e2c61d Fix distcheck
And add a TODO item
2008-11-21 18:14:09 +00:00
Bastien Nocera
f93d8cbce2 Clean up device when the client disconnects
Track clients connected to each device using EggDbusMonitor.
When there are no more clients connected to the device, release it.

When no devices are used anymore, set up a timeout to exit within
30 seconds.
2008-11-03 22:56:12 +00:00
Bastien Nocera
b0f2060628 Exit when no devices are in use
When no actions are happening on any of the devices, make the
daemon exit after 30 seconds.
2008-11-03 22:56:12 +00:00
Bastien Nocera
e29806cd88 Add an action property
Add an action property and notify listeners when the action changes.
2008-11-03 22:56:12 +00:00
Bastien Nocera
f43ea8f095 Add an enrollment action
Return an error if an enrollment is already in progress.
2008-11-03 22:56:12 +00:00