summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* add apparmor confinement checkwip/apparmorWilliam Hua2017-02-175-2/+108
|
* add top_srcdir to includes for out-of-tree buildsWilliam Hua2017-02-161-1/+3
|
* more proxy changes wipwip/proxyAllison Lortie2017-01-189-121/+696
|
* Initial check-in of dconf-proxy codeAllison Lortie2016-11-2210-1/+925
|
* engine: use GvdbPath for writability checksAllison Lortie2016-10-172-10/+63
| | | | | | | | | | | | | | | | | | | | | | | | Move over to using GvdbPath when checking for writability of a key. This has two advantages: The first is that we only hash the key once during writability checks, even if we have multiple stacked databases. The second is that we can now lock down entire subpaths in dconf. The way the code is written also means that it is now theoretically possible to "unlock" a given path or key, which means that a database can introduce a lock for "/" but unlock "/org/gnome/myapp/", in effect, preventing writes to any area outside of that path. The "best" (ie: most specific) result is taken as authorative. These 'negative locks' are not (yet?) supported in the dconf(1) update/compile commands, but they will be used for proxied databases for application confinement. Note: each database is consulted separately. That means that a higher-level database cannot undo a lock of a lower-level database with a more-specific unlock. The security model is therefore the same as what it was before.
* Confinement, proxied source.Allison Lortie2016-10-178-0/+228
|
* engine: rework initial value for has_locksAllison Lortie2016-10-161-6/+6
| | | | | | | | | | In the case that the user database file does not exist on disk, "re"opening it for the first time will fail, causing the refresh function to return FALSE. This means that we will not end up recomputing the value of has_locks as was previously assumed. To avoid this problem, we fill in the proper value from the start, instead of guessing.
* gvdb: remove memory allocation from GvdbPathAllison Lortie2016-10-142-42/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify GvdbPath to never allocate memory. Previously, if we had fewer split points ('/') than the number of pre-allocated items in the arrays in the structure, we would simply use them. At 16, this number is already extremely high, and it's implausible to imagine a real case for which this would be insufficient. This commit simplifies things a bit: if there are more than 16 segments, we will just ignore the later ones, except for the final one (ie: the complete path). For the sake of an example, let the limit be 4, rather than 16. This means that you could lock: / /org/ /org/gnome/ /org/gnome/app/deeply/nested/key but not: /org/gnome/app/ /org/gnome/app/deeply/ /org/gnome/app/deeply/nested/ With 16 segments, everything here could be locked, and much more. In this way, we preserve the previous behaviour of always being able to lock a particular individual key of any depth, while introducing path-based locks for all reasonable cases, and we avoid memory allocations in all cases.
* engine: slightly refactor per-source lock-checkingAllison Lortie2016-10-141-2/+12
| | | | | | Write a helper function to answer the question of "does this source have any lock for the given key?". Although this logic is currently trivial, it will soon get more complex.
* engine: optimise the no-locks caseAllison Lortie2016-10-142-6/+36
| | | | | | | | | Add a fast path for avoiding writability checks for the very common case where there are no databases installed that have locks (ie: the default configuration). This allows us to avoid iterating a changeset to check for writability before sending it off to the service, for example.
* gvdb: refactor lookups around GvdbPath and add APIAllison Lortie2016-10-142-17/+96
| | | | | Internally refactor GvdbTable lookups to use the GvdbPath API. Add some external API for doing path lookups.
* gvdb: introduce GvdbPathAllison Lortie2016-10-142-1/+98
|
* HACKING: dbus-1/ and editor/ no longer existAllison Lortie2016-09-292-36/+7
| | | | ... and similar changes to the README.
* dconf(1): add missing list-locks command to helpAllison Ryan Lortie2016-04-291-0/+1
|
* dconf 0.26.00.26.0Allison Ryan Lortie2016-03-232-1/+6
|
* dconf 0.25.10.25.1Allison Ryan Lortie2015-12-162-1/+35
|
* DConfClient: Add "writability-changed" signalXavier Claessens2015-12-161-0/+27
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=759128
* client: restrict list_locks to work on dirsAllison Ryan Lortie2015-12-162-4/+4
| | | | | | | This was always the intention, and is even documented that way in the gtk-doc block above. I'm not sure why I used paths. In any case, this API has never been released, so the change is safe.
* DConfChangeset: add missing 'static' on functionAllison Ryan Lortie2015-12-161-1/+1
|
* docs: add new APIsAllison Ryan Lortie2015-12-163-0/+40
| | | | ...and other various cleanups.
* client: replace _read_default() with _read_full()Allison Ryan Lortie2015-12-165-24/+52
| | | | | | | | | This API has never appeared in a released version of dconf (even unstable). Replace it with a more generally-useful form. Update the test cases, dconf commandline tool and vapi accordingly. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* engine: some internal const-correctness changesAllison Ryan Lortie2015-12-162-6/+6
| | | | | | | There is no reason that the read_through queue should not be 'const', so expose it as such. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* engine: add DCONF_READ_DEFAULT_VALUE flagAllison Ryan Lortie2015-12-164-46/+20
| | | | | | | | Add a flag that allows checking the default value without constructing a read_through queue. Make use of this new flag to simplify code in a couple of places. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* engine: merge _read and _read_user_value()Allison Ryan Lortie2015-12-166-85/+51
| | | | | | | Delete the separate dconf_engine_read_user_value() and merge its functionality into dconf_engine_read() by adding a flags field. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* common: rename dconf-error.h to dconf-enums.hAllison Ryan Lortie2015-12-167-6/+6
| | | | | | This will soon contain an extra enum. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* Remove libdbus-1 supportAllison Ryan Lortie2015-12-1610-696/+1
| | | | | | | | Stop building the dconf-dbus-1 client library. Nobody is using it anymore and we will soon be taking a non-conditional dependency on libgio in any case. It is now only possible to use dconf with GDBus.
* Modernise the headers of dconf-clientAllison Ryan Lortie2015-11-304-9/+8
| | | | | | | Add support for g_autoptr() on DConfClient and DConfChangeset. Switch to using G_DECLARE_FINAL_TYPE in the declaration of DConfClient. https://bugzilla.gnome.org/show_bug.cgi?id=758871
* dconf-client: include dconf-paths headerAllison Ryan Lortie2015-11-301-0/+1
| | | | | We should have this included since we use the functions in it in our precondition checks.
* dconf(1): add -d option to 'dconf read'Allison Ryan Lortie2015-11-301-4/+18
| | | | | | Add a -d option to 'dconf read' to read the default value. https://bugzilla.gnome.org/show_bug.cgi?id=758864
* dconf(1) tool: add list-locks commandAllison Ryan Lortie2015-11-301-12/+29
| | | | | | | Add a list-locks command to the dconf commandline tool to list the locks that are present in the current configuration. https://bugzilla.gnome.org/show_bug.cgi?id=758864
* vapi: add new API read_default() to vapiAllison Ryan Lortie2015-11-301-0/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=758864
* engine, client: add list_locks() operationAllison Ryan Lortie2015-11-306-0/+111
| | | | | | | Add an API to dconf-engine (and exposed via DConfClient) for getting a list of locks that are present in a given dconf profile. https://bugzilla.gnome.org/show_bug.cgi?id=758864
* DConfClient: add read_default() APIAllison Ryan Lortie2015-11-303-0/+60
| | | | | | | | Add an API to read the default value of a key. Add a testcase. https://bugzilla.gnome.org/show_bug.cgi?id=758860
* DConfChangeset: implement dir resets properlyAllison Ryan Lortie2015-11-302-15/+69
| | | | | | | | | | | | | | | | | | If a dir is reset against a DConfChangeset then the result ought to be that all keys under that dir read as NULL (until such a time as they are set to a new value). This is consistent with the (existing) behaviour that a key will read as NULL if it, itself, was reset. In order to make that efficient, we create a separate GHashTable to serve as a cache of all of the directories that have been reset and iterate it whenever we do a key lookup that doesn't have a direct hit. We update (and expand) the test case to reflect this new reality -- the tests actually had a case that relied on the inconsistent behaviour. https://bugzilla.gnome.org/show_bug.cgi?id=744678
* engine: add support for runtime profile selectionAllison Ryan Lortie2015-11-111-12/+77
| | | | | | | | | | | | | | | | | | | | | | | | Add support to dconf-engine for opening "runtime" profiles. These profiles are intended to be symbolic links or plain files that will live either in XDG_RUNTIME_DIR/dconf/profile or /run/dconf/user/$(uid). This is intended to allow for a PAM module that makes complex decisions about application of a specific policy to a user and sets up the profile at login time, thus preventing the need for this complex decision to be a part of every program that uses dconf. This PAM module would not be part of dconf, but would rather be a part of a dconf-aware system administrator framework. In the case that the profile file is found in /run/dconf, then it will not be possible for the user to override the profile selection, including via the DCONF_PROFILE environment variable. This provides a mechanism for lockdown that is slightly more difficult for a user to circumvent. In theory, this is pointless since it can still be defeated with LD_PRELOAD, but in practice this raises the bar quite a bit. https://bugzilla.gnome.org/show_bug.cgi?id=751417
* tests: Add an assertiondconf-0.24Matthias Clasen2015-07-171-0/+1
| | | | | This makes coverity happy. It noticed that we check source for being non-NULL every other case but not here.
* dconf 0.24.00.24.0Ryan Lortie2015-03-232-1/+6
|
* dconf 0.23.20.23.2Ryan Lortie2015-03-162-1/+8
|
* docs: remove dconf-editor xinclude from toplevelRyan Lortie2015-03-161-1/+0
|
* Replace eight spaces with a tab character in MakefileRobert Ancell2015-03-041-1/+1
|
* Remove dconf-editor man page (moved to dconf-editor project)Robert Ancell2015-03-042-64/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=745500
* dconf(1): fix whitespace in synopsisAndreas Schwab2015-03-021-3/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=744982
* dconf 0.23.10.23.1Ryan Lortie2015-03-022-1/+8
|
* build: use portable shell in configure.acAlexander Tsoy2015-02-221-1/+1
|
* Split dconf-editor out of dconfRyan Lortie2015-02-1892-13079/+1
|
* configure: rename aux to build-auxRyan Lortie2015-02-182-2/+2
| | | | | ...to better match conventions in other modules, and to silence an irrelevant warning about portability to Windows.
* doap: correct my usernameRyan Lortie2015-02-181-1/+2
| | | | | ...and add a <description> (as mandated by the push hook on git.gnome.org).
* Added Icelandic translationSveinn í Felli2015-02-042-0/+183
|
* Updated Vietnamese translationTrần Ngọc Quân2014-12-041-87/+115
| | | | Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
* Updated Turkish translationNecdet Yücel2014-11-161-97/+104
|