Commit Graph
2652 Commits
Author SHA1 Message Date
Jon Shallow 82bf1f0f7a documentation: Fix bad url and hyperlink the RFCs 2023-05-24 08:49:26 +01:00
Jon Shallow 04f3a4a7e2 coap_oscore.c: Fix ASan detected global-buffer-overflow bug 2023-05-23 14:54:55 +01:00
Jon Shallow 08cbda80f1 block.c: Check that data received fits into specified block size 2023-05-23 14:53:33 +01:00
Jon Shallow 6f79db0a37 coap-client.c: Fix Uri-Host option setting
If the host name includes %iface, remove this from the host comparisons.
2023-05-16 12:03:19 +01:00
Jon Shallow 1cb29b6f5c net.c: Fix building without TCP enabled for EPOLL configured code
Report when using autotools or cmake that disabling TCP also disables
Websockets support.

Also, report for cmake when EPOLL support is not available.
2023-05-16 12:01:59 +01:00
Jon Shallow dbf78b526f block.h: Make COAP_OPT_BLOCK_* functions safe against NULL indirects
COAP_OPT_BLOCK_LAST(opt) may return NULL, so doing *COAP_OPT_BLOCK_LAST(opt)
is unsafe. Replace indirect with COAP_OPT_BLOCK_END_BYTE(opt).
2023-05-11 09:00:53 +01:00
Jon Shallow 4ef0705ccd block.c: Handle missing / incorrect SIZE1 and SIZE2 options 2023-05-11 08:59:59 +01:00
Jon Shallow 6cd7b7883c coap_io.c: Clean up coap_win_error_to_errno() usage 2023-05-11 08:59:04 +01:00
Jon Shallow a40ffc722c CMakeLists.txt: Set compiler options for both the library and examples
Fix some reported Windows errors now that "treat all warnings as errors" is
correctly set in the github workflows.
2023-05-11 08:57:48 +01:00
Jon Shallow 9d66e47241 coap_debug.c: Split out coap_print_ip_addr() from coap_print_addr()
Sometimes just the IP address is required, not the port as well.
2023-05-05 12:00:33 +01:00
Jon Shallow b9d53ed3d4 keepalive: Fix timeouts when network issues
If keepalive is enabled, make sure that they continue when a server
stops / starts.  Limit the retry timeouts to the number of seconds
defined by coap_context_set_keepalive() so that interim NAT devices
are always kept "warm".

Addded in a new event COAP_EVENT_KEEPALIVE_FAILURE and updated docs
accordingly.
2023-05-05 10:35:39 +01:00
Daniel Mangum 8869e97ab9 websockets: fix typo in configuration
Fixes typo of websockets in configuration help string.

Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
2023-05-05 09:49:06 +01:00
Jon Shallow e05af0d2ce coap_config.h.contiki: Increase heap memory size 2023-05-01 17:03:24 +01:00
Jon Shallow 3ebbcde43a mcast_ips: Restore mcast ip for mcast sessions for each new coap_send()
If the server is responding to a mcast request with a packet that is a
part of larger body (i.e. responding with Block2 option) the requests
for the missing packets have to be using unicast, which continues
to be supported.

The application can determine the unicast remote address before the next
coap_send() by using coap_session_get_addr_remote().

Add in a new function coap_session_get_addr_mcast() to get the mcast IP
if the client session was set up to talk to a mcast address.
2023-05-01 16:28:44 +01:00
Jon Shallow 46aa5760ee coap_session.c: Fix handling of COAP_NACK_ICMP_ISSUE disconnects 2023-05-01 10:13:07 +01:00
Olaf Bergmann 77cfb9c99e pdu.h: Remove COAP_MEDIATYPE_ANY
Closes #757 [1]

[1] https://github.com/obgm/libcoap/issues/757
2023-04-24 15:34:01 +01:00
Jon Shallow 959bbb65fa test_uri.c: Stop unnecessary logging 2023-04-24 10:45:30 +01:00
Jon Shallow e983e4eb5e Persist_OSCORE: Include nonce in the saved OSCORE information
In addition, make sure large (multi packet) FETCH observe information
is properly restored.
2023-04-24 09:55:38 +01:00
Jon Shallow 712255ec90 mid: Add leading zeros to mid= reporting for ease of debugging 2023-04-24 09:54:34 +01:00
Jon Shallow c4ce40347f coap_pdu_duplicate: Revert and fix previous change 2023-04-24 09:53:39 +01:00
Jon Shallow ca609d221c Persist: Support tracking observe information over server restarts
Add in optional callbacks for when dynamic resources are setup and deleted.

Add in optional callbacks for when observe subscriptions start and stop.

Add in optional callbacks for when the observe counter is updated (can be
ratelimited) for a resource as well as track when a resource is deleted.

Add is support for new functions

Main functions with libcoap tracking support are
 coap_persist_startup()
 coap_persist_stop()

coap-server has -t option to track observe information.

UDP sessions supported, as well as OSCORE over UDP.

Documentation updated

