Adrian Szyndela [Mon, 15 Apr 2019 11:47:37 +0000 (13:47 +0200)]
serializer: add option for checking for updates
Developers may need to check if they already updated their
serialized policy file. This adds -j option which does not write
anything to the output file, but rather just checks if the generated
file would have the same contents as an existing output file.
Change-Id: I28ab3e992416d25c04206279275f007c0ca08919
Adrian Szyndela [Wed, 10 Apr 2019 14:04:52 +0000 (16:04 +0200)]
refactoring: group helper functions into a namespace
This groups helper functions into an anonymous namespace.
Change-Id: I1bf32e719f4268886014757a1423ef2c24b4c242
Adrian Szyndela [Wed, 10 Apr 2019 14:04:13 +0000 (16:04 +0200)]
refactoring: group path resolving ops into a class
This introduces BusPathResolver class.
Change-Id: I56d22e0b6b5e565415b1ff6d070986efa97c7502
Adrian Szyndela [Wed, 10 Apr 2019 14:25:24 +0000 (16:25 +0200)]
refactoring: group kconn ops into a class
This moves functions dealing with kconn into the kconn class.
Change-Id: I27422ae661071ec33d27bced8b2954ea744d16d0
Adrian Szyndela [Wed, 10 Apr 2019 14:22:21 +0000 (16:22 +0200)]
refactoring: group checker functions into a class
This introduces local Checker class that helps with initializing
and selecting NaivePolicyChecker instances.
Change-Id: Ia859e63903b4ea173fe4cae5de9cfadc1aa94d4a
Adrian Szyndela [Wed, 10 Apr 2019 13:02:42 +0000 (15:02 +0200)]
refactoring: group g_udesc operations into a struct
Change-Id: I474a61e811cb7eb316ad8b57c298b8730f74eb25
Adrian Szyndela [Wed, 10 Apr 2019 12:37:33 +0000 (14:37 +0200)]
refactoring: getNames() -> prepareNames()
prepareNames() is more proper name for the function as it
prepares an array of names in the KdbusConnectionInfo object,
it does not return them.
Change-Id: I9f86ae80c138a2371456c86543757e962d23e25a
Adrian Szyndela [Fri, 5 Apr 2019 11:20:59 +0000 (13:20 +0200)]
refactoring: use checker directly instead BusType in configuration
This makes configuration use pointer to checker in place of previously
used BusType. This way on queries, the object is used throught the pointer
instead of selecting correct checker with yet another 'if' clause.
Change-Id: I79f129be899ff501a01ff1fbf1a95c5d194e3abf
Adrian Szyndela [Fri, 5 Apr 2019 10:47:19 +0000 (12:47 +0200)]
refactoring: make BusType a local type
BusType does not need to be a global type, because in fact
it is needed only to choose a correct policy checker.
In the test cases, or in the command line tools we explicitly know
which checker we need to choose.
Thus, it is only required for the API, where we still keep it
in the configuration.
This will allow further simplifications.
Change-Id: I61663d496279b47a6a0338b93434b5ae42326f33
Adrian Szyndela [Fri, 5 Apr 2019 10:20:30 +0000 (12:20 +0200)]
refactoring: remove the remains of internal.cpp
This removes the remains of internal.cpp by replacing all __internal_init
functions with more direct calls.
This allows removing of internal.cpp.
Change-Id: I064d919d06a25888cae6079bf9d37cd535f9b8b6
Adrian Szyndela [Fri, 5 Apr 2019 09:32:44 +0000 (11:32 +0200)]
refactoring: remove tslog-related functions from "internal"
This removes tslog-related functions from internal.{cpp,h}.
Needed functionality is moved to tslog, the rest is eliminated,
as obsolete.
Additionally, RAII object LogLock is provided to make it look
prettier in places where transaction_guard for __internal_enter and
__internal_exit was used.
Change-Id: I48e5b9c5bf352eb03c50b2a4b4c109c2df0c11bc
Adrian Szyndela [Fri, 5 Apr 2019 08:51:30 +0000 (10:51 +0200)]
refactoring: eliminate __internal_init_sup_group()
This removes __internal_init_sup_group(), which no longer serves
as anything more than a useless proxy.
Change-Id: Ie460c9f2b71413235e7141ec84b5112be27e0f5b
Adrian Szyndela [Thu, 4 Apr 2019 14:15:52 +0000 (16:15 +0200)]
refactoring: clean up tests (a bit)
This uses more understandable expected results of checking, like ALLOW or DENY
instead of true or false.
Aimed to increase readability.
Change-Id: I48be2de6005812778463be537ea3fa475256f91f
Adrian Szyndela [Thu, 4 Apr 2019 13:39:48 +0000 (15:39 +0200)]
refactoring: eliminate __internal_can_* functions
This removes __internal_can_* functions as they do not really
do anything useful anymore...
And, as always, it allows further simplifications.
Change-Id: Id30db12afbf8d60dce87c23355c41cff0d907d05
Adrian Szyndela [Thu, 4 Apr 2019 09:42:37 +0000 (11:42 +0200)]
refactoring: don't copy string_refs for matching
This modifies MatchItemSR to use externally built array of names instead of
copying input arrays. The external array was built anyway in case
names were taken from KDBUS_CMD_CONN_INFO ioctl.
The other case, where the array is built from space separated string is
changed in a way that the building process is performed outside of
MatchItemSR. This allows further simplifications.
Change-Id: I13cfba0940f3347be91c9281614a3c66b8cb11b6
Agnieszka Baumann [Wed, 3 Apr 2019 16:46:33 +0000 (18:46 +0200)]
refactoring: reorder includes
Makes it easier to spot duplicated includes
Change-Id: I6f0ef0cd5bf558500020ee715e301f708fffb04d
Adrian Szyndela [Fri, 29 Mar 2019 15:27:51 +0000 (16:27 +0100)]
introduce KdbusConnection and KdbusConnectionInfo classes
Change-Id: Ie9b80624f6f6d09e08338ed68e23657f5dc33480
Adrian Szyndela [Fri, 29 Mar 2019 15:24:12 +0000 (16:24 +0100)]
refactoring: simplify getting conf file names
Change-Id: Ib452c4c11480ab388c69296d6e220ac725e83ee0
Adrian Szyndela [Fri, 29 Mar 2019 15:15:43 +0000 (16:15 +0100)]
refactoring: extract function getting bus owner from path
Change-Id: I967484c5149f8eda1220e4e2045deb54ad84a4ab
Adrian Szyndela [Fri, 29 Mar 2019 15:12:43 +0000 (16:12 +0100)]
kdbus: free cmd earlier while doing hello()
Change-Id: I1b22db1d9296277de188d9e21e790390a24e7627
Adrian Szyndela [Fri, 29 Mar 2019 15:12:19 +0000 (16:12 +0100)]
refactoring: remove 'struct's
Change-Id: I38349fb759a1a23873892d80642698580c7bbbfb
Adrian Szyndela [Fri, 29 Mar 2019 15:00:31 +0000 (16:00 +0100)]
refactoring: generalize and use setting string item
Change-Id: Iabedbee561b73df704f97392ae064cfcc97806a5
Adrian Szyndela [Fri, 29 Mar 2019 14:53:31 +0000 (15:53 +0100)]
refactoring: manage kdbus commands
This introduces helper class kdbus_command which makes it easy
to allocate stack space for kdbus commands, including space needed
for optional items.
Change-Id: If4b9ab6cbc92f4705b21373af3d94f9d88a7fd6a
Adrian Szyndela [Fri, 29 Mar 2019 14:22:52 +0000 (15:22 +0100)]
refactoring: merge 'can' with 'can_multi' functions
Change-Id: I17889df47ac3a5f740eb528f7f56c3e3b8b7edc5
Adrian Szyndela [Fri, 29 Mar 2019 14:18:05 +0000 (15:18 +0100)]
refactoring: replace bool return type with RAII
This changes return type of bus path resolving to shared_ptr<const char> from bool.
This is sufficient to carry all the needed information, and allows
removing of explicit free()s and gotos.
Change-Id: Ic05a734aea49439182fca4ea912086213a6cf91a
Adrian Szyndela [Fri, 29 Mar 2019 14:15:41 +0000 (15:15 +0100)]
refactoring: use string_ref for extracting bus_owner
Change-Id: I4009d4bf06ba09c3e8177c8ffbb0dec6a1d05000
Adrian Szyndela [Fri, 22 Mar 2019 14:05:17 +0000 (15:05 +0100)]
refactoring: remove not needed types
Change-Id: Iff52dbdab0e4b4b45c52d971beb0934cb22044a7
Adrian Szyndela [Thu, 21 Mar 2019 09:41:37 +0000 (10:41 +0100)]
use call_once for initialization
Change-Id: I5dae342a7ba7083903d1fa30a4440700629b6945
Adrian Szyndela [Fri, 29 Mar 2019 13:12:39 +0000 (14:12 +0100)]
API: documentation update
Change-Id: I002b6ce0869677f3a522162d8a68bda536ddbc9e
Adrian Szyndela [Fri, 29 Mar 2019 12:37:06 +0000 (13:37 +0100)]
API: mark dbuspolicy1_init as deprecated
Change-Id: I6ca78933941a57018130bcc67732ff07550fa0d6
Adrian Szyndela [Thu, 21 Mar 2019 08:23:00 +0000 (09:23 +0100)]
cpp-ify libdbuspolicy1.c
Change-Id: I6f0ef0cb5bf558500020ee715e301f708fffb04d
Adrian Szyndela [Wed, 20 Mar 2019 15:04:30 +0000 (16:04 +0100)]
extract kdbus operations to separate file
Change-Id: Ia33922128de417e5457a0daf5f9757a6f130cfa3
Adrian Szyndela [Wed, 20 Mar 2019 13:43:26 +0000 (14:43 +0100)]
simplify string duplication
Change-Id: Ie228964fcabf0f3fea8225e80ed2cdf82d12119d
Adrian Szyndela [Wed, 20 Mar 2019 13:27:01 +0000 (14:27 +0100)]
kdbus: simplify handling names
Change-Id: I4330f299a7bcf1b2325205ac2dd6b54526a2b8c1
Adrian Szyndela [Wed, 20 Mar 2019 13:05:10 +0000 (14:05 +0100)]
simplify freeing kdbus structs
Change-Id: I483b64423c5beddb62254aebb9d8f3e4ea987c35
sanghyeok.oh [Thu, 28 Mar 2019 06:18:06 +0000 (15:18 +0900)]
serialization: printer: check initialization status
Change-Id: I9a4885a2224402ffac305be3425b48a8e7074153
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
sanghyeok.oh [Thu, 28 Mar 2019 06:11:16 +0000 (15:11 +0900)]
serialization: check max size of serialized file
Change-Id: Ie2e63ff30e7cadf4867cc4c10e1c9e187d408566
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
Mateusz Moscicki [Tue, 19 Mar 2019 13:25:04 +0000 (14:25 +0100)]
Add libdbuspolicy-serializer as requirement
We need dbuspolicyserializer to serialize D-Bus policy configuration
during building the image
Change-Id: Id6ab6331930404553b1306968b85e5a66a289cad
sanghyeok.oh [Mon, 18 Mar 2019 23:52:44 +0000 (08:52 +0900)]
svace fix
Change-Id: I91c4d7f3d65acc2f9c5b9eea9ecdce5663b6eb96
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
Adrian Szyndela [Fri, 15 Mar 2019 14:21:58 +0000 (15:21 +0100)]
internal: use strerror_r instead of strerror
strerror() is thread-unsafe. This replaces usage of strerror()
with usage of strerror_r().
Change-Id: I80d1888c1ec24584c57c68a7b2531084f616342f
Adrian Szyndela [Thu, 14 Mar 2019 09:59:05 +0000 (10:59 +0100)]
serializer: set output name to .serialized
By default libdbuspolicy may expect serialized policy file
in default location, with XML policy file name modified
by adding .serialized suffix.
This changes serializer default behavior to create output files
with the same naming rules instead of using result.dat.
Of course, if a user specifies its own specific output file name,
the serializer still creates output file with the given name.
Change-Id: I5ca0699027013e23fe2d83c5abd80bdebc165b1c
Adrian Szyndela [Wed, 13 Mar 2019 15:22:39 +0000 (16:22 +0100)]
svace: add noexcept to MatchItemSR::addNames
SVACE complains about non-catched out_of_range exception from
boost::string_ref::substr() called by MatchItemSR::addNames().
The code is written in such a way that no exceptions should be trown.
To indicate this, and possibly make SVACE happy, this adds
'noexcept' keyword to addNames().
Change-Id: I5b31cfd201af2267e08587118d2dd54da225d945
Adrian Szyndela [Wed, 13 Mar 2019 14:54:02 +0000 (15:54 +0100)]
Add license headers
Change-Id: I90a104cb4452a7f6e616e90f84bf417d7e05fe6e
Adrian Szyndela [Wed, 13 Mar 2019 14:53:25 +0000 (15:53 +0100)]
spec: enable parallel building
Change-Id: Ia2d1ea4534bf76aab5ba6cd116d79657d7117165
Adrian Szyndela [Mon, 11 Mar 2019 09:54:03 +0000 (10:54 +0100)]
add support for sharing fd and pool with clients
This adds two new API functions, which can be used for sharing
kdbus fd and kdbus pool with the library clients.
Until now, the library created its own connection each time
it was initialized, effectively allocating 1MB of memory
only for getting small responses to one of kdbus ioctls.
This kind of activity may be performed on any usable kdbus
connection. Thus, the idea of sharing existing connections
with libdbuspolicy.
As it is a change of interface (two new API functions), the version
of library and package has been bumped up.
Change-Id: I7bae7a60a386f1c3bc35c88528c9f2baa2c57e34
Mateusz Moscicki [Fri, 8 Mar 2019 09:50:30 +0000 (10:50 +0100)]
refactoring: change logError parameter type
Change-Id: I4fcaf121159d9a503a44e69d281bfd1147b8c5d1
Mateusz Moscicki [Fri, 8 Mar 2019 08:38:59 +0000 (09:38 +0100)]
Check if config_name is NULL or empty
config_name must be provided and case in which it is empty or is NULL is
a programmer error
Change-Id: I21274c8331edd118d672802f06f7bec7ac8ddde8
Adrian Szyndela [Thu, 7 Mar 2019 13:52:54 +0000 (14:52 +0100)]
refactoring: simplify StorageBackendXMLImpl
This simplifies StorageBackendXMLImpl by putting members
into a tuple, and using type_lists to select correct
elements of tuple without any need for type helpers.
Change-Id: Ia93fb9bab03613cebade82f1daa29181b7f178ee
Mateusz Moscicki [Thu, 7 Mar 2019 11:22:36 +0000 (12:22 +0100)]
tests: add -v (verify) command line parameter
Change-Id: Iaf03cab80eecc12839610121786abfb3a1d102c9
Adrian Szyndela [Thu, 7 Mar 2019 11:12:55 +0000 (12:12 +0100)]
Add warning when serialized file is missing
Change-Id: I604b94cad042a5e65275705f7ca6a88b9fbaa9fb
Adrian Szyndela [Thu, 7 Mar 2019 10:44:53 +0000 (11:44 +0100)]
Add design documentation
Change-Id: I123ed895c624fe712d4bd3f6da8f72c820e3a87f
Adrian Szyndela [Thu, 7 Mar 2019 10:34:54 +0000 (11:34 +0100)]
refactoring: change string to ref-to-string in own tree
This changes std::string in construction of TreeNode to reference-to-string
to avoid additional copy of the string.
Change-Id: I49ac9d8e83f8691c022c9113d427bc60c7463902
Adrian Szyndela [Thu, 7 Mar 2019 10:06:55 +0000 (11:06 +0100)]
refactoring: remove unused code
This removes code which is unused after switching backend
from StorageBackendXML to StorageBackendSerialized.
Change-Id: I2326b24f06c7eae050e190e15d8f1c4740a4d29e
Mateusz Moscicki [Thu, 7 Mar 2019 08:17:29 +0000 (09:17 +0100)]
refactoring: remove unused parameters and "using namespace std"
Change-Id: I886c7dfd075fce52bfa5a8d1e7bf6d9aeb301ec9
Adrian Szyndela [Wed, 6 Mar 2019 13:30:30 +0000 (14:30 +0100)]
serialization: switch backend to serialized
Change-Id: I87bf5d7461c168ceb6c2dda034f153060bfe39ee
Adrian Szyndela [Wed, 6 Mar 2019 11:37:50 +0000 (12:37 +0100)]
serialization: add missing method to serialized storage
Change-Id: Ieb56be3dd3f303dca7c851c02757fe6ab5eb64ae
Adrian Szyndela [Tue, 5 Mar 2019 11:37:26 +0000 (12:37 +0100)]
refactoring: merge NaivePolicyDb to NaivePolicyChecker
NaivePolicyDb's role was recently limited to management of group maps,
and passing requests to a backend.
This removes NaivePolicyDb by moving management of group maps to
NaivePolicyChecker and using the backend directly.
Change-Id: Iabbb790c7e18716bb0b99a178e7a26252dcfc41a
Adrian Szyndela [Tue, 5 Mar 2019 10:29:11 +0000 (11:29 +0100)]
refactoring: make two checkers for two buses
This changes NaivePolicyChecker to contain only one database
per object. Thus, we need to have two NaivePolicyCheckers.
It changes relation between NaivePolicyChecker and NaivePolicyDb to
1:1 relation. It will help with removal of NaivePolicyDb.
After this, each bus (session and system) has its own, dedicated checker.
Change-Id: I7b07db0803b001e5a591a090d259666de2f7074b
Mateusz Moscicki [Wed, 6 Mar 2019 10:10:23 +0000 (11:10 +0100)]
Add test to check performance of loading config files
Change-Id: I6354bc17befa330f1b63efc792ab951a9c0ebe39
Mateusz Moscicki [Tue, 5 Mar 2019 14:48:45 +0000 (15:48 +0100)]
Improve getDecisionItem() and match() performance
Change-Id: I117a1d496cb709fc63958e0d826725fb01597daa
Mateusz Moscicki [Tue, 5 Mar 2019 11:14:19 +0000 (12:14 +0100)]
Add flatbuffers vs xml performance test
Change-Id: I0dfc715e8f011cec6e38040914290a79d63d01f3
Mateusz Moscicki [Mon, 4 Mar 2019 14:03:15 +0000 (15:03 +0100)]
Init the logger to read settings from environment variables
Change-Id: I985325bc3d2ee2d589b8c467f6d8d8e92ceb31b5
Mateusz Moscicki [Thu, 28 Feb 2019 13:48:49 +0000 (14:48 +0100)]
serialization: add getDecisionItem tests
Change-Id: Ia97e38b09a410ed8fdf94465ae4af556b646d31b
Mateusz Moscicki [Mon, 4 Mar 2019 09:35:44 +0000 (10:35 +0100)]
Fix flatbuffers reverse_iterator
Change-Id: I77233a416d76198175859c19adccdb41b5ab2ea8
Adrian Szyndela [Fri, 1 Mar 2019 12:46:40 +0000 (13:46 +0100)]
refactoring: hide XmlParser
This disconnects XmlParser from __internal_init() and hides it
behind StorageBackendXML. This way XmlParser is local, non static and
non global anymore, a bit more tightly connected to StorageBackendXML,
but more loosely connected to other components.
Change-Id: I712129dfc9f8da357e7a7d66411aaea3590172e7
Adrian Szyndela [Fri, 1 Mar 2019 12:32:30 +0000 (13:32 +0100)]
refactoring: simplify strings management in XmlParser
File name is passed from external API by const char *.
This (at least partially) eliminates construction of std::string where
it is not needed.
Change-Id: I05375820fe2996cb4f95af5be8bbbab5ecd87fc4
Adrian Szyndela [Fri, 1 Mar 2019 12:14:25 +0000 (13:14 +0100)]
refactoring: make assert more informative
Function parseAssert() showed only that an error occurred.
A macro instead shows also the error condition and line number.
Change-Id: Ibd686286c58b657fd578f92bd4328072aa892933
Adrian Szyndela [Mon, 25 Feb 2019 13:42:33 +0000 (14:42 +0100)]
serialization: extract xml-based db implementation
Change-Id: I84ef422a5451192fe18762c16bc14aa7ed4b9d02
Adrian Szyndela [Mon, 25 Feb 2019 13:04:45 +0000 (14:04 +0100)]
fix uid/gid wording
mapGroups are maps that tie uid with vector of gids. This fixes
misleading wording.
Change-Id: I982e8b474a25da189e16b8871f023e9110787b64
Adrian Szyndela [Fri, 22 Feb 2019 15:49:18 +0000 (16:49 +0100)]
serialization: extract mapGroups from pimpl of DB
Previously, mapGroups were incorporated into PolicySets in pimpl
NaivePolicyDbImpl. But they are in fact not a part of policies.
They are gathered from the system and only filtered through policy data.
This commit extracts mapGroups from pimpl back to NaivePolicyDb,
with some required changes to work with current interfaces, and also with
some not required, but fun changes.
The extraction will allow switching pimpl in the future, keeping the same
groups logic for any pimpl.
Change-Id: I3e1dace93bebb7e19c94cacd7fbf7ceb426d315e
Adrian Szyndela [Fri, 22 Feb 2019 09:51:06 +0000 (10:51 +0100)]
refactoring: PolicyAccess uses common policy base
PolicyAccess works in a very similar way to PolicySend and PolicyReceive,
but it has its own class.
This commit makes common base for all three classes.
Change-Id: I63c89f23a6f65b6e5107c9a17a950b99a6664111
Adrian Szyndela [Thu, 21 Feb 2019 15:03:35 +0000 (16:03 +0100)]
serialization: reworked init for serialized backend
Change-Id: Ie72cf3444dfc7bf446bb6035df6a57d04ae0c180
Adrian Szyndela [Thu, 21 Feb 2019 11:00:33 +0000 (12:00 +0100)]
serialization: implement matching
Change-Id: I2d94b5475939e4ccea92def362fe6cc0b1ec98cf
Adrian Szyndela [Thu, 21 Feb 2019 10:56:44 +0000 (11:56 +0100)]
refactoring: reworked matching
This changes matching.
Previously Items had match() function with MatchItems as params.
Now, MatchItems have generic match() functions for use with both types
of Items (XML-based and serialized).
Therefore, the matching code is the same for both.
Change-Id: I68a90bd3b787c66d72fa30d5fc25e16b0634daa2
Mateusz Moscicki [Tue, 19 Feb 2019 09:42:36 +0000 (10:42 +0100)]
serializer: add tests
Change-Id: Ibd782e92c88f63caa290a33b13a890f54071619b
Adrian Szyndela [Wed, 20 Feb 2019 13:35:07 +0000 (14:35 +0100)]
serialization: add printing tool
This adds dbuspolicyprinter, which takes serialized file as input
and prints it in the same fashion as libdbuspolicy does with XML policy.
Change-Id: I20c8d5af6c97975251cf48bcf94649ef668b9abf
Adrian Szyndela [Wed, 20 Feb 2019 13:34:32 +0000 (14:34 +0100)]
serialization: add storage backend
Change-Id: I1830ff322a8c14557d46f8f353a7b3d34a43d187
Adrian Szyndela [Wed, 20 Feb 2019 09:56:29 +0000 (10:56 +0100)]
serialization: rework printing content
We want to print content from both serialized and XML.
This makes a common base for printing content in the similar way.
Change-Id: If010b8adb1e39e6ada7b08b7949a0b446470160a
Mateusz Moscicki [Fri, 8 Feb 2019 11:44:32 +0000 (12:44 +0100)]
serializer: add dbuspolicyserializer do the spec file
Change-Id: I25616008fd2d4bb43c084deaea79fae0adda0db4
Mateusz Moscicki [Fri, 8 Feb 2019 11:44:02 +0000 (12:44 +0100)]
serialization: add dbuspolicyserializer to Makefile
Change-Id: I9b75dcae61188665f01611f124459f0ec44196cb
Mateusz Moscicki [Thu, 14 Feb 2019 07:04:05 +0000 (08:04 +0100)]
serialization: add serialization class
Change-Id: I8eb5d24012b24830c1f8e671805eb091b1d2c9a1
Mateusz Moscicki [Fri, 8 Feb 2019 11:46:05 +0000 (12:46 +0100)]
serializer: add schema file
Change-Id: I35ab9247800fa2a00d22fb7f44a3390ff4273e3d
Mateusz Moscicki [Fri, 8 Feb 2019 11:45:34 +0000 (12:45 +0100)]
serialization: add Flatbuffers
Change-Id: Iafb4e0840c4b80e894af53c0c50b89cecd0f773c
Mateusz Moscicki [Thu, 14 Feb 2019 07:58:42 +0000 (08:58 +0100)]
serialization: move TreeNode definition and add getters
Change-Id: I40c7bc6c59f29bfc6b35930893aa54eacbab6fb4
Adrian Szyndela [Wed, 13 Feb 2019 14:10:14 +0000 (15:10 +0100)]
serialization: add interface for getting policies
Serialization needs access to stored structures.
This introduces access functions on Db->Policy level.
Change-Id: I46b21886c6026a7f6de4741ba20f3a0f228a6cb1
Adrian Szyndela [Wed, 13 Feb 2019 11:24:49 +0000 (12:24 +0100)]
refactoring: extract Policy containers
Preparing for serialization.
Serialization needs to iterate over db structures. It needs a bit of insight
into the actual types stored.
This extracts Policy container classes from naive_policy_db.cpp.
Change-Id: I51d1ce5c63eef28c58423b0e64ff9f5a2bc5d09c
Hyotaek Shim [Mon, 25 Feb 2019 02:38:51 +0000 (11:38 +0900)]
Apply the highest priority to constructors
__attribute__((constructor(101)))
Change-Id: Ic08c64eb9bae900c6be90c21074e64804e2fabc7
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
Adrian Szyndela [Thu, 14 Feb 2019 13:54:32 +0000 (14:54 +0100)]
refactoring: making bus type a type - part 2
This makes bus type a type in one more function in addition to commit 7b3249.
Change-Id: I22a119ffc09b3e111e6409006baba1a05d857a50
Adrian Szyndela [Thu, 14 Feb 2019 12:46:05 +0000 (13:46 +0100)]
refactoring: simplify name string handling in Own
ItemOwn stores names as std::string, but it gives them as const char *.
Then, it is used again as std::string.
This commit removes conversions, by passing const references to std::string
everywhere.
Change-Id: I0d606cecd554e8619848e271e4e1aa48f5dae453
Adrian Szyndela [Thu, 14 Feb 2019 12:00:12 +0000 (13:00 +0100)]
refactoring: simplify privilege string handling
DecisionItem::__privilege is std::string, but it is converted to const char *
and then converted again to std::string.
This removes conversions, passing const reference to std::string and converting
only when necessary.
Change-Id: I86e9a0e91f4c323d743fac6f88349aff37872998
Adrian Szyndela [Wed, 13 Feb 2019 13:19:07 +0000 (14:19 +0100)]
tests: bring back compile-time tests
It appears one-liner 'make all-tests check' does not work the same way
as two lines:
make all-tests
make check
This brings back two lines, because with one line 'make check' is
not executed.
Change-Id: I3f04b72b4421aab74dcc1a70f4146a329db87bfd
Adrian Szyndela [Wed, 13 Feb 2019 09:44:06 +0000 (10:44 +0100)]
refactoring: remove unneeded template param
Since Items got typedef match_type, they are explicitly
tied to their Match counterparts. Therefore, we no longer need
to tie both type categories explicitly in other places.
Change-Id: I63f048787ae857c97b0087ccf091f80401f98ed6
Adrian Szyndela [Wed, 13 Feb 2019 09:24:20 +0000 (10:24 +0100)]
refactoring: remove exec rights from the source code
Change-Id: I99e1c4ada233637ea0810945f866f468ac3dafff
Adrian Szyndela [Tue, 12 Feb 2019 14:20:01 +0000 (15:20 +0100)]
refactoring: move "parse" methods to the "parser"
Change-Id: Ibd543e118e7546d409f1441e4f7de99b964b4d8f
Adrian Szyndela [Tue, 12 Feb 2019 12:12:07 +0000 (13:12 +0100)]
refactoring: remove unnecessary params in parseRule
Removed params policy_type and policy_type_value from
DbAdapter::parsePolicyAttribute() as they are used once and
are references to policy_type and policy_type_value members.
Change-Id: I59850b91fe739cd275d122a3df83ffb988c2cd74
Adrian Szyndela [Thu, 7 Feb 2019 10:43:49 +0000 (11:43 +0100)]
refactoring: templatize addItem
Change-Id: I40429772c49a74e5d7b3420c72882e3bd8c0a12f
Adrian Szyndela [Wed, 6 Feb 2019 10:28:07 +0000 (11:28 +0100)]
refactoring: make bus type a type instead of bool
Change-Id: Idadba8b5d9aa5cb7b801be89b08699c53767905f
Adrian Szyndela [Fri, 1 Feb 2019 08:27:34 +0000 (09:27 +0100)]
refactoring: remove duplicate db access method
This removes duplicated db access method from naive_policy_checker.
Additionally, friend declaration is removed for DbAdapter,
the access method made public, and code that uses removed method is reworked.
Change-Id: Ifac510e13ba0001390c25d5584c7500c89d665be
Adrian Szyndela [Wed, 6 Feb 2019 07:39:37 +0000 (08:39 +0100)]
refactoring: make pimpl in naive_policy_db
naive_policy_db got a bit bloated, including several internal classes etc.
To clean things up this introduces impl pattern, moving all the private
stuff into implementation file, leaving only public nonvirtual interface.
Change-Id: I32dd22bd219826994a2f52baa12aa64649ac0af2
Adrian Szyndela [Tue, 5 Feb 2019 16:27:43 +0000 (17:27 +0100)]
refactoring: remove user and group from access PolicySet
Additionally, this adds specialized method for getting different
policies to get rid of artificial parameterization with PolicyType
and PolicyTypeValue.
Change-Id: Ib22191aafc8d2823cb52af9b5e61ccf31d207acf