Age | Commit message (Collapse) | Author | Files | Lines |
|
Bored to see WARNING: Unhandled request to favicon.ico
Change-Id: I7289b508f93bcd5ac4650ec32670ed0fd291044e
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This enable a binding version 3 to declare
no API. This is used to start a job that will
will run after initialisation.
The tutorial tuto-app1 shows how. Run it with:
afb-daemon --binding tuto-app1.so
A further option could be add to close stdin
even if running in foreground, as it was the
case before.
Change-Id: I2b384d125accb4642eed8e004642ba959326878f
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
For bindings v3, it is possible to have no
explicit default root API.
In that case, the binder creates a fake API
that references the binding itself. That api
isn't callable be it allows to emit messages,
to catch events and to call services (other
apis).
It must be kept to ensure that there is no
further error in the hypothetical case where
it is used.
Bug-AGL: SPEC-1812
Change-Id: I1a6c1e1390411a45521b9a6c1c386dc7807191df
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The C++ compiler is too much strict. It doesn't accept
valid C because fields are in the wrong order or missing.
- afb_verb_t generated structure invert vcbdata and session
- missing provide_class, require_class, require_api in the
afb_binding_v3 generated struct
The signature of the declared function was wrong.
- wrong verb's callback signature void fun(afb_req) instead of
void fun(afb_req_t)
This add the declaration of the (pre)initialization and onevent functions.
- missing init function signation generation, or probably preinit and
onevent (not tested those ones)
Bug-AGL: SPEC-1806
Change-Id: I1abf8a29f831ecc80458edcd3bd094b2108dc227
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The call to 'afb_require_api' in a preinit was forbiden
before binding v3 refactoring. Since v3 it is made possible
by deferring the requirement to the initialisation step.
But this may lead to bad behaviour if someone use the
call to test whether an api exists or not. This commit
introduce a message that could warn a developper raising
that issue.
Change-Id: Icc14c3887d70f73d87da0e664bb0e5e961867b4a
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ie485672d8f66ff32ea20cb0eb313690ba380db4a
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Probably an old copy/paste error in the commit
d45426257d5149c735e33e3055220625a919e7bc
It doesn't affect version EE (Electric Eel).
Bug-AGL: SPEC-1735
Change-Id: Ia1536e141ac12275000196a3218eb62d77b36a06
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
just a typo
Change-Id: I2963c2568cffdc89f577e99f2280da6dcb732b04
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
The use of the generator given by the lib uuid
implies the use of the system call 'getrandom'
without the flag GRND_NONBLOCK. It has a weird
effect on boot because many binders require
the generation of uuid at the same time but
getrandom is subject to starving.
This introduced a tiny pseudo-random generation
of UUID that does not implies the use of 'getrandom'.
Bug-AGL: SPEC-1655
Change-Id: I5131072881d7a53f0edda9e36762985c96a04550
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Exporting API after initialization is a simple technic
to avoid interleaving of incoming foreign calls during
initialisation.
Also a tiny fix in jobs.c and afb-socket.c.
Bug-AGL: SPEC-1724
Change-Id: I59596256481c8afcd88755ec303bf7f881b55c12
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
The binder traps faults by default to recover as much as
possible from unexpected errors.
Developers may need to remove that behaviour to get core file.
This introduces 2 ways to set or remove the trapping of faults:
- the environment variable AFB_TRAP_FAULTS
- the command line option --trap-faults
Both take a boolean value set using on of the following words:
1 yes true on -- enable trapping of faults (the default)
0 no false off -- disable trapping of faults
Bug-AGL: SPEC-1702
Change-Id: I6c6a3b933dbda9922a6079c390a601c533d49e55
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
It may be difficult to retrieve the root directory from bindings
and from process spawn by option --exec.
In the same way, well identifying the workdir might interest
programs or bindings.
So, from now, the environment variables below are set:
- AFB_ROOTDIR: identify the rootdir as set by --rootdir
and in the context of AGL it will be the widget directory
- AFB_WORKDIR: identify the workdir as set by --workdir
To avoid any confusion, the function realpath is used to export
absolute path names.
Bug-AGL: SPEC-1694
Change-Id: Id272e009ca975e28aaab8b14fa2a98fbd2216e73
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ic9d1cc44ef1bbf6db4afe8eb7016b05f4cddb9a4
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
When sd_event_prepare returns an error there is currently
no way to restore the event loop working.
It happens when a callback of an sd_event is faulty
(ex: SIGSEGV). In that case the monitoring of signals
(sig-monitor) interfer badly with systemd. But at the
the application firstly has error.
To avoid flooding the journal with messages, aborting
is the best solution.
Bug-AGL: SPEC-1681
Change-Id: If01295f07b3c3fc8c8ec1ac5bf04840d42ee9774
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This implementation detects deconnections and try to reconnect
lazily on need.
Bug-AGL: SPEC-1668
Change-Id: Ib2a20a4578f2da80afe1564c42de96c4aa250e64
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This commit also include many comments and
improvements in naming of functions.
Bug-AGL: SPEC-1668
Change-Id: I1b5dd95678d94e9edfca1c598c5697e90bb9e5bf
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I8bb96419cfac3da88e75da42c66a5d359ec7c666
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The pending calls receive an error notification
when the server hang up.
Bug-AGL: SPEC-1668
Change-Id: I052dca5e338a7650d7630856e21f1d3a81c6f265
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
This improves the code and also prepare answering
diconnected on server hangup.
Bug-AGL: SPEC-1668
Change-Id: I2cf5a75bc2db6e9a0fd0cab88c7ff3cb9fd06242
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I6fbe737d4986fd18f9675942cd7ad75966125343
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Use the feature of afb-socket to handle
the api name.
Bug-AGL: SPEC-1668
Change-Id: Ib13891d7948c75bc5d342b45c774f8e6c3ea016e
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Allows to either open a 'struct fdev*' or a int.
This prepares further integration in afb-api-ws.
Bug-AGL: SPEC-1668
Change-Id: I3d61be582bceaab636460b3c7de3ac2f24ed9473
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
The function afb_stub_ws_on_hangup is now
named afb_stub_ws_set_on_hangup.
Bug-AGL: SPEC-1668
Change-Id: Ie96c77d4af10ee6b42aea6f57d7c3aadb95e6467
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
The path can be a symbolic link. It must be resolved
to be usefull.
Change-Id: I5db247fd9925065684e036d8d458c2131006f9db
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I434a0bd6be2758fd7964bc272d63dc280d400f47
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
This change allows a binding to know its
installation path. This path is retrieved using
the api function 'afb_api_settings'.
The path is returned --if known-- as a string
of key "binding-path".
Change-Id: Ie1a349dc4936d4ccf173f1f77e118099f7f0599a
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Iab93a26340fa9743a58ca43cd903bbf31c783e5b
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I7100961ef8f8a75d623a0667178f191dd4cfb9d3
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
The objective is to have a well identified and
possibly reusable internally.
Change-Id: Icdb6ce7d85ae26373cfe4f0b492fe97b74ed747c
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The function afb_msg_json_internal_error was based
on the previous reply standard and was not
used very much. Removing it seems a good idea.
Change-Id: I3dddee9c24ffd8c43c787b9b6a737ab013d757b7
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ic1954403e3924def8fc9fa395ac54e4c5ee6293a
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The test now raise an overall coverage rate:
lines......: 75.4% (8356 of 11080 lines)
functions..: 80.4% (1094 of 1360 functions)
Also Improve the documentation and improve parts of code.
Change-Id: Ic2b8bc2f85d4181aa0b358a953f95cb105a0eed9
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
An API is always valid internally to the binder.
Change-Id: I3c8eed166c9cfc1bcc47daa30c8f327af777d136
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The program afb-client-demo now exits whith one of the
following code:
0 - everything went well, no error
1 - last received answer was an error
2 - the remote hung up the connection
3 - stdin either has too long line (16384) or has error
4 - bad argument of the command line
5 - cant connect to remote
Bug-AGL: SPEC-1619
Change-Id: Ia979c9ddcdae496ce205882b895cd9742f93f365
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The dependency to fdev-epoll is not real
at the moment because afb-daemon still uses
systemd event loop mechanisms. At the end
use of it will depend on the conditional
compilation flag as REMOVE_SYSTEMD_EVENT here.
Change-Id: I46e65cddafef05a9418cd4cf4d5cbf596ebeda49
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Having a code more easy to read is better here.
Change-Id: I429e82d87729e41ec53d0852daa6f146261443c9
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Less code is faster and safer.
Change-Id: Ide71fec5ee80f14482e2972a3d0f65ef0b589f12
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
While making coverage test, few leaks appeared.
This corrects the last discorvered ones.
Change-Id: Id9e508bc9412072b628742971b02dd3d62799f3f
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
Despite its poor performance, this changes is good
at the end because:
- it allows to put config in files
- it removes dirty code to translate to JSON
- it removes dirty code to dump the config
- it unifies code for scanning hook's flag's names
- it improves unity of naming between option's names and JSON's names
Change-Id: I2487c8746d78a0cff80505a12b9fa60e40da9951
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The client API are now instanciated after the server API.
This allows to be client of itself but forbids to export
(serve) a client API.
Change-Id: I9b19180cfb60108344c2f846427e964df8339430
Signed-off-by: José 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>
|
|
coverage values:
- lines: 70.5 %
- functions: 76.3 %
Change-Id: Iaf802e84bbfa57502bbbac8c3b567b14c01608b6
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
|
|
And remove the info line setting that the API .
is added.
Change-Id: I42e247036b9a1016797bb2674ad95f8a8c30e9be
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ibadaf6f41e39cce398d33a2a2a73751d68dad34d
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: Ia9fc00fbb04a27a46dd66cb60e9b359645f9dc11
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Change-Id: I4e4c2f337ae61a3399c7c97cfd028411f1471f98
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
A copy-paste error!
Change-Id: Iaf7bd9f3cbd62cddfbab04fecc685f334f983175
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The previous version was confusing and was expecting
that onneed and share_session were always true.
Removing this parameter simplifies the code.
Also handle errors of required classes and apis at initialisation.
Change-Id: I7c99aa356cba41f368bd47cab797fa086a5740af
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Versions of json-c older than 0.12 doesn't have
the function json_object_new_double_s.
Change-Id: If34c36ddcfabb3796aeb6739cd150e2b3e763679
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
The function readlink doesn't add a terminating null.
This patch fixes that were needed.
Change-Id: Ie15309471fe8203c8e98b97315c4ea30de3ccd75
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|