diff options
author | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-06-19 16:24:24 +0200 |
---|---|---|
committer | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-10-08 15:53:53 +0200 |
commit | 5bfa3c8ed61c724388b1b3e802cc8fe97b0709de (patch) | |
tree | b8168d37b7e824e87c02194e3d6af961d0f88984 /4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c | |
parent | 8bbfce60e809f867c502f836c49ef70b9c4a0c63 (diff) |
Correct handling of incomming json messages
Correct handling of incomming json messages.
An error occured when a received json object was an array
containing only one item.
Change-Id: I2c6f27f0fd87e11c356b8d4e6bd02d472bc3d60b
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to '4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c')
-rw-r--r-- | 4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c index 474ea70..07ec9cc 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c @@ -286,7 +286,10 @@ int HalCtlsProcessAllHalMap(AFB_ApiT apiHandle, json_object *AlsaMapJ, struct Ct struct CtlHalAlsaMap *ctlMaps; - switch(json_object_get_type(AlsaMapJ)) { + json_type alsaMapType; + + alsaMapType = json_object_get_type(AlsaMapJ); + switch(alsaMapType) { case json_type_array: currentCtlHalAlsaMapT->ctlsCount = (unsigned int) json_object_array_length(AlsaMapJ); break; @@ -305,7 +308,7 @@ int HalCtlsProcessAllHalMap(AFB_ApiT apiHandle, json_object *AlsaMapJ, struct Ct ctlMaps = calloc(currentCtlHalAlsaMapT->ctlsCount, sizeof(struct CtlHalAlsaMap)); for(idx = 0; idx < currentCtlHalAlsaMapT->ctlsCount; idx++) - err += HalCtlsProcessOneHalMapObject(apiHandle, &ctlMaps[idx], currentCtlHalAlsaMapT->ctlsCount == 1 ? AlsaMapJ : json_object_array_get_idx(AlsaMapJ, idx)); + err += HalCtlsProcessOneHalMapObject(apiHandle, &ctlMaps[idx], alsaMapType == json_type_array ? json_object_array_get_idx(AlsaMapJ, idx) : AlsaMapJ); currentCtlHalAlsaMapT->ctls = ctlMaps; |