Change the effect of close session
[src/app-framework-binder.git] / src / afb-context.c
index 9f5ddd3..e9c73de 100644 (file)
@@ -79,7 +79,8 @@ void afb_context_disconnect(struct afb_context *context)
                        context->refreshed = 1;
                }
                if (context->closing && !context->closed) {
-                       afb_session_close(context->session);
+                       afb_context_change_loa(context, 0);
+                       afb_context_set(context, NULL, NULL);
                        context->closed = 1;
                }
                afb_session_unref(context->session);
@@ -109,6 +110,12 @@ const char *afb_context_sent_uuid(struct afb_context *context)
        return afb_session_uuid(context->session);
 }
 
+void *afb_context_data(struct afb_context *context, void *(*make_value)(void), void (*free_value)(void*))
+{
+       assert(context->session != NULL);
+       return afb_session_cookie(context->session, context->api_key, make_value, free_value);
+}
+
 void *afb_context_get(struct afb_context *context)
 {
        assert(context->session != NULL);
@@ -125,10 +132,7 @@ void afb_context_set(struct afb_context *context, void *value, void (*free_value
 
 void afb_context_close(struct afb_context *context)
 {
-       if (context->super)
-               afb_context_close(context->super);
-       else
-               context->closing = 1;
+       context->closing = 1;
 }
 
 void afb_context_refresh(struct afb_context *context)