diff options
-rw-r--r-- | src/afb-api-so-v1.c | 2 | ||||
-rw-r--r-- | src/afb-api-so-v2.c | 2 | ||||
-rw-r--r-- | src/afb-svc.c | 19 | ||||
-rw-r--r-- | src/afb-svc.h | 2 |
4 files changed, 17 insertions, 8 deletions
diff --git a/src/afb-api-so-v1.c b/src/afb-api-so-v1.c index f367820d..b7b29e44 100644 --- a/src/afb-api-so-v1.c +++ b/src/afb-api-so-v1.c @@ -108,7 +108,7 @@ static int service_start_cb(void *closure, int share_session, int onneed, struct } /* get the event handler if any */ - desc->service = afb_svc_create_v1(apiset, share_session, init, onevent); + desc->service = afb_svc_create_v1(desc->binding->v1.prefix, apiset, share_session, init, onevent); if (desc->service == NULL) { /* starting error */ ERROR("Starting service %s failed", desc->binding->v1.prefix); diff --git a/src/afb-api-so-v2.c b/src/afb-api-so-v2.c index 1c5fe520..11fa334b 100644 --- a/src/afb-api-so-v2.c +++ b/src/afb-api-so-v2.c @@ -133,7 +133,7 @@ static int service_start_cb(void *closure, int share_session, int onneed, struct } /* get the event handler if any */ - desc->service = afb_svc_create_v2(apiset, share_session, start, onevent, desc->data); + desc->service = afb_svc_create_v2(desc->binding->api, apiset, share_session, start, onevent, desc->data); if (desc->service == NULL) { /* starting error */ ERROR("Starting service %s failed", desc->binding->api); diff --git a/src/afb-svc.c b/src/afb-svc.c index b492520c..fad13286 100644 --- a/src/afb-svc.c +++ b/src/afb-svc.c @@ -42,6 +42,9 @@ */ struct afb_svc { + /* api/prefix */ + const char *api; + /* session of the service */ struct afb_session *session; @@ -128,6 +131,7 @@ static void svc_free(struct afb_svc *svc) * Allocates a new service */ static struct afb_svc *afb_svc_alloc( + const char *api, struct afb_apiset *apiset, int share_session ) @@ -142,6 +146,7 @@ static struct afb_svc *afb_svc_alloc( } /* instanciate the apiset */ + svc->api = api; svc->apiset = afb_apiset_addref(apiset); /* instanciate the session */ @@ -171,17 +176,18 @@ error: * Creates a new service */ struct afb_svc *afb_svc_create_v1( - struct afb_apiset *apiset, - int share_session, - int (*start)(struct afb_service service), - void (*on_event)(const char *event, struct json_object *object) + const char *api, + struct afb_apiset *apiset, + int share_session, + int (*start)(struct afb_service service), + void (*on_event)(const char *event, struct json_object *object) ) { int rc; struct afb_svc *svc; /* allocates the svc handler */ - svc = afb_svc_alloc(apiset, share_session); + svc = afb_svc_alloc(api, apiset, share_session); if (svc == NULL) goto error; @@ -211,6 +217,7 @@ error: * Creates a new service */ struct afb_svc *afb_svc_create_v2( + const char *api, struct afb_apiset *apiset, int share_session, int (*start)(), @@ -222,7 +229,7 @@ struct afb_svc *afb_svc_create_v2( struct afb_svc *svc; /* allocates the svc handler */ - svc = afb_svc_alloc(apiset, share_session); + svc = afb_svc_alloc(api, apiset, share_session); if (svc == NULL) goto error; data->service = to_afb_service(svc); diff --git a/src/afb-svc.h b/src/afb-svc.h index 347716d2..84b03d83 100644 --- a/src/afb-svc.h +++ b/src/afb-svc.h @@ -23,12 +23,14 @@ struct afb_apiset; struct afb_binding_data_v2; extern struct afb_svc *afb_svc_create_v1( + const char *api, struct afb_apiset *apiset, int share_session, int (*start)(struct afb_service service), void (*on_event)(const char *event, struct json_object *object)); extern struct afb_svc *afb_svc_create_v2( + const char *api, struct afb_apiset *apiset, int share_session, int (*start)(), |