Merge pull request #7237 from Ell-i/feature-gcoap-extra-indirection

net/gcoap: Make references to coap_resource_t all const in gcoap
This commit is contained in:
Ken Bannister 2018-08-07 23:52:59 -04:00 committed by GitHub
commit 3f3df74bcd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 18 deletions

View File

@ -41,7 +41,7 @@ static const coap_resource_t _resources[] = {
}; };
static gcoap_listener_t _listener = { static gcoap_listener_t _listener = {
(coap_resource_t *)&_resources[0], &_resources[0],
sizeof(_resources) / sizeof(_resources[0]), sizeof(_resources) / sizeof(_resources[0]),
NULL NULL
}; };

View File

@ -57,7 +57,7 @@ static const coap_resource_t resources[] = {
}; };
static gcoap_listener_t listener = { static gcoap_listener_t listener = {
.resources = (coap_resource_t *)&resources[0], .resources = &resources[0],
.resources_len = sizeof(resources) / sizeof(resources[0]), .resources_len = sizeof(resources) / sizeof(resources[0]),
.next = NULL .next = NULL
}; };

View File

@ -433,10 +433,10 @@ extern "C" {
* @brief A modular collection of resources for a server * @brief A modular collection of resources for a server
*/ */
typedef struct gcoap_listener { typedef struct gcoap_listener {
coap_resource_t *resources; /**< First element in the array of const coap_resource_t *resources; /**< First element in the array of
* resources; must order alphabetically */ * resources; must order alphabetically */
size_t resources_len; /**< Length of array */ size_t resources_len; /**< Length of array */
struct gcoap_listener *next; /**< Next listener in list */ struct gcoap_listener *next; /**< Next listener in list */
} gcoap_listener_t; } gcoap_listener_t;
/** /**
@ -480,7 +480,7 @@ typedef struct {
*/ */
typedef struct { typedef struct {
sock_udp_ep_t *observer; /**< Client endpoint; unused if null */ sock_udp_ep_t *observer; /**< Client endpoint; unused if null */
coap_resource_t *resource; /**< Entity being observed */ const coap_resource_t *resource; /**< Entity being observed */
uint8_t token[GCOAP_TOKENLEN_MAX]; /**< Client token for notifications */ uint8_t token[GCOAP_TOKENLEN_MAX]; /**< Client token for notifications */
unsigned token_len; /**< Actual length of token attribute */ unsigned token_len; /**< Actual length of token attribute */
} gcoap_observe_memo_t; } gcoap_observe_memo_t;

View File

@ -48,7 +48,7 @@ static void _expire_request(gcoap_request_memo_t *memo);
static bool _endpoints_equal(const sock_udp_ep_t *ep1, const sock_udp_ep_t *ep2); static bool _endpoints_equal(const sock_udp_ep_t *ep1, const sock_udp_ep_t *ep2);
static void _find_req_memo(gcoap_request_memo_t **memo_ptr, coap_pkt_t *pdu, static void _find_req_memo(gcoap_request_memo_t **memo_ptr, coap_pkt_t *pdu,
const sock_udp_ep_t *remote); const sock_udp_ep_t *remote);
static int _find_resource(coap_pkt_t *pdu, coap_resource_t **resource_ptr, static int _find_resource(coap_pkt_t *pdu, const coap_resource_t **resource_ptr,
gcoap_listener_t **listener_ptr); gcoap_listener_t **listener_ptr);
static int _find_observer(sock_udp_ep_t **observer, sock_udp_ep_t *remote); static int _find_observer(sock_udp_ep_t **observer, sock_udp_ep_t *remote);
static int _find_obs_memo(gcoap_observe_memo_t **memo, sock_udp_ep_t *remote, static int _find_obs_memo(gcoap_observe_memo_t **memo, sock_udp_ep_t *remote,
@ -62,7 +62,7 @@ const coap_resource_t _default_resources[] = {
}; };
static gcoap_listener_t _default_listener = { static gcoap_listener_t _default_listener = {
(coap_resource_t *)&_default_resources[0], &_default_resources[0],
sizeof(_default_resources) / sizeof(_default_resources[0]), sizeof(_default_resources) / sizeof(_default_resources[0]),
NULL NULL
}; };
@ -267,10 +267,10 @@ static void _listen(sock_udp_t *sock)
static size_t _handle_req(coap_pkt_t *pdu, uint8_t *buf, size_t len, static size_t _handle_req(coap_pkt_t *pdu, uint8_t *buf, size_t len,
sock_udp_ep_t *remote) sock_udp_ep_t *remote)
{ {
coap_resource_t *resource = NULL; const coap_resource_t *resource = NULL;
gcoap_listener_t *listener = NULL; gcoap_listener_t *listener = NULL;
sock_udp_ep_t *observer = NULL; sock_udp_ep_t *observer = NULL;
gcoap_observe_memo_t *memo = NULL; gcoap_observe_memo_t *memo = NULL;
gcoap_observe_memo_t *resource_memo = NULL; gcoap_observe_memo_t *resource_memo = NULL;
switch (_find_resource(pdu, &resource, &listener)) { switch (_find_resource(pdu, &resource, &listener)) {
@ -382,7 +382,7 @@ static size_t _handle_req(coap_pkt_t *pdu, uint8_t *buf, size_t len,
* code didn't match and `GCOAP_RESOURCE_NO_PATH` if no matching * code didn't match and `GCOAP_RESOURCE_NO_PATH` if no matching
* resource was found. * resource was found.
*/ */
static int _find_resource(coap_pkt_t *pdu, coap_resource_t **resource_ptr, static int _find_resource(coap_pkt_t *pdu, const coap_resource_t **resource_ptr,
gcoap_listener_t **listener_ptr) gcoap_listener_t **listener_ptr)
{ {
int ret = GCOAP_RESOURCE_NO_PATH; int ret = GCOAP_RESOURCE_NO_PATH;
@ -391,7 +391,7 @@ static int _find_resource(coap_pkt_t *pdu, coap_resource_t **resource_ptr,
/* Find path for CoAP msg among listener resources and execute callback. */ /* Find path for CoAP msg among listener resources and execute callback. */
gcoap_listener_t *listener = _coap_state.listeners; gcoap_listener_t *listener = _coap_state.listeners;
while (listener) { while (listener) {
coap_resource_t *resource = listener->resources; const coap_resource_t *resource = listener->resources;
for (size_t i = 0; i < listener->resources_len; i++) { for (size_t i = 0; i < listener->resources_len; i++) {
if (i) { if (i) {
resource++; resource++;
@ -1008,7 +1008,7 @@ int gcoap_get_resource_list(void *buf, size_t maxlen, uint8_t cf)
/* write payload */ /* write payload */
while (listener) { while (listener) {
coap_resource_t *resource = listener->resources; const coap_resource_t *resource = listener->resources;
for (unsigned i = 0; i < listener->resources_len; i++) { for (unsigned i = 0; i < listener->resources_len; i++) {
size_t path_len = strlen(resource->path); size_t path_len = strlen(resource->path);

View File

@ -36,13 +36,13 @@ static const coap_resource_t resources_second[] = {
}; };
static gcoap_listener_t listener = { static gcoap_listener_t listener = {
.resources = (coap_resource_t *)&resources[0], .resources = &resources[0],
.resources_len = (sizeof(resources) / sizeof(resources[0])), .resources_len = (sizeof(resources) / sizeof(resources[0])),
.next = NULL .next = NULL
}; };
static gcoap_listener_t listener_second = { static gcoap_listener_t listener_second = {
.resources = (coap_resource_t *)&resources_second[0], .resources = &resources_second[0],
.resources_len = (sizeof(resources_second) / sizeof(resources_second[0])), .resources_len = (sizeof(resources_second) / sizeof(resources_second[0])),
.next = NULL .next = NULL
}; };