Age | Commit message (Collapse) | Author | Files | Lines |
|
When API have mutual dependencies, leading to
loops in dependecies, broadcasting an event
never ends because of the loop (see SPEC-2625).
To avoid that weird flood of events, a unic
identifier (UUID) is attached to broadcasted
event and a tiny memory records previously
broadcasted events to avoid re-sending an
already sent event.
The size of the memory can be set using the
macro variable EVENT_BROADCAST_MEMORY_COUNT
whose default value is 8. It can be reduced
to 0.
An other mecanism is added to limit the count
of hops that a broadcasted event can do. That
count can be set using the macro variable
EVENT_BROADCAST_HOP_MAX whose default value
is 10.
Bug-AGL: SPEC-2625
Change-Id: I29550a8a5c8f5e2ffb20edc3330357a1e870c0e2
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Solving the bug SPEC-2625 needs to rework the broadcasting
of events. It appeared that the numerical event identifier
passed for broadcast wasn't used by called function except
for hooking. Suppressing it introduces a clear distinction
between the push and the broadcast paths.
The file afb-ws-json1 is changed to avoid casting of
functions.
Bug-AGL: SPEC-2625
Change-Id: I9fe75adc8086812b21b70ce28baffcf77bd5e1cf
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The compiling option __FORTIFY_SOURCE=2 introduced
a false ***buffer overflow*** detection when the
flexible array 'pattern' was initilized in globset.
The compiler is only complaining when the array is
in a struct that is in a struct like
struct { ...; struct { ...; char name[1]; }}
To avoid these false detections, it is enougth
to ellipsese the dimension of the array. Seems
to be the now standard way of declaring flexible
arrays when it was before an extension. So now:
struct { ...; struct { ...; char name[]; }}
works even when __FORTIFY_SOURCE=2.
Bug-AGL: SPEC-2292
Change-Id: I4b4a5df505a5357f92b9ab1657175911198ca582
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Idbadb9b7b801cb61d527addb5d3137aeb4cf6311
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
- The new version of 'systemd_get_event_loop' dont depends
anymore on jobs but returns a unique systemd event loop
for any threads.
- The event loop of jobs now use system.h function instead
of the opposite.
- The function 'jobs_get_sd_event' is removed
- The function 'jobs_acquire_event_manager' is introduced.
It is designed to that the current thread can manipulate
the single event manager
Change-Id: I31fe48dfe0f2cfa4d468e49338d36fea6e7e8081
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Files "afb-systemd.[ch]" are renamed "systemd.[ch]"
and their functions "afb_systemd_*" are renamed "systemd_*"
Change-Id: I8362a2ca8b71945b54c6ab9a7ead51d9c50bc8e2
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I3aaa92b2bfb01699ee8ae609272e93032b6f1a9d
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I7100961ef8f8a75d623a0667178f191dd4cfb9d3
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
By default json-c escapes the slashes. This is almost ugly
and unuseful. But the resolution (with JSON_C_TO_STRING_NOSLASHESCAPE)
was introduced lately by json-c. Integrate it as much as possible.
Change-Id: Ia9c4bee78dc11df1ee9640cb04311991bd860e43
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I439e891d92fb34087755e68102fda97c43b5b786
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Allows to compile all files even if it isn't
required to simplify the build process.
Change-Id: Ie09e99794aa9f57b179c7e4cfa882859958beb7a
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This commit introduces the bindings v3 API for bindings.
The documentation has still to be improved and will come
very soon.
Change-Id: I8f9007370e29f671fdfd1da87fff7372a17db7af
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: If9d7e7728df086fbb7214f1de5cbec35cd2f1d9b
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This change prepares the possibilty to remove the dependency
to systemd/libsystemd.
Change-Id: Ife4181d6c7195230a11a32e527b8973af6a096e1
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ic1d5cb208c636d3261e1a96c4a81b488cb84a60e
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The DBUS API actually doesn't support the subcall feature.
Until the subcall is implemented, it is better to emit an error
than to fall back to the default behaviour (calling in the context
of the service).
Change-Id: Ibf5f3524995692a509d2d648d61e9ed0f874d7c1
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I1fa3cf776110f67ad1b18c4c83f3a1707692ae8b
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I9a86c6314f871334231e50f9cea60b54aed434b9
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The deprecation is made in favor of
afb_eventid but this can change later
in favor of afb_evt_evtid.
Change-Id: Ic16cb25dbd97cb1e8d26b3c54b159d46bbf82671
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This new name is better suited because it is not an event
but the id of an event.
This also prepares the new api with pointers.
Change-Id: I7be88bb36cf72bf7df70793a77452e405130b951
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The function is now replaced by the function afb_event_unref.
In the same time, the function afb_event_addref is made available.
Change-Id: I9aa30e80e64e82f3b16ab359982337771b287185
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ie4668c2dadbdfbe79bac2c27a1b188edecbcf847
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Iafbbff8387bb1f8577cb7aeb6e8ed4b14ab1f4a4
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ie175ec1e508c7bd3bcdc25d7e0b26e7a9da3fafb
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The previous handling of noconcurrency suffered of
inefficiency, was complicated and dedicated to
api-so-v2.
Change-Id: I32aea9187663ac533819496e9dc9b944db0d89ec
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I231e2506f58227fb8d192df042539b1551a765c5
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This now factorizes code needed to asprintf
the arguments in an allocated string.
But the most interesting effect is the ability
to handle va_list of arguments. It can be used
for library of tools.
Change-Id: I4ba74c9984786f07abe0c7e53d7ef79dca863735
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This will be used at the end for debugging
facilities.
Change-Id: I75e3345667e1f58143c77a885e166375680ca194
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I83473a69d8af4d39d1ef7eba9c324a6bbb0364fc
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Reduce the count of memory read
Change-Id: Ie4dfa4bd30d6485be91961196294c43ffbd3b2a9
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Credentials are computed if possible.
Change-Id: I36c7e95a35431b27109c26b51eab690d685862e1
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I9c76ab3043506778640cb379e8f006674f8a8fcf
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The new interface has increased functionnality,
it allows to set debug flags by API.
Change-Id: Ibd35fb02ed645e22cac8e7021b37b96e07e79877
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I5840609f4300ade98412e8527ac5ce1f1e8c0c59
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This switch allows to work on a common base for
the requests.
Change-Id: I94e7fdda80c1966af399309334c41c7c8c8259dc
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I16bfa2594f8de4babcc0d3cc1a62e7d0856d2479
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
For historical reasons, the call to apis was
passing the length of the api and the length
of the verb. The reason was to avoid a copy
of strings. But the copy occured only for HTTP
requests. Having this implementation is of
small interest and compromise future changes.
This patch simplify things.
Change-Id: I8157724c6c721b6797cd0eab52b07e1b8d6eb5f8
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Make names looking like other names
Change-Id: I63ce3d8a3d84193eca9d517cecb1888d630a9b2d
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Id85c4eb4e36a05b61346004ba95daa19faf5074f
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I6d63d70d30f02422e5f9904722e89f92358186b9
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ie7ebccb02b42e91457df3bdbf2a6f037b248400e
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ic9e118df2bede1fefbb591f8ae7887266b7324ca
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I0d58bed66ebc9eaea63c0863351d03cf458e4198
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Adds the ability for a service to initiate calls
to other services and to receive events in its own
context.
Change-Id: I5ff149a0231e551e9ce8a8de9658cb492a38cae1
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I5f400a92165bb380ec5f703dd8ca567e90aebca2
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The new request call 'afb_req_subcall' allows
a binding to call the method of an other binding.
Change-Id: I8538185be7a1663153a25db2bc940f9e2bdedb1a
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This new version allows to subscribe a client for
an event.
The event should first be created for the API
(the API's prefix is added) using 'afb_daemon_make_event'.
After that, plugins can subscribe or unsubscribe their
clients (identified through requests) to the events that
it generates. See 'afb_req_subscribe' and 'afb_req_unsubscribe'.
Events created by 'afb_daemon_make_event' can be widely
broadcasted using 'afb_event_broadcast' or pushed only to
suscribers using 'afb_event_push'.
Events can be destroyed using 'afb_event_drop'.
Change-Id: I7c0bed5e625c2052dcd81c6bfe960def1fa032f3
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ieb839f287593240aac4d784483ff4c6e6cb57d84
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I3de30aeb90a41ed8ee63ec1e19c6032440d65574
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|