diff options
-rw-r--r-- | src/afb-context.c | 10 | ||||
-rw-r--r-- | src/afb-context.h | 5 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/afb-context.c b/src/afb-context.c index 16dcd046..81f21ff4 100644 --- a/src/afb-context.c +++ b/src/afb-context.c @@ -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) diff --git a/src/afb-context.h b/src/afb-context.h index 5f007f9c..f1af3622 100644 --- a/src/afb-context.h +++ b/src/afb-context.h @@ -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*)); |