Commit Graph
311 Commits
Author SHA1 Message Date
alivenetsandStanislav Angelovic 0f2362d8c3 feat: add support for session bus connection at custom address (#273)
* Add methods to initiate custom session bus connection

The new function helper `createSessionBusConnectionWithAddress` allows to create connection to session bus with custom address.

Signed-off-by: Alexander Livenets <a.livenets@gmail.com>

* feat: add support for session bus connection at custom address

Co-authored-by: Stanislav Angelovic <stanislav.angelovic@siemens.com>
2022-08-08 13:54:09 +02:00
Stanislav Angelovic e07c1f3981 chore: update doxygen header info 2022-07-05 18:10:05 +02:00
Stanislav Angelovic 58426966f4 feat: add CMake variable for extra libsystemd config options 2022-06-27 15:01:06 +02:00
Stanislav Angelovic 4e105081c9 fix: remove executable flag from source files 2022-06-27 12:17:18 +02:00
Stanislav Angelovic 5ec6027d5f feat: add support for match rules 2022-06-27 12:14:57 +02:00
Stanislav Angelovic d864e1dfa4 refactor: rename dont_request_slot tag to floating_slot 2022-06-27 12:05:06 +02:00
Stanislav Angelovic b7f3d7c876 refactor: little fixes and reorganizations around Connection class 2022-06-22 18:12:42 +02:00
Stanislav Angelovic 2a4c241303 docs: add more info on D-Bus security policy file 2022-06-22 18:12:13 +02:00
Michael BinzandMichael Binz 5e933c3f17 Detects missing type after array declaration. Fixes #253. (#255)
Co-authored-by: Michael Binz <michael.binz@daimler.com>
2022-06-19 23:02:54 +02:00
Sergey Bobrenok b5aee6d019 docs: add information about Buildroot package (#252) 2022-06-07 08:45:34 +02:00
Michal Hučko 5caea3b72b fix: invalid assert on event fd (#243) 2022-02-13 18:48:50 +01:00
Stanislav Angelovič b7a9c63ff0 refactor: add validity checks for names and paths (#242) 2022-02-11 21:53:37 +01:00
Stanislav Angelovic 7f437a6e06 fix(tests): printer for std::chrono in googletest v1.11.0 2022-02-09 11:43:12 +01:00
Benjamin Kaufmann f492472e9f Enable move for ObjectPath and Signature.
* Since ObjectPath and Signature have a user-declared copy-ctor and copy
  assignment operator the implicit declaration of corresponding move
  operations is disabled. Explicitly add defaulted versions so that
  move operations actually move instead of copy.

* See: https://github.com/Kistler-Group/sdbus-cpp/issues/230
2022-01-11 19:02:37 +01:00
Benjamin Kaufmann f673e57a47 Fix potential UB in creation of sdbus::Error.
See https://github.com/Kistler-Group/sdbus-cpp/issues/231
2022-01-11 19:01:22 +01:00
Stanislav Angelovic bca8e81037 build: version 1.1.0 v1.1.0 2021-12-22 13:17:31 +01:00
Stanislav Angelovic 33ff69ecd2 chore: remove unnecessary googletest CMake file 2021-12-22 13:10:30 +01:00
Stanislav Angelovic b8eb0e8ceb fix: minor fixes for async timeout handling 2021-12-21 13:52:14 +01:00
Stanislav Angelovic 23fdd0ce8f fix: use non-mutating find in signal unregistration 2021-12-20 10:05:24 +01:00
bb0f3f0242 Fix #88: Timeout handling. (#91)
fix timeout handling

* Despite what is documented in sd_bus_get_timeout(3), the timeout
  returned is actually an absolute time point of Linux's CLOCK_MONOTONIC
  clock. Hence, we first have to subtract the current time from the
  timeout in order to get a relative time that can be passed to poll.

* For async call timeouts to reliably work, we need a way to notify the
  event loop of a connection that is currently blocked waiting in poll.
  I.e. assume the event loop thread entered poll with a timeout set to
  T1. Afterwards, the main thread starts an async call C with a timeout
  T2 < T1. In order for C to be canceled after its timeout T1 has
  elapsed, we have to be able to notify the event loop so that it can
  update its poll data.

Co-authored-by: Urs Ritzmann <ursritzmann@protonmail.ch>
Co-authored-by: Lukasz Marcul <lukasz.marcul@onemeter.com>
2021-12-20 10:00:29 +01:00
Stanislav Angelovic 0b8f2d9752 fix: use correct path to README file for CPack 2021-12-15 12:46:05 +01:00
Stanislav Angelovic 9b8a15339e test: delete forgotten file 2021-12-14 21:59:46 +01:00
Stanislav Angelovic ef4d9bcba2 chore: add note on libsystemd-dev when libsystemd pkgconfig file is not found 2021-12-14 21:35:11 +01:00
Osama Ghanem 41d33117cc Fix #214: Add means to unregister signal handler 2021-12-14 16:48:50 +01:00
Lukasz Marcul 442670ec18 codegen: Support chrono literal timeout by ProxyGenerator
Allow to use human readable chrono literals to specify method call
timeout. The change is backward compatbile - if no unit is provided,
the fallback is "us".

Example:
<annotation name="org.freedesktop.DBus.Method.Timeout" value="500ms"/>
2021-12-14 16:47:01 +01:00
Marcel Hellwig b01db13ff7 fix method name in example 2021-12-01 16:18:58 +01:00
Stanislav Angelovič dc0f487751 Reword a few tutorial statements slightly 2021-11-22 14:27:28 +01:00
Urs Ritzmann 55310659e8 googletest-download: replace master with main 2021-11-16 17:47:25 +01:00
Urs Ritzmann 65782bbf43 tools version 1.0.0 v1.0.0 2021-10-25 09:02:37 +02:00
Urs Ritzmann 125cb1616c version 1.0.0 2021-10-25 09:02:37 +02:00
Urs Ritzmann f025b92d76 ci: pack only the g++ build 2021-10-25 09:00:30 +02:00
Urs Ritzmann 33aa5768a5 ci: create and upload deb package 2021-10-25 09:00:30 +02:00
Urs Ritzmann 0703324015 ci: update make commands to cmake 2021-10-25 09:00:30 +02:00
Urs Ritzmann f05f63cd48 cpack: remove test component
If -DBUILD_TESTS=ON, then creating debian packages fails
because dpkg-shlibdeps obiously can't find the sdbus-c++ dependency
for the tests package.

We could disable CPACK_DEBIAN_PACKAGE_SHLIBDEPS for the tests package.
Nevertheless I don't think we want a tests package at all.
2021-10-25 09:00:30 +02:00
riuriuriu de9cd46d8a update ChangeLog: v0.8.4 was never released 2021-10-18 14:16:30 +02:00
riuriuriu ca05b1541f fix non-virtual-dtor warning 2021-10-18 11:58:07 +02:00
Urs Ritzmann 35176c4988 integrationtests: differentiate BUS_NAME from INTERFACE_NAME
Even though they have the same value, they are something fundamentally different.
Therefore it is extremely confusing if the constant INTERFACE_NAME is passed
where actually a well-known BUS_NAME (destination) should go.
2021-10-18 11:58:07 +02:00
Urs Ritzmann a5ecbbfcec add examples for the ObjectManager API 2021-10-18 11:58:07 +02:00
Urs Ritzmann 4e908612ed introduce new ObjectManager API on generated stubs layer
ATTENTION: Breaking Change!
2021-10-18 11:58:07 +02:00
Stanislav Angelovič 1d930f324e update changelog: v0.9.0 v0.9.0 2021-10-15 15:20:46 +02:00
Rolf Lussi a341754533 add dependency to libsytemd-dev to sdbus-c++-dev package 2021-09-23 20:18:14 +02:00
Rolf Lussi 9cb8b89a01 add cpack to build debian packages, split the packages by components 2021-09-23 20:18:14 +02:00
Stanislav Angelovic c422de641a Support Error parameter in signal handlers 2021-09-17 19:25:39 +02:00
Stanislav Angelovic d77bb6b869 Fix potential race condition in Object destruction 2021-09-17 19:03:15 +02:00
Stanislav Angelovič 8320429ef7 chore: add gperf dependency for libsystemd build 2021-09-17 18:31:04 +02:00
Stanislav Angelovič a72e17b932 doc: add gperf dependency for libsystemd 2021-09-17 18:28:41 +02:00
Stanislav Angelovic b4f5c0f46c Catch sdbus-c++ exceptions flying from Proxy callbacks to libsystemd 2021-07-29 12:37:15 +02:00
Stanislav Angelovic 6433b38ed1 Add specific sections for tips and notes in the tutorial 2021-07-22 16:01:42 +02:00
Stanislav Angelovic a95fcf5693 Make resetting loop thread ID exception-safe 2021-07-22 13:48:43 +02:00
David Leeds 022831b8c3 Avoid propagating msg unpack exceptions to event loop
This change addresses conditions where an exception is thrown by the library upon receipt of a malformed message from an external
source, and propagated up to the event loop with no chance of
interception by the application. This issue is only experienced by
proxy convenience APIs, as low-level APIs allow the application to
unpack the message.

Strategy:
1. For malformed signals received by proxies: ignore the signal.
2. For malformed async method responses, translate the unpack
  exception into an sdbus::Error, and pass it to the caller as expected.
2021-07-20 18:39:36 +02:00