summaryrefslogtreecommitdiffstats
path: root/src/afb-context.c
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2016-05-23 14:26:54 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2016-05-23 14:27:09 +0200
commitfca2e14e1d57d7b89d1a6de07075cc0e6e157ca7 (patch)
tree479bd5382cb943356c32f12890991afb1d1ebcf4 /src/afb-context.c
parente6d40a8447eff5e1be00ea35715092876e0520fa (diff)
Setting and checking LOA
Change-Id: I02c3795c6e212491605861228eb60b731be78537 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/afb-context.c')
-rw-r--r--src/afb-context.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/afb-context.c b/src/afb-context.c
index a7010dbb..0492ecbf 100644
--- a/src/afb-context.c
+++ b/src/afb-context.c
@@ -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;
}