diff --git a/examples/gcoap/gcoap_cli.c b/examples/gcoap/gcoap_cli.c index 8542bcab35d6282e935d6b45fb068de111ad999c..636e6998ad6d798eaa93be8c28545fb66d0704b4 100644 --- a/examples/gcoap/gcoap_cli.c +++ b/examples/gcoap/gcoap_cli.c @@ -165,8 +165,7 @@ int gcoap_cli_cmd(int argc, char **argv) if (strcmp(argv[1], "info") == 0) { if (argc == 2) { - uint8_t open_reqs; - gcoap_op_state(&open_reqs); + uint8_t open_reqs = gcoap_op_state(); printf("CoAP server is listening on port %u\n", GCOAP_PORT); printf(" CLI requests sent: %u\n", req_count); diff --git a/sys/include/net/gcoap.h b/sys/include/net/gcoap.h index 097fd4812cc13641b3f4815378471ef9f69b650a..fc5b326048659bffb817fa4cfb853340fa1d130d 100644 --- a/sys/include/net/gcoap.h +++ b/sys/include/net/gcoap.h @@ -55,7 +55,7 @@ * If there is a payload, follow the three steps below. * * -# Call gcoap_resp_init() to initialize the response. - * -# Write the request payload, starting at the updated _payload_ pointer + * -# Write the response payload, starting at the updated _payload_ pointer * in the coap_pkt_t. If some error occurs, return a negative errno * code from the handler, and gcoap will send a server error (5.00). * -# Call gcoap_finish() to complete the PDU after writing the payload, @@ -150,15 +150,15 @@ extern "C" { #endif /** @brief Size for module message queue */ -#define GCOAP_MSG_QUEUE_SIZE (4) +#define GCOAP_MSG_QUEUE_SIZE (4) /** @brief Server port; use RFC 7252 default if not defined */ #ifndef GCOAP_PORT -#define GCOAP_PORT (5683) +#define GCOAP_PORT (5683) #endif /** @brief Size of the buffer used to build a CoAP request or response. */ -#define GCOAP_PDU_BUF_SIZE (128) +#define GCOAP_PDU_BUF_SIZE (128) /** * @brief Size of the buffer used to write options, other than Uri-Path, in a @@ -166,7 +166,7 @@ extern "C" { * * Accommodates Content-Format. */ -#define GCOAP_REQ_OPTIONS_BUF (8) +#define GCOAP_REQ_OPTIONS_BUF (8) /** * @brief Size of the buffer used to write options in a response. @@ -186,25 +186,25 @@ extern "C" { /** @brief Length in bytes for a token; use 2 if not defined */ #ifndef GCOAP_TOKENLEN -#define GCOAP_TOKENLEN (2) +#define GCOAP_TOKENLEN (2) #endif /** @brief Marks the boundary between header and payload */ -#define GCOAP_PAYLOAD_MARKER (0xFF) +#define GCOAP_PAYLOAD_MARKER (0xFF) /** * @name States for the memo used to track waiting for a response * @{ */ -#define GCOAP_MEMO_UNUSED (0) /**< This memo is unused */ -#define GCOAP_MEMO_WAIT (1) /**< Request sent; awaiting response */ -#define GCOAP_MEMO_RESP (2) /**< Got response */ -#define GCOAP_MEMO_TIMEOUT (3) /**< Timeout waiting for response */ -#define GCOAP_MEMO_ERR (4) /**< Error processing response packet */ +#define GCOAP_MEMO_UNUSED (0) /**< This memo is unused */ +#define GCOAP_MEMO_WAIT (1) /**< Request sent; awaiting response */ +#define GCOAP_MEMO_RESP (2) /**< Got response */ +#define GCOAP_MEMO_TIMEOUT (3) /**< Timeout waiting for response */ +#define GCOAP_MEMO_ERR (4) /**< Error processing response packet */ /** @} */ /** @brief Time in usec that the event loop waits for an incoming CoAP message */ -#define GCOAP_RECV_TIMEOUT (1 * US_PER_SEC) +#define GCOAP_RECV_TIMEOUT (1 * US_PER_SEC) /** * @@ -212,10 +212,10 @@ extern "C" { * * Set to 0 to disable timeout. */ -#define GCOAP_NON_TIMEOUT (5000000U) +#define GCOAP_NON_TIMEOUT (5000000U) /** @brief Identifies waiting timed out for a response to a sent message. */ -#define GCOAP_MSG_TYPE_TIMEOUT (0x1501) +#define GCOAP_MSG_TYPE_TIMEOUT (0x1501) /** * @brief Identifies a request to interrupt listening for an incoming message @@ -223,16 +223,16 @@ extern "C" { * * Allows the event loop to process IPC messages. */ -#define GCOAP_MSG_TYPE_INTR (0x1502) +#define GCOAP_MSG_TYPE_INTR (0x1502) /** * @brief A modular collection of resources for a server */ typedef struct gcoap_listener { - coap_resource_t *resources; /**< First element in the array of resources; - must order alphabetically */ - size_t resources_len; /**< Length of array */ - struct gcoap_listener *next; /**< Next listener in list */ + coap_resource_t *resources; /**< First element in the array of + * resources; must order alphabetically */ + size_t resources_len; /**< Length of array */ + struct gcoap_listener *next; /**< Next listener in list */ } gcoap_listener_t; /** @@ -407,9 +407,9 @@ static inline ssize_t gcoap_response(coap_pkt_t *pdu, uint8_t *buf, size_t len, * * Useful for monitoring. * - * @param[out] open_reqs Count of unanswered requests + * @return count of unanswered requests */ -void gcoap_op_state(uint8_t *open_reqs); +uint8_t gcoap_op_state(void); #ifdef __cplusplus } diff --git a/sys/net/application_layer/coap/gcoap.c b/sys/net/application_layer/coap/gcoap.c index 91fecb2ae46dd62fb2eaebf5dee71394b323dc9e..5a4df08ab98a3965321eb19a0cf62d0a03c46ba4 100644 --- a/sys/net/application_layer/coap/gcoap.c +++ b/sys/net/application_layer/coap/gcoap.c @@ -109,9 +109,7 @@ static void _listen(sock_udp_t *sock) uint8_t buf[GCOAP_PDU_BUF_SIZE]; sock_udp_ep_t remote; gcoap_request_memo_t *memo = NULL; - uint8_t open_reqs; - - gcoap_op_state(&open_reqs); + uint8_t open_reqs = gcoap_op_state(); ssize_t res = sock_udp_recv(sock, buf, sizeof(buf), open_reqs > 0 ? GCOAP_RECV_TIMEOUT : SOCK_NO_TIMEOUT, @@ -381,8 +379,9 @@ void gcoap_register_listener(gcoap_listener_t *listener) { /* Add the listener to the end of the linked list. */ gcoap_listener_t *_last = _coap_state.listeners; - while (_last->next) + while (_last->next) { _last = _last->next; + } listener->next = NULL; _last->next = listener; @@ -519,7 +518,7 @@ int gcoap_resp_init(coap_pkt_t *pdu, uint8_t *buf, size_t len, unsigned code) return 0; } -void gcoap_op_state(uint8_t *open_reqs) +uint8_t gcoap_op_state(void) { uint8_t count = 0; for (int i = 0; i < GCOAP_REQ_WAITING_MAX; i++) { @@ -527,7 +526,7 @@ void gcoap_op_state(uint8_t *open_reqs) count++; } } - *open_reqs = count; + return count; } /** @} */