diff --git a/sys/net/application_layer/nanocoap/sock.c b/sys/net/application_layer/nanocoap/sock.c index ef2e0d6939c75975ca099a64d6acbede9708e1b6..c722a553b007b77609ba5505a6b58bb1a16cb2b7 100644 --- a/sys/net/application_layer/nanocoap/sock.c +++ b/sys/net/application_layer/nanocoap/sock.c @@ -128,17 +128,17 @@ int nanocoap_server(sock_udp_ep_t *local, uint8_t *buf, size_t bufsize) } ssize_t res = sock_udp_create(&sock, local, NULL, 0); - if (res == -1) { + if (res != 0) { return -1; } while (1) { res = sock_udp_recv(&sock, buf, bufsize, -1, &remote); - if (res == -1) { + if (res < 0) { DEBUG("error receiving UDP packet\n"); return -1; } - else { + else if (res > 0) { coap_pkt_t pkt; if (coap_parse(&pkt, (uint8_t *)buf, res) < 0) { DEBUG("error parsing packet\n");