Refactor agent mechanism
authorJose Bollo <jose.bollo@iot.bzh>
Wed, 15 May 2019 07:08:08 +0000 (09:08 +0200)
committerJose Bollo <jose.bollo@iot.bzh>
Wed, 22 May 2019 13:57:34 +0000 (15:57 +0200)
commit2b70c9ff631b0a2f0c7ec771e2f390a1d677af1e
treeab64408bd8a443536e380aef03fed37df1a3dbf6
parentc451f53b4f3acd2157f9c7e7365ecc5663e9ada7
Refactor agent mechanism

Agent are now named and called when the
value returned is prefixed by name+colon.

For example, the agent 'me' receives the requests
'request' and the asked key for the rule:

 * * * * me:request forever

Add the always available AGENT-AT implementation.
The AGENT-AT handles the value prefix @: to re-ask
the database with a query derived from the value.

Example: the rule

 * * 1001 * @:%c:%s:OWNER:%p forever

if selected for the query key

  {client=C, session=S, user=1001, permission=P}

will produce the evaluation of the key

  {client=C, session=S, user=OWNER, permission=P}

The values @: are structured as 4 field separated
by colons (:). The sequences %c, %s, %u, %p, %%
and %: are substituted by client, session, user,
permission, % and :, with values coming from the
original request.

Change-Id: I7043845292f13f9c269a71cfabc4715330eaff34
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/CMakeLists.txt
src/agent-at.c [new file with mode: 0644]
src/agent-at.h [new file with mode: 0644]
src/anydb.c
src/cyn.c
src/cyn.h
src/main-cynadm.c
src/main-cynarad.c
src/prot.c
src/rcyn-server.c