From 36ecaa6e4b6b883a086bfa4d3ec67aa320c75a7b Mon Sep 17 00:00:00 2001 From: Hauke Petersen Date: Thu, 7 Jun 2018 12:10:58 +0200 Subject: [PATCH] net/emcute: use global byteorder functions --- sys/net/application_layer/emcute/emcute.c | 46 +++++++---------------- 1 file changed, 14 insertions(+), 32 deletions(-) diff --git a/sys/net/application_layer/emcute/emcute.c b/sys/net/application_layer/emcute/emcute.c index 0808dad3bd..a813728a39 100644 --- a/sys/net/application_layer/emcute/emcute.c +++ b/sys/net/application_layer/emcute/emcute.c @@ -24,6 +24,7 @@ #include "mutex.h" #include "sched.h" #include "xtimer.h" +#include "byteorder.h" #include "thread_flags.h" #include "net/emcute.h" @@ -59,26 +60,6 @@ static volatile uint8_t waiton = 0xff; static volatile uint16_t waitonid = 0; static volatile int result; -static inline uint16_t get_u16(const uint8_t *buf) -{ -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - return (uint16_t)((buf[0] << 8) | buf[1]); -#else - return (uint16_t)((buf[1] << 8) | buf[0]); -#endif -} - -static inline void set_u16(uint8_t *buf, uint16_t val) -{ -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - buf[0] = (uint8_t)(val >> 8); - buf[1] = (uint8_t)(val & 0xff); -#else - buf[0] = (uint8_t)(val & 0xff); - buf[1] = (uint8_t)(val >> 8); -#endif -} - static size_t set_len(uint8_t *buf, size_t len) { if (len < (0xff - 7)) { @@ -87,7 +68,7 @@ static size_t set_len(uint8_t *buf, size_t len) } else { buf[0] = 0x01; - set_u16(&tbuf[1], (uint16_t)(len + 3)); + byteorder_htolebufs(&tbuf[1], (uint16_t)(len + 3)); return 3; } } @@ -99,7 +80,7 @@ static size_t get_len(uint8_t *buf, uint16_t *len) return 1; } else { - *len = get_u16(&buf[1]); + *len = byteorder_lebuftohs(&buf[1]); return 3; } } @@ -151,12 +132,13 @@ static void on_disconnect(void) static void on_ack(uint8_t type, int id_pos, int ret_pos, int res_pos) { - if ((waiton == type) && (!id_pos || (waitonid == get_u16(&rbuf[id_pos])))) { + if ((waiton == type) && + (!id_pos || (waitonid == byteorder_lebuftohs(&rbuf[id_pos])))) { if (!ret_pos || (rbuf[ret_pos] == ACCEPT)) { if (res_pos == 0) { result = EMCUTE_OK; } else { - result = (int)get_u16(&rbuf[res_pos]); + result = (int)byteorder_lebuftohs(&rbuf[res_pos]); } } else { result = EMCUTE_REJECT; @@ -173,7 +155,7 @@ static void on_publish(size_t len, size_t pos) } emcute_sub_t *sub; - uint16_t tid = get_u16(&rbuf[pos + 2]); + uint16_t tid = byteorder_lebuftohs(&rbuf[pos + 2]); /* allocate a response packet */ uint8_t buf[7] = { 7, PUBACK, 0, 0, 0, 0, ACCEPT }; @@ -255,7 +237,7 @@ int emcute_con(sock_udp_ep_t *remote, bool clean, const char *will_topic, tbuf[1] = CONNECT; tbuf[2] = flags; tbuf[3] = PROTOCOL_VERSION; - set_u16(&tbuf[4], EMCUTE_KEEPALIVE); + byteorder_htolebufs(&tbuf[4], EMCUTE_KEEPALIVE); memcpy(&tbuf[6], cli_id, strlen(cli_id)); /* configure 'state machine' and send the connection request */ @@ -329,8 +311,8 @@ int emcute_reg(emcute_topic_t *topic) tbuf[0] = (strlen(topic->name) + 6); tbuf[1] = REGISTER; - set_u16(&tbuf[2], 0); - set_u16(&tbuf[4], id_next); + byteorder_htolebufs(&tbuf[2], 0); + byteorder_htolebufs(&tbuf[4], id_next); waitonid = id_next++; memcpy(&tbuf[6], topic->name, strlen(topic->name)); @@ -365,9 +347,9 @@ int emcute_pub(emcute_topic_t *topic, const void *data, size_t len, len += (pos + 6); tbuf[pos++] = PUBLISH; tbuf[pos++] = flags; - set_u16(&tbuf[pos], topic->id); + byteorder_htolebufs(&tbuf[pos], topic->id); pos += 2; - set_u16(&tbuf[pos], id_next); + byteorder_htolebufs(&tbuf[pos], id_next); waitonid = id_next++; pos += 2; memcpy(&tbuf[pos], data, len); @@ -399,7 +381,7 @@ int emcute_sub(emcute_sub_t *sub, unsigned flags) tbuf[0] = (strlen(sub->topic.name) + 5); tbuf[1] = SUBSCRIBE; tbuf[2] = flags; - set_u16(&tbuf[3], id_next); + byteorder_htolebufs(&tbuf[3], id_next); waitonid = id_next++; memcpy(&tbuf[5], sub->topic.name, strlen(sub->topic.name)); @@ -435,7 +417,7 @@ int emcute_unsub(emcute_sub_t *sub) tbuf[0] = (strlen(sub->topic.name) + 5); tbuf[1] = UNSUBSCRIBE; tbuf[2] = 0; - set_u16(&tbuf[3], id_next); + byteorder_htolebufs(&tbuf[3], id_next); waitonid = id_next++; memcpy(&tbuf[5], sub->topic.name, strlen(sub->topic.name));