Add the function afb_req_get_uid
[src/app-framework-binder.git] / src / afb-hook.c
index 12cf7a1..54058de 100644 (file)
@@ -207,7 +207,7 @@ static void _hook_xreq_(const struct afb_xreq *xreq, const char *format, ...)
 {
        va_list ap;
        va_start(ap, format);
-       _hook_("xreq-%06d:%s/%s", format, ap, xreq->hookindex, xreq->api, xreq->verb);
+       _hook_("xreq-%06d:%s/%s", format, ap, xreq->hookindex, xreq->request.api, xreq->request.verb);
        va_end(ap);
 }
 
@@ -281,14 +281,14 @@ static void hook_xreq_session_set_LOA_default_cb(void *closure, const struct afb
        _hook_xreq_(xreq, "session_set_LOA(%u) -> %d", level, result);
 }
 
-static void hook_xreq_subscribe_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, struct afb_event event, int result)
+static void hook_xreq_subscribe_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, struct afb_eventid *eventid, int result)
 {
-       _hook_xreq_(xreq, "subscribe(%s:%d) -> %d", afb_evt_event_fullname(event), afb_evt_event_id(event), result);
+       _hook_xreq_(xreq, "subscribe(%s:%d) -> %d", afb_evt_eventid_fullname(eventid), afb_evt_eventid_id(eventid), result);
 }
 
-static void hook_xreq_unsubscribe_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, struct afb_event event, int result)
+static void hook_xreq_unsubscribe_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, struct afb_eventid *eventid, int result)
 {
-       _hook_xreq_(xreq, "unsubscribe(%s:%d) -> %d", afb_evt_event_fullname(event), afb_evt_event_id(event), result);
+       _hook_xreq_(xreq, "unsubscribe(%s:%d) -> %d", afb_evt_eventid_fullname(eventid), afb_evt_eventid_id(eventid), result);
 }
 
 static void hook_xreq_subcall_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, const char *api, const char *verb, struct json_object *args)
@@ -364,6 +364,11 @@ static void hook_xreq_context_make_default_cb(void *closure, const struct afb_ho
        _hook_xreq_(xreq, "context_make(replace=%s, %p, %p, %p) -> %p", replace?"yes":"no", create_value, free_value, create_closure, result);
 }
 
+static void hook_xreq_get_uid_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, int result)
+{
+       _hook_xreq_(xreq, "get_uid() -> %d", result);
+}
+
 static struct afb_hook_xreq_itf hook_xreq_default_itf = {
        .hook_xreq_begin = hook_xreq_begin_default_cb,
        .hook_xreq_end = hook_xreq_end_default_cb,
@@ -390,7 +395,8 @@ static struct afb_hook_xreq_itf hook_xreq_default_itf = {
        .hook_xreq_subcall_req_result = hook_xreq_subcall_req_result_default_cb,
        .hook_xreq_has_permission = hook_xreq_has_permission_default_cb,
        .hook_xreq_get_application_id = hook_xreq_get_application_id_default_cb,
-       .hook_xreq_context_make = hook_xreq_context_make_default_cb
+       .hook_xreq_context_make = hook_xreq_context_make_default_cb,
+       .hook_xreq_get_uid = hook_xreq_get_uid_default_cb,
 };
 
 /******************************************************************************
@@ -407,8 +413,8 @@ static struct afb_hook_xreq_itf hook_xreq_default_itf = {
                if (hook->itf->hook_xreq_##what \
                 && (hook->flags & afb_hook_flag_req_##what) != 0 \
                 && (!hook->session || hook->session == xreq->context.session) \
-                && (!hook->api || !strcasecmp(hook->api, xreq->api)) \
-                && (!hook->verb || !strcasecmp(hook->verb, xreq->verb))) { \
+                && (!hook->api || !strcasecmp(hook->api, xreq->request.api)) \
+                && (!hook->verb || !strcasecmp(hook->verb, xreq->request.verb))) { \
                        hook->itf->hook_xreq_##what(hook->closure, &hookid, __VA_ARGS__); \
                } \
                hook = hook->next; \
@@ -480,15 +486,15 @@ int afb_hook_xreq_session_set_LOA(const struct afb_xreq *xreq, unsigned level, i
        return result;
 }
 
-int afb_hook_xreq_subscribe(const struct afb_xreq *xreq, struct afb_event event, int result)
+int afb_hook_xreq_subscribe(const struct afb_xreq *xreq, struct afb_eventid *eventid, int result)
 {
-       _HOOK_XREQ_(subscribe, xreq, event, result);
+       _HOOK_XREQ_(subscribe, xreq, eventid, result);
        return result;
 }
 
-int afb_hook_xreq_unsubscribe(const struct afb_xreq *xreq, struct afb_event event, int result)
+int afb_hook_xreq_unsubscribe(const struct afb_xreq *xreq, struct afb_eventid *eventid, int result)
 {
-       _HOOK_XREQ_(unsubscribe, xreq, event, result);
+       _HOOK_XREQ_(unsubscribe, xreq, eventid, result);
        return result;
 }
 
@@ -556,6 +562,12 @@ void *afb_hook_xreq_context_make(const struct afb_xreq *xreq, int replace, void
        return result;
 }
 
+int afb_hook_xreq_get_uid(const struct afb_xreq *xreq, int result)
+{
+       _HOOK_XREQ_(get_uid, xreq, result);
+       return result;
+}
+
 /******************************************************************************
  * section: hooking xreqs
  *****************************************************************************/
@@ -576,8 +588,8 @@ void afb_hook_init_xreq(struct afb_xreq *xreq)
                f = hook->flags & afb_hook_flags_req_all;
                add = f != 0
                   && (!hook->session || hook->session == xreq->context.session)
-                  && (!hook->api || !strcasecmp(hook->api, xreq->api))
-                  && (!hook->verb || !strcasecmp(hook->verb, xreq->verb));
+                  && (!hook->api || !strcasecmp(hook->api, xreq->request.api))
+                  && (!hook->verb || !strcasecmp(hook->verb, xreq->request.verb));
                if (add)
                        flags |= f;
                hook = hook->next;
@@ -724,9 +736,9 @@ static void hook_ditf_vverbose_cb(void *closure, const struct afb_hookid *hookid
        }
 }
 
-static void hook_ditf_event_make_cb(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, const char *name, struct afb_event result)
+static void hook_ditf_event_make_cb(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, const char *name, struct afb_eventid *result)
 {
-       _hook_ditf_(export, "event_make(%s) -> %s:%d", name, afb_evt_event_fullname(result), afb_evt_event_id(result));
+       _hook_ditf_(export, "event_make(%s) -> %s:%d", name, afb_evt_eventid_fullname(result), afb_evt_eventid_id(result));
 }
 
 static void hook_ditf_rootdir_get_fd_cb(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, int result)
@@ -852,7 +864,7 @@ void afb_hook_ditf_vverbose(const struct afb_export *export, int level, const ch
        _HOOK_DITF_(vverbose, export, level, file, line, function, fmt, args);
 }
 
-struct afb_event afb_hook_ditf_event_make(const struct afb_export *export, const char *name, struct afb_event result)
+struct afb_eventid *afb_hook_ditf_event_make(const struct afb_export *export, const char *name, struct afb_eventid *result)
 {
        _HOOK_DITF_(event_make, export, name, result);
        return result;