blob: 00f4adb4d34908cc209a041fe223c4fbe5428a0b [file] [log] [blame]
/*
* Copyright (c) 2018 Intel Corporation
* Copyright (c) 2023 Basalte bv
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/logging/log.h>
LOG_MODULE_DECLARE(net_coap_service_sample);
#include <zephyr/sys/printk.h>
#include <zephyr/net/coap_service.h>
#include <zephyr/net/coap_link_format.h>
static int core_get(struct coap_resource *resource,
struct coap_packet *request,
struct sockaddr *addr, socklen_t addr_len)
{
static const char dummy_str[] = "Just a test\n";
uint8_t data[CONFIG_COAP_SERVER_MESSAGE_SIZE];
struct coap_packet response;
uint8_t token[COAP_TOKEN_MAX_LEN];
uint16_t id;
uint8_t tkl;
int r;
id = coap_header_get_id(request);
tkl = coap_header_get_token(request, token);
r = coap_packet_init(&response, data, sizeof(data),
COAP_VERSION_1, COAP_TYPE_ACK, tkl, token,
COAP_RESPONSE_CODE_CONTENT, id);
if (r < 0) {
return r;
}
r = coap_packet_append_payload_marker(&response);
if (r < 0) {
return r;
}
r = coap_packet_append_payload(&response, (uint8_t *)dummy_str,
sizeof(dummy_str));
if (r < 0) {
return r;
}
r = coap_resource_send(resource, &response, addr, addr_len, NULL);
return r;
}
static const char * const core_1_path[] = { "core1", NULL };
static const char * const core_1_attributes[] = {
"title=\"Core 1\"",
"rt=core1",
NULL,
};
COAP_RESOURCE_DEFINE(core_1, coap_server,
{
.get = core_get,
.path = core_1_path,
.user_data = &((struct coap_core_metadata) {
.attributes = core_1_attributes,
}),
});
static const char * const core_2_path[] = { "core2", NULL };
static const char * const core_2_attributes[] = {
"title=\"Core 2\"",
"rt=core2",
NULL,
};
COAP_RESOURCE_DEFINE(core_2, coap_server,
{
.get = core_get,
.path = core_2_path,
.user_data = &((struct coap_core_metadata) {
.attributes = core_2_attributes,
}),
});