summaryrefslogtreecommitdiff
path: root/engine/dconf-engine-source-service.c
Commit message (Collapse)AuthorAgeFilesLines
* Updated FSF's addressDaniel Mustieles2014-01-311-3/+1
|
* engine: issue warnings once per sourceRyan Lortie2013-11-251-3/+2
| | | | | | | | | | | | | | | | | On failure to open a gvdb file in /etc/dconf/db we would issue a warning once per process -- even if multiple files were missing. This was enforced using a static variable. An unfortunate side effect of this global state is that the testcases couldn't reliably know if to expect the error or not. This issue was side-stepped by running any cases that may emit the warning under a fork, but that made it difficult to debug some of the cases. Rework the backends not to use global state for the flag and instead store it per-source. Remove a use of g_test_trap_fork().
* engine: restructure a bit to improve testabilityRyan Lortie2013-11-251-11/+16
| | | | | | | | | Don't use the access() system call from the service source because this bypasses the mocking layer in the testsuite. Use gvdb_table_new() instead. This also avoids an extra syscall. Also: change a couple of criticals to warnings because they are not programmer errors.
* Add missing "config.h" include everywhereRyan Lortie2013-11-241-0/+2
| | | | We ought to be including this from each .c file.
* engine: only Init the service when neededRyan Lortie2013-01-111-3/+7
| | | | | Instead of calling Init() blindly on startup for any service-db, only do it if the file is missing when we go to open it.
* engine: add a new database type: "service-db"Ryan Lortie2013-01-091-0/+87
service-db databases are based on a gvdb in the user runtime dir maintained by the dconf-service. On startup, the client will send an Init message to the service to ensure that the database is properly initialised. After that, things are pretty much the same except that the values are read from the file in the runtime dir instead of from the home directory. We also drop the "shm" signalling mechanism for this case and instead use the same invalidation trick that system databases use (ie: overwriting the old gvdb header after writing the new file).