summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/afb-context.c10
-rw-r--r--src/afb-context.h5
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*));