libcoap tracking support (as opposed to application tracking) is configurable.
2023-04-22 11:07:21 +01:00
Jon Shallow 203471118f logging: Make bytes received logging consistent 2023-04-22 10:47:43 +01:00
Jon Shallow dfaaa47405 coap_uri.c: Do more libcoap functionality checking in coap_split_uri_sub() 2023-04-22 10:46:36 +01:00
Jon Shallow e533b980fa coap_resolve_address_info: Move logic into function, simplifying server apps
Add in new function coap_get_available_scheme_hint_bits() to help as well.
2023-04-22 10:45:17 +01:00
Jon Shallow 3ba0f0756c coap_config.h.windows.in: Add in header information 2023-04-22 10:44:07 +01:00
Jon Shallow 191cd5cf40 Layers: Move layer index table into coap_layers.c 2023-04-15 19:33:18 +01:00
Jon Shallow e10a0d0eff coap_uri.c: Correctly detect port in coap_uri_into_options() 2023-04-15 19:31:55 +01:00
Jon Shallow 621fd20c2b CBOR: Check for buffer overruns when reading in CBOR data 2023-04-13 10:16:38 +01:00
Jon Shallow e82523c4d9 oscore_testcases.sh: Add in delay after starting up interop servers 2023-04-13 10:14:57 +01:00
Jon Shallow 5c11bc5f00 coap_ws.c: Fix coap_ws_is_supported() check for GnuTLS 2023-04-13 10:13:54 +01:00
Jon Shallow 8ccde068ad oss-fuzz: Parse PDUs for TCP and WebSockets 2023-04-12 13:34:33 +01:00
Jon Shallow 964bd69481 MinGW: Initial compile environment support 2023-04-12 10:06:46 +01:00
Jon Shallow aee4c3fa6e logging: Support defining maximum logging level
This allows for code reduction if not all logging levels are required.

Done by defining ./configure --enable-max-logging-level=X, where X can have
the value of 0 through 8 inclusive.

COAP_LOG_EMERG is always logged.

Can save up to 40k bytes.
2023-04-12 09:55:13 +01:00
hasheddan 3133a1e4b7 oscore.h: Fix misspelling of Environment
Fixes a misspelling of Environment.

Signed-off-by: hasheddan <georgedanielmangum@gmail.com>
2023-04-11 20:54:53 +01:00
Jon Shallow 281f12107a coap_internal.h: Support builds with WebSockets and without OSCORE 2023-04-11 11:25:11 +01:00
Jon Shallow a4bbac4a60 coap_mutex_internal.h: Convert tabs to spaces 2023-04-10 14:56:03 +01:00
Jon Shallow 391803aebf WebSockets: Add in support for WebSockets layer
Follows RFC6455, as specified in RFC8323.

Make support configurable.

Add in example support.

Update other code to be aware of WebSockets as a CoAP protocol.
2023-04-10 14:38:56 +01:00
Jon Shallow f0f20c285d syslog.h: Leave in conditional LOG_ definitions for now 2023-04-10 14:19:09 +01:00
Jon Shallow 6599297edb syslog.h: Remove all references to syslog.h
syslog.h is no longer required for libcoap as all LOG_ usage has been replaced
with COAP_LOG_.

Added #include <stdio.h> to example code for code-client and coap-server as
a hint should application code be using LOG_.
2023-04-10 14:03:13 +01:00
Jon Shallow 546f4203b1 examples: Clean up memory usage on error close down
Makes valgrind testing easier.

Note that it is unsafe to call coap_free_context() from with an atexit()
handler.
2023-04-08 18:02:16 +01:00
Jon Shallow 605c875030 coap_session.c: Make sure that lg_crcv is properly freed off
The response will never get seen as coap_session_mfree() continues to
close down the socket.
2023-04-08 17:59:36 +01:00
Jon Shallow 59e9434518 workflows: Support Windows changed OpenSSL directory
No longer need choco to install install OpenSSL as it is in loaded image.
2023-04-07 14:51:11 +01:00
Jon Shallow 5ae51b4ef1 Makefile.am: Make sure libcoap-3.{map|sym} sort is consistent 2023-04-04 19:36:40 +01:00
Jon Shallow 53615f5643 coap_encode.c: Fix coap_flsll() for negative numbers 2023-04-04 19:35:09 +01:00
Jon Shallow 00e4510636 net.c: Fix critical option checking 2023-04-04 19:33:16 +01:00
Jon Shallow e242200f0a net.c: Fix potential overflow in coap_send_internal() 2023-04-03 17:29:55 +01:00
Jon Shallow 6cd2ecb136 resource.c: Use initialized token in coap_notify_observers() 2023-04-03 17:27:58 +01:00
Jon Shallow da6459416f coap-server.c: Fix scheme hint type tracking
Missing part of a Websockets merge.
2023-03-26 18:53:37 +01:00
Jon Shallow 305c400d6f LwIP: Fix git clone url 2023-03-24 12:53:59 +00:00
Jon Shallow c041af0b2b WebSockets: Add in libcoap infrastructure
Add in stub Websockets files.

Add in coap_crypto_hash(0 function.

Actual WebSocket support for applications will follow.
2023-03-24 09:49:00 +00:00