diff options
Diffstat (limited to 'fw/esp32/components/eos/sock.c')
-rw-r--r-- | fw/esp32/components/eos/sock.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/fw/esp32/components/eos/sock.c b/fw/esp32/components/eos/sock.c index ec198f0..e1b703f 100644 --- a/fw/esp32/components/eos/sock.c +++ b/fw/esp32/components/eos/sock.c @@ -108,15 +108,18 @@ static void udp_rcvr_task(void *pvParameters) { vTaskDelete(NULL); } -static void sock_handler(unsigned char type, unsigned char *buffer, uint16_t buf_len) { - EOSNetAddr addr; +static void sock_handler(unsigned char _mtype, unsigned char *buffer, uint16_t buf_len) { + unsigned char mtype; uint8_t sock_i; int sock, i; if (buf_len < 1) return; - switch(buffer[0]) { - case EOS_SOCK_MTYPE_PKT: + mtype = buffer[0]; + switch (mtype) { + case EOS_SOCK_MTYPE_PKT: { + EOSNetAddr addr; + if (buf_len < EOS_SOCK_SIZE_UDP_HDR) return; sock_i = buffer[1]-1; @@ -131,8 +134,9 @@ static void sock_handler(unsigned char type, unsigned char *buffer, uint16_t buf buffer += sizeof(addr.port); t_sendto(sock, buffer, buf_len - EOS_SOCK_SIZE_UDP_HDR, &addr); break; + } - case EOS_SOCK_MTYPE_OPEN_DGRAM: + case EOS_SOCK_MTYPE_OPEN_DGRAM: { sock = t_open_dgram(); sock_i = 0; if (sock > 0) { @@ -151,8 +155,9 @@ static void sock_handler(unsigned char type, unsigned char *buffer, uint16_t buf buffer[1] = sock_i; eos_net_reply(EOS_NET_MTYPE_SOCK, buffer, 2); break; + } - case EOS_SOCK_MTYPE_CLOSE: + case EOS_SOCK_MTYPE_CLOSE: { if (buf_len < 2) return; sock_i = buffer[1]-1; @@ -161,10 +166,7 @@ static void sock_handler(unsigned char type, unsigned char *buffer, uint16_t buf sock = _socks[sock_i]; t_close(sock); break; - - default: - ESP_LOGE(TAG, "BAD TYPE:%d", buffer[0]); - break; + } } } |