aboutsummaryrefslogtreecommitdiffstats
path: root/src/afb-trace.c
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2019-11-29 11:12:31 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2019-12-03 18:51:51 +0100
commitb70caad7da2eaea85db06dec8377b1cbebcec997 (patch)
tree32e3cfa6b7da57ced019357d8f592b0d90dd7563 /src/afb-trace.c
parent98b214e0454f1b55c5ce665bd5c848354d18c9e6 (diff)
afb-context: Move credentials to context
The split between context and credentials in requests was somehow artificial and awkward. This change move the credentials to the context and removes as many references to credentials as possible in favor of working on contexts. Change the value returned by afb_auth_check to be 1 if validated, 0 or less than zero if not validated. Bug-AGL: SPEC-2968 Signed-off-by: José Bollo <jose.bollo@iot.bzh> Change-Id: I979dc841e03247e126e3fa8433a1cc0d4108adf0
Diffstat (limited to 'src/afb-trace.c')
-rw-r--r--src/afb-trace.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/afb-trace.c b/src/afb-trace.c
index 5f8ec64c..41721509 100644
--- a/src/afb-trace.c
+++ b/src/afb-trace.c
@@ -199,21 +199,23 @@ static void emit(void *closure, const struct afb_hookid *hookid, const char *typ
static void hook_xreq(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, const char *action, const char *format, ...)
{
- struct json_object *cred = NULL;
+ struct afb_cred *cred;
+ struct json_object *jcred = NULL;
const char *session = NULL;
va_list ap;
if (xreq->context.session)
session = afb_session_uuid(xreq->context.session);
- if (xreq->cred)
- wrap_json_pack(&cred, "{si ss si si ss* ss*}",
- "uid", (int)xreq->cred->uid,
- "user", xreq->cred->user,
- "gid", (int)xreq->cred->gid,
- "pid", (int)xreq->cred->pid,
- "label", xreq->cred->label,
- "id", xreq->cred->id
+ cred = xreq->context.credentials;
+ if (cred)
+ wrap_json_pack(&jcred, "{si ss si si ss* ss*}",
+ "uid", (int)cred->uid,
+ "user", cred->user,
+ "gid", (int)cred->gid,
+ "pid", (int)cred->pid,
+ "label", cred->label,
+ "id", cred->id
);
va_start(ap, format);
emit(closure, hookid, "request", "{si ss ss ss so* ss*}", format, ap,
@@ -221,7 +223,7 @@ static void hook_xreq(void *closure, const struct afb_hookid *hookid, const stru
"api", xreq->request.called_api,
"verb", xreq->request.called_verb,
"action", action,
- "credentials", cred,
+ "credentials", jcred,
"session", session);
va_end(ap);
}