summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-04-12fix typoJosé Bollo1-2/+2
Change-Id: I83473a69d8af4d39d1ef7eba9c324a6bbb0364fc Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-12Optimisation of xreqJosé Bollo9-137/+118
Reduce the count of memory read Change-Id: Ie4dfa4bd30d6485be91961196294c43ffbd3b2a9 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-12Add computation of credentialsJosé Bollo6-0/+218
Credentials are computed if possible. Change-Id: I36c7e95a35431b27109c26b51eab690d685862e1 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-12Rename destination as originJosé Bollo1-51/+51
Change-Id: I9c76ab3043506778640cb379e8f006674f8a8fcf Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-11Fix uninitialized variableJosé Bollo1-0/+1
Change-Id: Ia8a7a1471f004933a48797b91c01fd8b53465de0 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-11Refactor stress testJosé Bollo4-76/+93
Stress test now has 2 parts: the server part and the client part. Change-Id: I24e46060a1a710381476157f4fb4e8ad32370a5e Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-11Fix a crash on disconnectionJosé Bollo1-1/+2
Change-Id: Ib3654ac8125b040f8264524e7c821a6559f627cd Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-11Fix a memory leakJosé Bollo1-0/+1
Change-Id: Id47b417f6e5f8bf2322b1de7ed12579de711160f Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-11fix typoJosé Bollo1-1/+1
Change-Id: I7a445c73a9bb6b39c3ba5e19422f5bcc319364fe Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-11Add startup call in command lineJosé Bollo3-1/+110
The option -c (aka --call) allows to specify calls to api/verb at startup. The calls are made sequentially. Change-Id: I7f087dce71480fe288cca355c209a4c8ccf4f4b9 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Make implementation multithreadJosé Bollo4-44/+98
This changes makes many improvement needed for multi-threading: - json object can't be shared across threads because get/set is not protected - event are now multithread compatible Change-Id: Id44b12c68e0fa67042b8ea44939af4edfa76270a Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Enforce flush of incoming dataJosé Bollo1-0/+4
Change-Id: I81deb974460e7f3edbccf132efeac87f873d78dd Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Make HelloWord binding multi-threadJosé Bollo1-0/+13
Handling of event was not compatible with multi threaded. This implmentation solves this by protecting event access with mutexes. Change-Id: Ie52216289000f1ae6352c9dda442dfbda1ebe850 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Refactor of initialisationJosé Bollo1-8/+9
Change-Id: Ie5209f74ea1a65571a3ec54724131f15d22ca35f Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Refactor setting of directoriesJosé Bollo2-9/+8
When not specified, the default directories are now ".". The workdir is relative to the current directory and other directories are relative the the workdir. Change-Id: I52c013e3a3c93b3f984903562cf0c56d990900e6 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Fix typoJosé Bollo1-1/+1
Change-Id: I0077f77984accdd1f07d0e7c1526720f687ec58e Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Isolate interupt managementJosé Bollo1-7/+44
Provision daemon features: - SIGTERM for terminating - SIGHUP for config reload Change-Id: Id45a0b963812105c22ead5a0a2004f3f531a2a65 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Websocket client select if looping or notJosé Bollo3-3/+13
Allows the client to tell websocket module to not loop on messages. Change-Id: Iaa1025ce5442a5659554ba66fcc5869a1e8659b4 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-10Refactor of API interfacesJosé Bollo6-24/+154
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>
2017-04-07Add hooking of daemon interfaceJosé Bollo13-59/+542
Change-Id: I5840609f4300ade98412e8527ac5ce1f1e8c0c59 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-07Improve log messagesJosé Bollo3-33/+61
Add ability to discuss directly with systemd journal. Add report of functions name when logging. Change-Id: Ia7c5836e387b621b47e3700a7abca40bc0e481c8 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-07Finalize hooking of requestsJosé Bollo5-61/+131
Change-Id: I0c03b2c8ce556f1e6987ee5a7ad355ba9e67f142 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-06Reactivate hooking of requestsJosé Bollo6-449/+413
Change-Id: I0fc8429063d99e10344aaadba06480a470b9eb9d Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-06Avoid prompting error on empty lineJosé Bollo1-3/+4
Change-Id: I9da7f17f93f1948da23f6a2304f0718d7bee6464 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-06Improve namesJosé Bollo1-11/+11
Change-Id: Ib7e31b50a725c73e6eaba414c6628524fbcd84f9 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-06Make websocket concurrentJosé Bollo1-7/+31
Stress tests shown that the module wsj1 wasn't ready to concurrency. Change-Id: Ia54196f97e9712adf0920b59b188d570f39a6b4f Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-06Add a script for stressing the daemonJosé Bollo1-0/+76
Change-Id: Ic8c5241339106376daaf91acafca1e4fb0f5f818 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-06Add an easy function for synchronous callsJosé Bollo2-4/+74
The added function, 'jobs_call', allows to call a job with 'group' sequencing and 'timeout' handling synchronously. The difference with 'jobs_enter' is that the function 'jobs_call' assert that the job is terminated when 'callback' returns. Change-Id: I8c01d1cd017787ca0448b03a899305a9069ebb6c Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-06Avoid to stick on event loopJosé Bollo1-1/+10
When working synchronously, waiting continuously to an event can make deadlocks. This commit enforce threads that wait for some job completion to wait for a fixed amount of time. An alternative management with signals should be studied in future. Change-Id: Idcfadc60f8c14d73d7fa32e937c6ea0f552cc09b Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-06Reduce explicitely recursionJosé Bollo2-25/+24
When evaluating permissions, the recursive algorithm is replaced with an algorithm that eliminates the tail recursion. Change-Id: I3298c42fa658498a954f4bf7dedfad87f00ab736 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-05Make daemon interface commonJosé Bollo6-177/+174
For the future, having only one piece of code to handle daemon interface to bindings is an improvement. Change-Id: I806c424eb1a82637d27bc84b921612789907d971 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-05Add permission subsystemJosé Bollo7-0/+757
Change-Id: I0bbbf55832faf6413dd6147174934d0d4dc5277d Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Ensure that subcall_sync use subcallJosé Bollo5-62/+63
The intent is to provide the asynchronous subcall as standard. This is needed for fixing subcall across connections (DBus or WebSocket). Change-Id: Ia046cfa4d0124bfa3ba7eb8e8f936eeafcf09875 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Avoid to count child threadsJosé Bollo1-7/+9
The count of allowed threads must be the real count of threads started. Change-Id: Iaefc9fa4368042d6db45ed3333f9591da027b2f0 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Improve debugging optionsJosé Bollo1-9/+1
Change-Id: I3550a4c2500b98efa985e678217e3d91bc8ca4c6 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Add synchronous subcallsJosé Bollo10-41/+182
Synchronous subcalls are more easy for writing simple applications with sequential logic. Change-Id: I76a0231a64a6db8270014cd2a64284e1b0fc16ec Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Use SIGHUP instead of SIGKILLJosé Bollo1-4/+3
This doesn't enforces anymore the brutal termination. Change-Id: I62445c7cb3692354637906fb1ddda1787c8fb82a Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Launch job at a earlier stepJosé Bollo9-48/+50
Change-Id: I3fcb96e4d748e38eacc4d413a451143dd9b4a10d Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Definitive switch to internal's xreqJosé Bollo11-168/+16
This switch allows to work on a common base for the requests. Change-Id: I94e7fdda80c1966af399309334c41c7c8c8259dc Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Migrates subcalls to use xreqJosé Bollo3-125/+70
Change-Id: If865208bc0c207511d2b11e4cff617005ed01e56 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-04Introduce subcontext for subcallsJosé Bollo2-6/+29
Change-Id: I5460e9c502cee814c59a0ee60c2be001385e7b4a Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-03Switch API D-Bus to xreqJosé Bollo1-110/+68
Change-Id: I16bfa2594f8de4babcc0d3cc1a62e7d0856d2479 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-03Switch API websocket to xreqJosé Bollo1-161/+53
Change-Id: I57600d8dc99bf37f207b126a0e3ab5731ad08ced Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-03Improve interface xreqJosé Bollo2-5/+41
Add missing function for further work Change-Id: I4e2b7a35b45ffb0edb1fd14b52500c9b00fab807 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-03Add notification message for added APIJosé Bollo1-0/+2
Change-Id: I797afeaa0758f2fef854a1ffaee398aff6c9041e Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-04-03Rework the jobsJosé Bollo5-304/+178
Enforce starting jobs with acquiring the calling thread. Removes invoke methods in favour of enter/leave synchronisation. Change-Id: I7086f7f53b919b43ddafd2355316abc0d3516f49 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-03-31Use xreq for servicesJosé Bollo3-59/+50
Change-Id: I05d0ddb36635c01b3d56ae52a08fbb68f3b3a6a9 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-03-31Use xreq for websocketsJosé Bollo4-110/+36
Change-Id: Ia489f863e8be3384fbe8a240f6010f7d5916b72a Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-03-31Factorize common code for handling requestsJosé Bollo16-122/+598
The common code for session handling is shared using struct afb_xreq. At the moment only hreq leverages the new feature. The objective is double: make the work of writing new internal requests more easy and prepare to check permissions. Change-Id: If3ca311d68c2d8c427d1125f31a2704b150c2c94 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-03-31Allow detection of session closureJosé Bollo1-2/+2
In some case it can be good to have a function called when the session closes. This is the case when a binding records an item in the context. With this modification the recorded item can be simply NULL. Change-Id: I5e23f00eb2a6e2639fdeea15f9dea79c7df9dfbb Signed-off-by: José Bollo <jose.bollo@iot.bzh>