Fix bug when logging during bindings init
authorJosé Bollo <jose.bollo@iot.bzh>
Thu, 7 Jul 2016 15:29:26 +0000 (17:29 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Thu, 7 Jul 2016 15:29:26 +0000 (17:29 +0200)
Change-Id: I1901070c94c3ca7e07b167d7c769d111b02cbd64
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-api-so.c

index 39a6e9b..860b097 100644 (file)
@@ -246,6 +246,8 @@ int afb_api_so_add_binding(const char *path)
        void *handle;
        struct api_so_desc *desc;
        struct afb_binding *(*register_function) (const struct afb_binding_interface *interface);
+       struct afb_verb_desc_v1 fake_verb;
+       struct afb_binding fake_binding;
 
        // This is a loadable library let's check if it's a binding
        rc = 0;
@@ -278,6 +280,14 @@ int afb_api_so_add_binding(const char *path)
        desc->interface.daemon.itf = &daemon_itf;
        desc->interface.daemon.closure = desc;
 
+       /* for log purpose, a fake binding is needed here */
+       desc->binding = &fake_binding;
+       fake_binding.type = AFB_BINDING_VERSION_1;
+       fake_binding.v1.info = path;
+       fake_binding.v1.prefix = path;
+       fake_binding.v1.verbs = &fake_verb;
+       fake_verb.name = NULL;
+
        /* init the binding */
        NOTICE("binding [%s] calling registering function %s", path, binding_register_function_v1);
        desc->binding = register_function(&desc->interface);