11#if PC_ENABLE_DTLS && PC_ENABLE_COAP
17#define PC_COAPS_MSG_CAP 1152
19int pc_coaps_process(DtlsConn *c,
const uint8_t *dgram,
size_t len, uint8_t *out,
size_t out_cap)
21 if (!pc_dtls_conn_established(c))
23 return pc_dtls_conn_process(c, dgram, len, out, out_cap);
29 if (len >= 1 && (dgram[0] & 0xE0) == 0x20 && (dgram[0] & 0x03) == 3)
31 uint8_t req[PC_COAPS_MSG_CAP];
33 if (!pc_dtls_conn_open_app(c, dgram, len, req,
sizeof(req), &req_len))
37 uint8_t resp[PC_COAPS_MSG_CAP];
38 size_t pc_resp_len = pc_coap_server_process(req, req_len, resp,
sizeof(resp));
43 return (
int)pc_dtls_conn_seal_app(c, resp, pc_resp_len, out, out_cap);
45 return pc_dtls_conn_process(c, dgram, len, out, out_cap);
Zero-heap CoAP server (RFC 7252): message codec + a fixed resource table.
CoAP over DTLS (CoAPs, RFC 7252 §9) - the bridge between the DTLS 1.3 server and the CoAP request han...