Change the effect of close session
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 5 May 2017 10:18:59 +0000 (12:18 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Fri, 5 May 2017 10:23:11 +0000 (12:23 +0200)
Using the flag AFB_SESSION_CLOSE now has effect only
on the requesting binding.

Before, all the session was closed. This could lead
to unexpected conflicts.

Change-Id: Ic945e8d164a8558eae05d169b0c5f372b036cf36
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-context.c

index 83ce573..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);
@@ -131,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)