afb-api: Enforce api names to be hookable
[src/app-framework-binder.git] / src / afb-export.c
index 7fd475a..98964bf 100644 (file)
@@ -173,13 +173,13 @@ static struct afb_eventid *eventid_make_cb(void *closure, const char *name)
        memcpy(event + plen + 1, name, nlen + 1);
 
        /* create the event */
-       return afb_evt_create_event(event);
+       return afb_evt_eventid_create(event);
 }
 
 static struct afb_event event_make_cb(void *closure, const char *name)
 {
        struct afb_eventid *eventid = eventid_make_cb(closure, name);
-       return (struct afb_event){ .itf = eventid ? eventid->itf : NULL, .closure = eventid };
+       return afb_evt_event_from_evtid(afb_evt_eventid_to_evtid(eventid));
 }
 
 static int event_broadcast_cb(void *closure, const char *name, struct json_object *object)
@@ -241,7 +241,7 @@ static int rename_api_cb(void *closure, const char *name)
                errno = EINVAL;
                return -1;
        }
-       if (!afb_api_is_valid_name(name)) {
+       if (!afb_api_is_valid_name(name, 1)) {
                ERROR("[API %s] Can't rename to %s: bad API name", export->apiname, name);
                errno = EINVAL;
                return -1;
@@ -255,11 +255,12 @@ static int api_new_api_cb(
                void *closure,
                const char *api,
                const char *info,
+               int noconcurrency,
                int (*preinit)(void*, struct afb_dynapi *),
                void *preinit_closure)
 {
        struct afb_export *export = closure;
-       return afb_api_dyn_add(export->apiset, api, info, preinit, preinit_closure);
+       return afb_api_dyn_add(export->apiset, api, info, noconcurrency, preinit, preinit_closure);
 }
 
 /**********************************************
@@ -376,11 +377,12 @@ static int hooked_api_new_api_cb(
                void *closure,
                const char *api,
                const char *info,
+               int noconcurrency,
                int (*preinit)(void*, struct afb_dynapi *),
                void *preinit_closure)
 {
        /* TODO */
-       return api_new_api_cb(closure, api, info, preinit, preinit_closure);
+       return api_new_api_cb(closure, api, info, noconcurrency, preinit, preinit_closure);
 }
 /**********************************************
 * vectors
@@ -1070,7 +1072,7 @@ static struct afb_export *create(struct afb_apiset *apiset, const char *apiname,
 
        /* session shared with other exports */
        if (common_session == NULL) {
-               common_session = afb_session_create (NULL, 0);
+               common_session = afb_session_create (0);
                if (common_session == NULL)
                        return NULL;
        }
@@ -1179,7 +1181,7 @@ struct afb_binding_interface_v1 *afb_export_get_interface_v1(struct afb_export *
 int afb_export_unshare_session(struct afb_export *export)
 {
        if (export->session == common_session) {
-               export->session = afb_session_create (NULL, 0);
+               export->session = afb_session_create (0);
                if (export->session)
                        afb_session_unref(common_session);
                else {