summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStef Walter <stefw@redhat.com>2014-08-30 07:32:23 +0200
committerStef Walter <stefw@redhat.com>2014-09-13 08:32:03 +0200
commit8c9c1a8fcadff500bc39f71acb411763e7afbe3f (patch)
tree1cc99113c7cfe0ffffecb16de042f8331b32ee07
parent1dedc7c174c65f9e1680e19b53c0f44295bd03c5 (diff)
egg: Move file tracker code to egg/ directory
So that it can be used in other parts of gnome-keyring.
-rw-r--r--.gitignore2
-rw-r--r--egg/Makefile.am6
-rw-r--r--egg/egg-file-tracker.c (renamed from pkcs11/gkm/gkm-file-tracker.c)56
-rw-r--r--egg/egg-file-tracker.h59
-rw-r--r--egg/test-file-tracker.c (renamed from pkcs11/gkm/test-file-tracker.c)42
-rw-r--r--pkcs11/gkm/Makefile.am6
-rw-r--r--pkcs11/gkm/gkm-file-tracker.h61
-rw-r--r--pkcs11/secret-store/gkm-secret-module.c17
-rw-r--r--pkcs11/ssh-store/gkm-ssh-module.c17
-rw-r--r--pkcs11/xdg-store/gkm-xdg-module.c16
10 files changed, 149 insertions, 133 deletions
diff --git a/.gitignore b/.gitignore
index 1ed716e5..1061c477 100644
--- a/.gitignore
+++ b/.gitignore
@@ -100,6 +100,7 @@ depcomp
/egg/tests/test-decimal
/egg/tests/test-dh
/egg/tests/test-dn
+/egg/tests/test-file-tracker
/egg/tests/test-hex
/egg/tests/test-hkdf
/egg/tests/test-oid
@@ -122,7 +123,6 @@ depcomp
/pkcs11/gkm/tests/test-credential
/pkcs11/gkm/tests/test-data-asn1
/pkcs11/gkm/tests/test-data-der
-/pkcs11/gkm/tests/test-file-tracker
/pkcs11/gkm/tests/test-memory-store
/pkcs11/gkm/tests/test-object
/pkcs11/gkm/tests/test-secret
diff --git a/egg/Makefile.am b/egg/Makefile.am
index f4893578..1e3bc889 100644
--- a/egg/Makefile.am
+++ b/egg/Makefile.am
@@ -25,6 +25,7 @@ libegg_la_SOURCES = \
egg/egg-dh.c egg/egg-dh.h \
egg/egg-dn.c egg/egg-dn.h \
egg/egg-error.h \
+ egg/egg-file-tracker.c egg/egg-file-tracker.h \
egg/egg-hex.c egg/egg-hex.h \
egg/egg-hkdf.c egg/egg-hkdf.h \
egg/egg-libgcrypt.c egg/egg-libgcrypt.h \
@@ -126,6 +127,7 @@ egg_LIBS = \
libegg.la \
$(LIBGCRYPT_LIBS) \
$(GTHREAD_LIBS) \
+ $(GOBJECT_LIBS) \
$(GLIB_LIBS)
egg_TESTS = \
@@ -142,6 +144,7 @@ egg_TESTS = \
test-armor \
test-openssl \
test-dh \
+ test-file-tracker \
test-spawn
test_asn1_SOURCES = egg/test-asn1.c egg/test.asn.h
@@ -156,6 +159,9 @@ test_dn_LDADD = $(egg_LIBS)
test_cleanup_SOURCES = egg/test-cleanup.c
test_cleanup_LDADD = $(egg_LIBS)
+test_file_tracker_SOURCES = egg/test-file-tracker.c
+test_file_tracker_LDADD = $(egg_LIBS)
+
test_hex_SOURCES = egg/test-hex.c
test_hex_LDADD = $(egg_LIBS)
diff --git a/pkcs11/gkm/gkm-file-tracker.c b/egg/egg-file-tracker.c
index 1df263b3..0dbfbef6 100644
--- a/pkcs11/gkm/gkm-file-tracker.c
+++ b/egg/egg-file-tracker.c
@@ -1,5 +1,5 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gkm-file-tracker.c - Watch for changes in a directory
+/* egg-file-tracker.c - Watch for changes in a directory
Copyright (C) 2008 Stefan Walter
@@ -22,7 +22,7 @@
#include "config.h"
-#include "gkm-file-tracker.h"
+#include "egg-file-tracker.h"
#include "egg/egg-error.h"
@@ -34,11 +34,11 @@
#include <unistd.h>
typedef struct _UpdateDescendants {
- GkmFileTracker *tracker;
+ EggFileTracker *tracker;
GHashTable *checks;
} UpdateDescendants;
-struct _GkmFileTracker {
+struct _EggFileTracker {
GObject parent;
/* Specification */
@@ -60,7 +60,7 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
-G_DEFINE_TYPE (GkmFileTracker, gkm_file_tracker, G_TYPE_OBJECT);
+G_DEFINE_TYPE (EggFileTracker, egg_file_tracker, G_TYPE_OBJECT);
/* -----------------------------------------------------------------------------
* HELPERS
@@ -76,14 +76,14 @@ copy_key_string (gpointer key, gpointer value, gpointer data)
static void
remove_files (gpointer key, gpointer value, gpointer data)
{
- GkmFileTracker *self = GKM_FILE_TRACKER (data);
+ EggFileTracker *self = EGG_FILE_TRACKER (data);
g_hash_table_remove (self->files, key);
g_signal_emit (self, signals[FILE_REMOVED], 0, key);
}
static gboolean
-update_file (GkmFileTracker *self, gboolean force_all, const gchar *path)
+update_file (EggFileTracker *self, gboolean force_all, const gchar *path)
{
time_t old_mtime;
struct stat sb;
@@ -116,7 +116,7 @@ update_each_file (gpointer key, gpointer unused, gpointer data)
}
static void
-update_directory (GkmFileTracker *self, gboolean force_all, GHashTable *checks)
+update_directory (EggFileTracker *self, gboolean force_all, GHashTable *checks)
{
UpdateDescendants uctx;
struct stat sb;
@@ -127,7 +127,7 @@ update_directory (GkmFileTracker *self, gboolean force_all, GHashTable *checks)
int ret, lasterr;
g_assert (checks);
- g_assert (GKM_IS_FILE_TRACKER (self));
+ g_assert (EGG_IS_FILE_TRACKER (self));
if (!self->directory_path)
return;
@@ -208,15 +208,15 @@ update_directory (GkmFileTracker *self, gboolean force_all, GHashTable *checks)
*/
static void
-gkm_file_tracker_init (GkmFileTracker *self)
+egg_file_tracker_init (EggFileTracker *self)
{
self->files = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
}
static void
-gkm_file_tracker_finalize (GObject *obj)
+egg_file_tracker_finalize (GObject *obj)
{
- GkmFileTracker *self = GKM_FILE_TRACKER (obj);
+ EggFileTracker *self = EGG_FILE_TRACKER (obj);
if (self->include)
g_pattern_spec_free (self->include);
@@ -226,43 +226,43 @@ gkm_file_tracker_finalize (GObject *obj)
g_hash_table_destroy (self->files);
- G_OBJECT_CLASS (gkm_file_tracker_parent_class)->finalize (obj);
+ G_OBJECT_CLASS (egg_file_tracker_parent_class)->finalize (obj);
}
static void
-gkm_file_tracker_class_init (GkmFileTrackerClass *klass)
+egg_file_tracker_class_init (EggFileTrackerClass *klass)
{
GObjectClass *gobject_class;
gobject_class = (GObjectClass*) klass;
- gkm_file_tracker_parent_class = g_type_class_peek_parent (klass);
- gobject_class->finalize = gkm_file_tracker_finalize;
+ egg_file_tracker_parent_class = g_type_class_peek_parent (klass);
+ gobject_class->finalize = egg_file_tracker_finalize;
- signals[FILE_ADDED] = g_signal_new ("file-added", GKM_TYPE_FILE_TRACKER,
- G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GkmFileTrackerClass, file_added),
+ signals[FILE_ADDED] = g_signal_new ("file-added", EGG_TYPE_FILE_TRACKER,
+ G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (EggFileTrackerClass, file_added),
NULL, NULL, g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
- signals[FILE_CHANGED] = g_signal_new ("file-changed", GKM_TYPE_FILE_TRACKER,
- G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GkmFileTrackerClass, file_changed),
+ signals[FILE_CHANGED] = g_signal_new ("file-changed", EGG_TYPE_FILE_TRACKER,
+ G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (EggFileTrackerClass, file_changed),
NULL, NULL, g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
- signals[FILE_REMOVED] = g_signal_new ("file-removed", GKM_TYPE_FILE_TRACKER,
- G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GkmFileTrackerClass, file_removed),
+ signals[FILE_REMOVED] = g_signal_new ("file-removed", EGG_TYPE_FILE_TRACKER,
+ G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (EggFileTrackerClass, file_removed),
NULL, NULL, g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
}
-GkmFileTracker*
-gkm_file_tracker_new (const gchar *directory, const gchar *include, const gchar *exclude)
+EggFileTracker*
+egg_file_tracker_new (const gchar *directory, const gchar *include, const gchar *exclude)
{
- GkmFileTracker *self;
+ EggFileTracker *self;
const gchar *homedir;
g_return_val_if_fail (directory, NULL);
- self = g_object_new (GKM_TYPE_FILE_TRACKER, NULL);
+ self = g_object_new (EGG_TYPE_FILE_TRACKER, NULL);
/* TODO: Use properties */
@@ -284,11 +284,11 @@ gkm_file_tracker_new (const gchar *directory, const gchar *include, const gchar
}
void
-gkm_file_tracker_refresh (GkmFileTracker *self, gboolean force_all)
+egg_file_tracker_refresh (EggFileTracker *self, gboolean force_all)
{
GHashTable *checks;
- g_return_if_fail (GKM_IS_FILE_TRACKER (self));
+ g_return_if_fail (EGG_IS_FILE_TRACKER (self));
/* Copy into our check set */
checks = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
diff --git a/egg/egg-file-tracker.h b/egg/egg-file-tracker.h
new file mode 100644
index 00000000..9ce2f9b9
--- /dev/null
+++ b/egg/egg-file-tracker.h
@@ -0,0 +1,59 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/* egg-file-tracker.h - Watch for changes in a directory
+
+ Copyright (C) 2008, Stefan Walter
+
+ The Gnome Keyring Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The Gnome Keyring Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Gnome Library; see the file COPYING.LIB. If not,
+ <http://www.gnu.org/licenses/>.
+
+ Author: Stef Walter <stef@memberwebs.com>
+*/
+
+#ifndef __EGG_FILE_TRACKER_H__
+#define __EGG_FILE_TRACKER_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define EGG_TYPE_FILE_TRACKER (egg_file_tracker_get_type ())
+#define EGG_FILE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_FILE_TRACKER, EggFileTracker))
+#define EGG_FILE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_FILE_TRACKER, GObject))
+#define EGG_IS_FILE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_FILE_TRACKER))
+#define EGG_IS_FILE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_FILE_TRACKER))
+#define EGG_FILE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_FILE_TRACKER, EggFileTrackerClass))
+
+typedef struct _EggFileTracker EggFileTracker;
+typedef struct _EggFileTrackerClass EggFileTrackerClass;
+
+struct _EggFileTrackerClass {
+ GObjectClass parent_class;
+
+ void (*file_added) (EggFileTracker *locmgr, const gchar *path);
+ void (*file_changed) (EggFileTracker *locmgr, const gchar *path);
+ void (*file_removed) (EggFileTracker *locmgr, const gchar *path);
+};
+
+GType egg_file_tracker_get_type (void) G_GNUC_CONST;
+
+EggFileTracker* egg_file_tracker_new (const gchar *directory,
+ const gchar *include_pattern,
+ const gchar *exclude_pattern);
+
+void egg_file_tracker_refresh (EggFileTracker *self,
+ gboolean force_all);
+
+G_END_DECLS
+
+#endif /* __EGG_FILE_TRACKER_H__ */
diff --git a/pkcs11/gkm/test-file-tracker.c b/egg/test-file-tracker.c
index 4853e6ab..926b4485 100644
--- a/pkcs11/gkm/test-file-tracker.c
+++ b/egg/test-file-tracker.c
@@ -27,7 +27,7 @@
#include <string.h>
#include <unistd.h>
-#include "gkm/gkm-file-tracker.h"
+#include "egg/egg-file-tracker.h"
#include <glib/gstdio.h>
@@ -36,7 +36,7 @@
#define WILDCARD "*.woo?"
typedef struct {
- GkmFileTracker *the_tracker;
+ EggFileTracker *the_tracker;
gchar *test_dir;
gchar *test_file;
guint n_files_added;
@@ -48,7 +48,9 @@ typedef struct {
} Test;
static void
-file_added (GkmFileTracker *tracker, const gchar *path, gpointer user_data)
+file_added (EggFileTracker *tracker,
+ const gchar *path,
+ gpointer user_data)
{
Test *test = user_data;
@@ -60,7 +62,9 @@ file_added (GkmFileTracker *tracker, const gchar *path, gpointer user_data)
}
static void
-file_changed (GkmFileTracker *tracker, const gchar *path, gpointer user_data)
+file_changed (EggFileTracker *tracker,
+ const gchar *path,
+ gpointer user_data)
{
Test *test = user_data;
@@ -72,7 +76,9 @@ file_changed (GkmFileTracker *tracker, const gchar *path, gpointer user_data)
}
static void
-file_removed (GkmFileTracker *tracker, const gchar *path, gpointer user_data)
+file_removed (EggFileTracker *tracker,
+ const gchar *path,
+ gpointer user_data)
{
Test *test = user_data;
@@ -99,7 +105,7 @@ setup (Test *test, gconstpointer unused)
/* Make a test directory */
test->test_dir = g_build_filename ("/tmp", SUBDIR, NULL);
- test->the_tracker = gkm_file_tracker_new (test->test_dir, WILDCARD, NULL);
+ test->the_tracker = egg_file_tracker_new (test->test_dir, WILDCARD, NULL);
g_signal_connect (test->the_tracker, "file-added", G_CALLBACK (file_added), test);
g_signal_connect (test->the_tracker, "file-removed", G_CALLBACK (file_removed), test);
g_signal_connect (test->the_tracker, "file-changed", G_CALLBACK (file_changed), test);
@@ -124,7 +130,7 @@ static void
test_file_watch (Test *test, gconstpointer unused)
{
/* A watch for an non-existant directory, should have no responses */
- gkm_file_tracker_refresh (test->the_tracker, FALSE);
+ egg_file_tracker_refresh (test->the_tracker, FALSE);
g_assert_cmpint (0, ==, test->n_files_added);
g_assert_cmpint (0, ==, test->n_files_changed);
@@ -133,7 +139,7 @@ test_file_watch (Test *test, gconstpointer unused)
g_mkdir_with_parents (test->test_dir, 0700);
/* Should still have no responses even though it exists */
- gkm_file_tracker_refresh (test->the_tracker, FALSE);
+ egg_file_tracker_refresh (test->the_tracker, FALSE);
g_assert_cmpint (0, ==, test->n_files_added);
g_assert_cmpint (0, ==, test->n_files_changed);
@@ -146,7 +152,7 @@ test_watch_file (Test *test, gconstpointer unused)
gboolean ret;
/* Make sure things are clean */
- gkm_file_tracker_refresh (test->the_tracker, FALSE);
+ egg_file_tracker_refresh (test->the_tracker, FALSE);
test->n_files_added = test->n_files_changed = test->n_files_removed = 0;
test->last_file_added = test->last_file_changed = test->last_file_removed = 0;
@@ -155,7 +161,7 @@ test_watch_file (Test *test, gconstpointer unused)
g_assert (ret);
/* Now make sure that file is located */
- gkm_file_tracker_refresh (test->the_tracker, FALSE);
+ egg_file_tracker_refresh (test->the_tracker, FALSE);
g_assert_cmpint (1, ==, test->n_files_added);
g_assert_cmpint (0, ==, test->n_files_changed);
@@ -168,13 +174,13 @@ test_watch_file (Test *test, gconstpointer unused)
sleep (1);
/* Shouldn't find the file again */
- gkm_file_tracker_refresh (test->the_tracker, FALSE);
+ egg_file_tracker_refresh (test->the_tracker, FALSE);
g_assert_cmpint (0, ==, test->n_files_added);
g_assert_cmpint (0, ==, test->n_files_changed);
g_assert_cmpint (0, ==, test->n_files_removed);
/* But we should find the file if forced to */
- gkm_file_tracker_refresh (test->the_tracker, TRUE);
+ egg_file_tracker_refresh (test->the_tracker, TRUE);
g_assert_cmpint (0, ==, test->n_files_added);
g_assert_cmpint (1, ==, test->n_files_changed);
g_assert_cmpint (0, ==, test->n_files_removed);
@@ -186,7 +192,7 @@ test_watch_file (Test *test, gconstpointer unused)
g_assert (ret);
/* File was updated */
- gkm_file_tracker_refresh (test->the_tracker, FALSE);
+ egg_file_tracker_refresh (test->the_tracker, FALSE);
g_assert_cmpint (0, ==, test->n_files_added);
g_assert_cmpint (1, ==, test->n_files_changed);
g_assert_cmpint (0, ==, test->n_files_removed);
@@ -196,7 +202,7 @@ test_watch_file (Test *test, gconstpointer unused)
g_unlink (test->test_file);
/* Now file should be removed */
- gkm_file_tracker_refresh (test->the_tracker, FALSE);
+ egg_file_tracker_refresh (test->the_tracker, FALSE);
g_assert_cmpint (0, ==, test->n_files_added);
g_assert_cmpint (0, ==, test->n_files_changed);
@@ -219,7 +225,7 @@ test_nomatch (Test *test, gconstpointer unused)
file_reset_stats (test);
/* Now make sure that file is not located */
- gkm_file_tracker_refresh (test->the_tracker, FALSE);
+ egg_file_tracker_refresh (test->the_tracker, FALSE);
g_assert_cmpint (0, ==, test->n_files_added);
g_assert_cmpint (0, ==, test->n_files_changed);
@@ -237,9 +243,9 @@ main (int argc, char **argv)
#endif
g_test_init (&argc, &argv, NULL);
- g_test_add ("/gkm/file-tracker/file_watch", Test, NULL, setup, test_file_watch, teardown);
- g_test_add ("/gkm/file-tracker/watch_file", Test, NULL, setup, test_watch_file, teardown);
- g_test_add ("/gkm/file-tracker/nomatch", Test, NULL, setup, test_nomatch, teardown);
+ g_test_add ("/egg/file-tracker/file_watch", Test, NULL, setup, test_file_watch, teardown);
+ g_test_add ("/egg/file-tracker/watch_file", Test, NULL, setup, test_watch_file, teardown);
+ g_test_add ("/egg/file-tracker/nomatch", Test, NULL, setup, test_nomatch, teardown);
return g_test_run ();
}
diff --git a/pkcs11/gkm/Makefile.am b/pkcs11/gkm/Makefile.am
index 65d27d75..949aec3d 100644
--- a/pkcs11/gkm/Makefile.am
+++ b/pkcs11/gkm/Makefile.am
@@ -46,8 +46,6 @@ libgkm_la_SOURCES = \
pkcs11/gkm/gkm-dsa-mechanism.h \
pkcs11/gkm/gkm-factory.c \
pkcs11/gkm/gkm-factory.h \
- pkcs11/gkm/gkm-file-tracker.c \
- pkcs11/gkm/gkm-file-tracker.h \
pkcs11/gkm/gkm-generic-key.c \
pkcs11/gkm/gkm-generic-key.h \
pkcs11/gkm/gkm-hkdf-mechanism.c \
@@ -151,7 +149,6 @@ gkm_TESTS = \
test-credential \
test-data-asn1 \
test-data-der \
- test-file-tracker \
test-memory-store \
test-object \
test-certificate \
@@ -173,9 +170,6 @@ test_data_asn1_LDADD = $(gkm_LIBS)
test_data_der_SOURCES = pkcs11/gkm/test-data-der.c
test_data_der_LDADD = $(gkm_LIBS)
-test_file_tracker_SOURCES = pkcs11/gkm/test-file-tracker.c
-test_file_tracker_LDADD = $(gkm_LIBS)
-
test_memory_store_SOURCES = pkcs11/gkm/test-memory-store.c
test_memory_store_LDADD = $(gkm_LIBS)
diff --git a/pkcs11/gkm/gkm-file-tracker.h b/pkcs11/gkm/gkm-file-tracker.h
deleted file mode 100644
index 63a45160..00000000
--- a/pkcs11/gkm/gkm-file-tracker.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gkm-file-tracker.h - Watch for changes in a directory
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- <http://www.gnu.org/licenses/>.
-
- Author: Stef Walter <stef@memberwebs.com>
-*/
-
-#ifndef __GKM_FILE_TRACKER_H__
-#define __GKM_FILE_TRACKER_H__
-
-#include <glib-object.h>
-
-#include "gkm-file-tracker.h"
-
-G_BEGIN_DECLS
-
-#define GKM_TYPE_FILE_TRACKER (gkm_file_tracker_get_type ())
-#define GKM_FILE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKM_TYPE_FILE_TRACKER, GkmFileTracker))
-#define GKM_FILE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GKM_TYPE_FILE_TRACKER, GObject))
-#define GKM_IS_FILE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GKM_TYPE_FILE_TRACKER))
-#define GKM_IS_FILE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GKM_TYPE_FILE_TRACKER))
-#define GKM_FILE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GKM_TYPE_FILE_TRACKER, GkmFileTrackerClass))
-
-typedef struct _GkmFileTracker GkmFileTracker;
-typedef struct _GkmFileTrackerClass GkmFileTrackerClass;
-
-struct _GkmFileTrackerClass {
- GObjectClass parent_class;
-
- void (*file_added) (GkmFileTracker *locmgr, const gchar *path);
- void (*file_changed) (GkmFileTracker *locmgr, const gchar *path);
- void (*file_removed) (GkmFileTracker *locmgr, const gchar *path);
-};
-
-GType gkm_file_tracker_get_type (void) G_GNUC_CONST;
-
-GkmFileTracker* gkm_file_tracker_new (const gchar *directory,
- const gchar *include_pattern,
- const gchar *exclude_pattern);
-
-void gkm_file_tracker_refresh (GkmFileTracker *self,
- gboolean force_all);
-
-G_END_DECLS
-
-#endif /* __GKM_FILE_TRACKER_H__ */
diff --git a/pkcs11/secret-store/gkm-secret-module.c b/pkcs11/secret-store/gkm-secret-module.c
index d31cd6ad..06a053d7 100644
--- a/pkcs11/secret-store/gkm-secret-module.c
+++ b/pkcs11/secret-store/gkm-secret-module.c
@@ -29,10 +29,11 @@
#include "gkm/gkm-credential.h"
#define DEBUG_FLAG GKM_DEBUG_STORAGE
#include "gkm/gkm-debug.h"
-#include "gkm/gkm-file-tracker.h"
#include "gkm/gkm-transaction.h"
#include "gkm/gkm-util.h"
+#include "egg/egg-file-tracker.h"
+
#include <glib/gstdio.h>
#include <errno.h>
@@ -41,7 +42,7 @@
struct _GkmSecretModule {
GkmModule parent;
- GkmFileTracker *tracker;
+ EggFileTracker *tracker;
GHashTable *collections;
gchar *directory;
GkmCredential *session_credential;
@@ -198,7 +199,9 @@ identifier_to_new_filename (GkmSecretModule *self, const gchar *identifier)
static void
-on_file_load (GkmFileTracker *tracker, const gchar *path, GkmSecretModule *self)
+on_file_load (EggFileTracker *tracker,
+ const gchar *path,
+ GkmSecretModule *self)
{
GkmSecretCollection *collection;
GkmManager *manager;
@@ -252,7 +255,9 @@ on_file_load (GkmFileTracker *tracker, const gchar *path, GkmSecretModule *self)
}
static void
-on_file_remove (GkmFileTracker *tracker, const gchar *path, GkmSecretModule *self)
+on_file_remove (EggFileTracker *tracker,
+ const gchar *path,
+ GkmSecretModule *self)
{
GkmSecretCollection *collection;
@@ -295,7 +300,7 @@ gkm_secret_module_real_refresh_token (GkmModule *base)
{
GkmSecretModule *self = GKM_SECRET_MODULE (base);
if (self->tracker)
- gkm_file_tracker_refresh (self->tracker, FALSE);
+ egg_file_tracker_refresh (self->tracker, FALSE);
return CKR_OK;
}
@@ -397,7 +402,7 @@ gkm_secret_module_constructor (GType type, guint n_props, GObjectConstructParam
self->directory = gkm_util_locate_keyrings_directory ();
gkm_debug ("secret store directory: %s", self->directory);
- self->tracker = gkm_file_tracker_new (self->directory, "*.keyring", NULL);
+ self->tracker = egg_file_tracker_new (self->directory, "*.keyring", NULL);
g_signal_connect (self->tracker, "file-added", G_CALLBACK (on_file_load), self);
g_signal_connect (self->tracker, "file-changed", G_CALLBACK (on_file_load), self);
g_signal_connect (self->tracker, "file-removed", G_CALLBACK (on_file_remove), self);
diff --git a/pkcs11/ssh-store/gkm-ssh-module.c b/pkcs11/ssh-store/gkm-ssh-module.c
index c68adda2..e1be98f9 100644
--- a/pkcs11/ssh-store/gkm-ssh-module.c
+++ b/pkcs11/ssh-store/gkm-ssh-module.c
@@ -25,14 +25,13 @@
#include "gkm-ssh-public-key.h"
#include "egg/egg-error.h"
-
-#include "gkm/gkm-file-tracker.h"
+#include "egg/egg-file-tracker.h"
#include <string.h>
struct _GkmSshModule {
GkmModule parent;
- GkmFileTracker *tracker;
+ EggFileTracker *tracker;
gchar *directory;
GHashTable *keys_by_path;
};
@@ -98,7 +97,9 @@ private_path_for_public (const gchar *public_path)
}
static void
-file_load (GkmFileTracker *tracker, const gchar *path, GkmSshModule *self)
+file_load (EggFileTracker *tracker,
+ const gchar *path,
+ GkmSshModule *self)
{
GkmSshPrivateKey *key;
gchar *private_path;
@@ -142,7 +143,9 @@ file_load (GkmFileTracker *tracker, const gchar *path, GkmSshModule *self)
}
static void
-file_remove (GkmFileTracker *tracker, const gchar *path, GkmSshModule *self)
+file_remove (EggFileTracker *tracker,
+ const gchar *path,
+ GkmSshModule *self)
{
g_return_if_fail (path);
g_return_if_fail (GKM_IS_SSH_MODULE (self));
@@ -180,7 +183,7 @@ static CK_RV
gkm_ssh_module_real_refresh_token (GkmModule *base)
{
GkmSshModule *self = GKM_SSH_MODULE (base);
- gkm_file_tracker_refresh (self->tracker, FALSE);
+ egg_file_tracker_refresh (self->tracker, FALSE);
return CKR_OK;
}
@@ -192,7 +195,7 @@ gkm_ssh_module_constructor (GType type, guint n_props, GObjectConstructParam *pr
if (!self->directory)
self->directory = g_strdup ("~/.ssh");
- self->tracker = gkm_file_tracker_new (self->directory, "*.pub", NULL);
+ self->tracker = egg_file_tracker_new (self->directory, "*.pub", NULL);
g_signal_connect (self->tracker, "file-added", G_CALLBACK (file_load), self);
g_signal_connect (self->tracker, "file-changed", G_CALLBACK (file_load), self);
g_signal_connect (self->tracker, "file-removed", G_CALLBACK (file_remove), self);
diff --git a/pkcs11/xdg-store/gkm-xdg-module.c b/pkcs11/xdg-store/gkm-xdg-module.c
index e2588e1f..25541998 100644
--- a/pkcs11/xdg-store/gkm-xdg-module.c
+++ b/pkcs11/xdg-store/gkm-xdg-module.c
@@ -29,13 +29,13 @@
#include "egg/egg-asn1-defs.h"
#include "egg/egg-dn.h"
#include "egg/egg-error.h"
+#include "egg/egg-file-tracker.h"
#include "egg/egg-hex.h"
#include "gkm/gkm-assertion.h"
#include "gkm/gkm-certificate.h"
#define DEBUG_FLAG GKM_DEBUG_STORAGE
#include "gkm/gkm-debug.h"
-#include "gkm/gkm-file-tracker.h"
#include "gkm/gkm-serializable.h"
#include "gkm/gkm-transaction.h"
#include "gkm/gkm-util.h"
@@ -48,7 +48,7 @@ struct _GkmXdgModule {
GkmModule parent;
gchar *directory;
GHashTable *objects_by_path;
- GkmFileTracker *tracker;
+ EggFileTracker *tracker;
CK_TOKEN_INFO token_info;
};
@@ -198,7 +198,9 @@ remove_object_from_module (GkmXdgModule *self, GkmObject *object,
}
static void
-file_load (GkmFileTracker *tracker, const gchar *path, GkmXdgModule *self)
+file_load (EggFileTracker *tracker,
+ const gchar *path,
+ GkmXdgModule *self)
{
GkmObject *object;
GkmManager *manager;
@@ -268,7 +270,9 @@ file_load (GkmFileTracker *tracker, const gchar *path, GkmXdgModule *self)
}
static void
-file_remove (GkmFileTracker *tracker, const gchar *path, GkmXdgModule *self)
+file_remove (EggFileTracker *tracker,
+ const gchar *path,
+ GkmXdgModule *self)
{
GkmObject *object;
@@ -385,7 +389,7 @@ static CK_RV
gkm_xdg_module_real_refresh_token (GkmModule *base)
{
GkmXdgModule *self = GKM_XDG_MODULE (base);
- gkm_file_tracker_refresh (self->tracker, FALSE);
+ egg_file_tracker_refresh (self->tracker, FALSE);
return CKR_OK;
}
@@ -513,7 +517,7 @@ gkm_xdg_module_constructor (GType type, guint n_props, GObjectConstructParam *pr
if (!self->directory)
self->directory = g_build_filename (g_get_user_data_dir (), "keystore", NULL);
- self->tracker = gkm_file_tracker_new (self->directory, "*.*", NULL);
+ self->tracker = egg_file_tracker_new (self->directory, "*.*", NULL);
g_signal_connect (self->tracker, "file-added", G_CALLBACK (file_load), self);
g_signal_connect (self->tracker, "file-changed", G_CALLBACK (file_load), self);
g_signal_connect (self->tracker, "file-removed", G_CALLBACK (file_remove), self);