Expose session UUID from context
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 5 May 2017 16:57:04 +0000 (18:57 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Fri, 5 May 2017 16:57:04 +0000 (18:57 +0200)
Change-Id: Ifcf08e840b4ac92889874700c630495b6dfc3e66
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-context.c
src/afb-context.h

index 16dcd04..81f21ff 100644 (file)
@@ -51,8 +51,11 @@ void afb_context_init(struct afb_context *context, struct afb_session *session,
 
 void afb_context_subinit(struct afb_context *context, struct afb_context *super)
 {
-       *context = *super;
+       context->session = super->session;
+       context->flags = 0;
        context->super = super;
+       context->api_key = NULL;
+       context->validated = super->validated;
 }
 
 int afb_context_connect(struct afb_context *context, const char *uuid, const char *token)
@@ -101,6 +104,11 @@ const char *afb_context_sent_token(struct afb_context *context)
        return afb_session_token(context->session);
 }
 
+const char *afb_context_uuid(struct afb_context *context)
+{
+       return context->session ? afb_session_uuid(context->session) : "";
+}
+
 const char *afb_context_sent_uuid(struct afb_context *context)
 {
        if (context->session == NULL || context->closing || context->super)
index 5f007f9..f1af362 100644 (file)
@@ -22,6 +22,8 @@ struct afb_session;
 struct afb_context
 {
        struct afb_session *session;
+       void *api_key;
+       struct afb_context *super;
        union {
                unsigned flags;
                struct {
@@ -34,8 +36,6 @@ struct afb_context
                        unsigned closed: 1;
                };
        };
-       void *api_key;
-       struct afb_context *super;
 };
 
 extern void afb_context_init(struct afb_context *context, struct afb_session *session, const char *token);
@@ -44,6 +44,7 @@ extern int afb_context_connect(struct afb_context *context, const char *uuid, co
 extern void afb_context_disconnect(struct afb_context *context);
 extern const char *afb_context_sent_token(struct afb_context *context);
 extern const char *afb_context_sent_uuid(struct afb_context *context);
+extern const char *afb_context_uuid(struct afb_context *context);
 
 extern void *afb_context_get(struct afb_context *context);
 extern int afb_context_set(struct afb_context *context, void *value, void (*free_value)(void*));