Commit graph

32 commits

Author SHA1 Message Date
Marco Trevisan (Treviño)
b624f8c8c7 manager: Do not use unnecessary volatile qualifier on GQuark
As per new GLib in CI image fprintd doesn't build anymore, since
g_once_init_enter now warns about using a volatile value, as this has
never been supposed to be the case, despite its signature [1].

Related to: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719

[1] https://gitlab.gnome.org/GNOME/glib/-/issues/600
2020-12-19 22:34:12 +01:00
Marco Trevisan (Treviño)
18392cba54 manager: Export the object manager in /net/reactivated/Fprint
Given we're going to use an object manager it can just stay at the root
of the project, while it will be just used to manage the devices
2020-12-11 15:30:26 +01:00
Marco Trevisan (Treviño)
f73429f062 fprintd: Reindent the source code following uncrustify rules 2020-12-07 18:41:45 +01:00
Benjamin Berg
9c842e2c2f manager: Fix leak of FprintDevice reference
When adding a device a reference was leaked.
2020-11-25 19:09:02 +01:00
Benjamin Berg
08fb209aed manager: Fix unexport of removed devices
The correct way to unexport the object again is to unexported it on the
manager rather than on the interface skeleton. This fixes notifications
about device removal on DBus.
2020-11-25 19:08:20 +01:00
Marco Trevisan (Treviño)
4e707f0d31 manager: Use GEnum to register DBus errors from FprintError
Given that mk_genenum already parses FprintError, add the nick metadata
to the errors so that it matches the wanted DBus error and automatically
generate the errors list.

In this way we'll have to only touch one definition to get everything
updated
2020-11-10 14:45:59 +01:00
Marco Trevisan (Treviño)
30474a6546 manager: Add GDBus object manager
This is not used right now in all its full possibilities, but will make
devices hotplug support easier to implement and handle at client-side
level.

As per this we can stop doing the manual tracking of the devices.
2020-11-10 14:45:59 +01:00
Marco Trevisan (Treviño)
93bad82540 fprintd: Use GDBus codegen based implementation
Fprintd is dependent on the deprecated dbus-glib, also this doesn't provide
various features we can take advantage of, like the ones for async
authentication mechanism.

So, remove all the dbus-glib dependencies and simplify the code, but without
any further refactor, and keeping everything as it used to work, while this
will give room for further improvements in subsequent commits.

Internally, we just use dbus-codegen to generate the skeletons, and we
use the generated FprintdDBusManager with composition, while we
implement the device skeleton interface in FprintDevice, so that we
don't have to use it as a proxy, and keep being closer to what it used
to be with dbus-glib.

Fixes: #61
2020-11-10 14:45:59 +01:00
Marco Trevisan (Treviño)
52e12459df main: Improve comments on fprint manager creation
Explain why the manager creation is async better in both in the main file
and in the manager itself
2020-02-14 16:01:01 +01:00
Marco Trevisan (Treviño)
e25544a8f0 manager: Remove unused path variable 2020-02-14 15:55:09 +01:00
Marco Trevisan (Treviño)
130d6cdb63 main: Move fprintd_dbus_conn declaration to main.c
There's no need to declare it as extern in the header as it is already
declared in the source files where it's used.

Fixes:
../src/device.c:51:25: error: redundant redeclaration of ‘fprintd_dbus_conn’ [-Werror=redundant-decls]
  51 | extern DBusGConnection *fprintd_dbus_conn;
     |                         ^~~~~~~~~~~~~~~~~
In file included from ../src/device.c:34:
../src/fprintd.h:29:25: note: previous declaration of ‘fprintd_dbus_conn’ was here
  29 | extern DBusGConnection *fprintd_dbus_conn;
     |                         ^~~~~~~~~~~~~~~~~
2020-02-05 15:25:35 +01:00
Marco Trevisan (Treviño)
cc4bac3410 main: Use G_DECLARE_FINAL_TYPE to define objet 2020-02-04 14:19:41 +01:00
Bastien Nocera
0d407db171 manager: Fix typo in comment 2020-01-14 14:00:56 +01:00
Bastien Nocera
f2d6921b74 manager: Replace deprecated g_type_class_add_private() 2020-01-14 14:00:56 +01:00
Benjamin Berg
d7821aa790 Initial port to libfprint2 2019-12-03 17:08:03 +01: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
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
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
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
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
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
e207203b44 Add GetDefaultDevice
Gives you the first device listed in GetDevices.
2008-11-21 18:15:21 +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
039c988f4b Fix warning on startup
When there are no errors on startup, we'd get a warning
as we were copying a NULL GError
2008-05-16 18:21:20 +01:00
Bastien Nocera
3a0152e124 Fix _get_error() in the manager
Fix wrong assumption of semantics when fp_discover_devs()
returns NULL.
2008-05-16 12:17:48 +01:00
Bastien Nocera
017f770480 Clean up object creation code
Make all of FPrintManager's struct members private,
warn of errors using a _get_error() function, as object
creation can never fail.

The only error possible shouldn't really be an error though,
as it only means that no devices will be enumerated, but it
could tell us about newly plugged devices instead.
2008-05-14 16:07:25 +01:00
Daniel Drake
080e427651 Move to object oriented model
There is now a single Manager class shared between all apps.
Apps then share a collection of Device objects.
2008-03-05 23:52:33 +00:00