don't enforce to refresh the token
[src/app-framework-binder.git] / src / afb-context.c
index 48787f7..ba093c3 100644 (file)
@@ -58,7 +58,7 @@ int afb_context_connect(struct afb_context *context, const char *uuid, const cha
        init_context(context, session, token);
        if (created) {
                context->created = 1;
-               context->refreshing = 1;
+               /* context->refreshing = 1; */
        }
        return 0;
 }
@@ -74,7 +74,7 @@ void afb_context_disconnect(struct afb_context *context)
                        ctxClientSetLOA (context->session, context->loa_out);
                        context->loa_changed = 1;
                }
-               if (!context->closed) {
+               if (context->closing && !context->closed) {
                        ctxClientClose(context->session);
                        context->closed = 1;
                }
@@ -138,16 +138,19 @@ int afb_context_check_loa(struct afb_context *context, unsigned loa)
        return context->loa_in >= loa;
 }
 
-void afb_context_change_loa(struct afb_context *context, unsigned loa)
+int afb_context_change_loa(struct afb_context *context, unsigned loa)
 {
-       assert(context->validated);
+       if (!context->validated || loa > 7)
+               return 0;
 
-       if (loa == context->loa_in)
+       if (loa == context->loa_in && !context->loa_changed)
                context->loa_changing = 0;
        else {
-               context->loa_changing = 1;
                context->loa_out = loa & 7;
+               context->loa_changing = 1;
+               context->loa_changed = 0;
        }
+       return 1;
 }