Commit Graph
78 Commits
Author SHA1 Message Date
Jon Shallow cb78d5fd85 release 4.3.2rc1: Release candidate for 4.3.2 2023-07-22 09:29:32 +01:00
Jon Shallow 9763b3a25a Documentation: Fix typos 2023-07-22 09:27:00 +01:00
Jon Shallow 57013f3377 RFC9177: Add in Q-Block support
examples/coap-client.c:
examples/coap-server.c:

Add in Q-Block intelligence.

include/coap3/block.h
include/coap3/coap_block_internal.h
include/coap3/coap_event.h

Add in Q-Block references.
Add in new functions
coap_block_check_q_block1_xmit()
coap_block_check_q_block2_xmit()
coap_send_q_blocks()
coap_send_q_block1()
coap_send_q_block2()
coap_block_drop_resp_q_block_xmit()
coap_block_drop_resp_q_block2_crcv()
coap_q_block_is_supported()

include/coap3/coap_session.h:

Add in new Congestion Control defaults and ability to configure them.

include/coap3/pdu.h:

Add in the new options.

libcoap-3.map:
libcoap-3.sym:

Expose external Congestion Control functions.

man/coap-client.txt.in:
man/coap-server.txt.in:
man/coap_block.txt.in:
man/coap_handler.txt.in:
man/coap_recovery.txt.in:
man/coap.txt.in:

Add in Q-Block information.

src/block.c:

Add in the new functions to support Q-Block.

src/coap_debug.c:

Output the new options as appropriate.

src/coap_io.c:

Check for Q-Block transmission timeouts.

src/coap_session.c:

Add in the Congestion Control support.

src/net.c:
src/resource.c:

Add in Q-Block support.

configure.ac
CMakeLists.txt

Add in support for enabling/disabling Q-Block support (enabled by default).
2023-07-11 11:04:04 +01:00
Jon Shallow 57eb0df962 doc/main.md: Update URI for coap.space to use HTTPS 2023-05-24 17:12:40 +01:00
Jon Shallow 82bf1f0f7a documentation: Fix bad url and hyperlink the RFCs 2023-05-24 08:49:26 +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 6315c1af53 doxygen: Fix out of tree error and refresh Doxyfile 2023-03-13 19:44:14 +00:00
kkrentz 79c66705a1 Updates Contiki-specific code to Contiki-NG 2023-02-08 16:05:09 +00:00
Jon Shallow 47a83549a8 RFC8974: Add in support for Extended Tokens
Add in new function coap_context_set_max_token_size() to define
the maximum supported token size.

Track changes to PDU to support extended tokens.

Update documentation.
2023-02-04 11:08:32 +00:00
Olaf Bergmann 5e79c96882 Doxyfile.in: Adjust maximum value for graph nodes
This change increases DOT_GRAPH_MAX_NODES to 100. With the default
value 50, the following error message occured:

error: Included by graph for 'coap_internal.h' not generated, too many nodes (51), threshold is 50. Consider increasing DOT_GRAPH_MAX_NODES.
2023-01-20 18:05:14 +01:00
Jon Shallow dac6bd3b60 RFC8613: Add in OSCORE support
Based on work done in https://gitlab.informatik.uni-bremen.de/obergman/libcoap

New directories with files
 include/oscore
 src/oscore

New files
 include/coap3/coap_oscore.h
 include/coap3/coap_crypto_internal.h
 include/coap3/coap_oscore_internal.h
 man/coap-oscore-conf.txt.in
 man/coap_oscore.txt.in
 src/coap_oscore.c
 tests/test_oscore.c
 tests/test_oscore.h

Supported by new option (enabled by default)
 ./configure --enable-oscore
 cmake .. -DENABLE_OSCORE=ON

Requires a TLS library configured to do the OSCORE encryption and hashing.
2023-01-14 10:26:20 +00:00
Jon Shallow 3552b53be4 Copyright: Update copyright date to end 2023 as appropriate 2023-01-02 11:45:10 +00:00
Jon Shallow 4821daf366 documentation: Tidy up documentation
Provide consistency across all of the man pages as per :-

Provide missing function headers for functions.

Hyper link the function definitions.

Hyper link RFC references (except in code blocks).

Use https://rfc-editor.org/rfc/rfc.... instead of
https://tools.ietf.org/html/rfc.... for the RFC links.

Use https://rfc-editor.org/rfc/rfc.... instead of
https://datatracker.ietf.org/doc/html/rfc.... for the RFC links.
2022-12-20 20:34:37 +00:00
Jon Shallow 3126102d00 includes: Prefix more header files with coap_ to prevent name clashes
encode.h and str.h are not used in any open PRs and can safely be renamed
with a coap_ prefix.

Order the include lists alphabetically as if all the entries have a coap_
prefix, so when the include file gets renamed with a coap_ prefix, the
include order is not disturbed.

Rename (as these are all internal files) for clarity
coap_mutex.h to   coap_mutex_internal.h
coap_hashkey.h to coap_hashkey_internal.h
uthash.h to       coap_uthash_internal.h
utlist.h to       coap_utlist_internal.h
2022-10-20 17:00:44 +01:00
Jon Shallow de1bc9f3cb LwIP: Add in support for client
New demo client app.

Update some of the memory sizes.
New coap_lwip_dump_memory_pools() to dump LwIP memory pool usage.

Add in logic to handle new client sessions.

New coap_io_process() to handle LwIP which can invoke a callback handler
to wait / timeout for the next input handler.
New coap_lwip_set_input_wait_handler() to define this handler.

Update coap_io_prepare_io() to handle LwIP.

Support re-use of pbuf for PDU re-transmissions.

Make sure that NSTART is correctly obeyed.

Build the client with client only libcoap code.

Build the server with server only libcoap code.

Update LwIP source to latest stable release.

Reserve memory for a response PDU.

New coap_lwip(3) man page.

Update directory structures for config files.

Update files contained in "make dist" and check lwip rebuilds
in the github workflows.
2022-09-22 10:14:48 +01:00
Jon Shallow ab9488559f Doxygen: Fix missing links for later versions of asciidoc
Fix the link for the last entry in the name list where asciidoc
converts the minus sign to an extended dash (em dash)

Remove the updating of navtree.js as it is done differently in later
versions of doxygen.

Add in the missing name entry for coap_attribute.
2022-09-02 13:00:51 +02:00
Jon Shallow 707aed35d3 Doxygen: Hyperlink man page functions
Where functions are referred to in the man pages, hyperlink them for
easy cross reference.
2022-08-26 17:37:41 +01:00
Jon Shallow d09204e24a Doxygen: Add in individual man pages for the ease of finding the functions
Add in a new index tag for all the functions defined within the man pages.

Highlight the occurrence of that function name in the appropriate displayed
page.

For the man pages that have been restructured to break out the individual
functions, jump to the function definition.
2022-08-23 14:21:45 +02:00
Jon Shallow 922e81a0d2 Doc: Include statement about upgrading to 4.3.1 2022-08-22 14:54:47 +02:00
Jon Shallow 43bfbea924 Copyright: Update dates to 2022 where appropriate 2022-08-18 13:23:36 +01:00
Jon Shallow 37731524a0 RFC8516: Document support 2022-08-18 13:22:18 +01:00
Jon Shallow 415fbdb7cd RFC9175: Add in support for the Echo and Request-Tag options
A unique Request-Tag is added to any PUT/POST/FETCH request that contains
a large body.  The server is then able to differentiate between concurrent
sending of large data using the same session.

If a server responds with a 4.01 and includes an Echo option, then the libcoap
client retransmits the request adding in the received Echo option with the same
value.

If the server responds normally with an Echo option, then the next request
from the libcoap client (internally added by libcoap) will contain that Echo
option.

It is the responsibility of the server application to add in the Echo
option if required and validate the next request unless the Echo is triggered
by OSCORE (RFC8613 Appendix B.1.2).
2022-06-22 15:08:47 +02:00
Jon Shallow 445a9481de RFC7390: Update support for RFC7390
Update documentation and add in missing content-format.
2022-05-26 21:10:29 +01:00
Olaf Bergmann cfbf3ab617 doc/main.md: Update copyright year 2022-05-11 13:03:51 +02:00
Jon Shallow b2ad43319a doc/Makefile.am: Include module_api_wrap.h in a distribution 2022-02-18 13:34:24 +00:00
Jon Shallow 0aeb0d6247 doxygen: Tidy up Modules and Files tab information
doc/module_api_wrap.h: New

Used to split modules into Application and Internal only.

include/coap/*.h:

Module (@defgroup) description put into group application_api or internal_api
as appropriate.

Add in @file information if missing.

src/*.c

Add in @file information.
2021-09-30 16:59:04 +01:00
Jon Shallow 587de900c2 coap_mbedtls.c: Add in TLS support 2021-09-27 21:20:07 +01:00
Jon Shallow 9447930cde async: Fix building with './configure --disable-async'
Correct some parameters for the dummy coap_async_*() functions.

Update some documentation for clarity.
2021-06-14 13:04:35 +01:00
Olaf Bergmann 60421db0a5 Add SPDX-License-Identifier to source files
This change adds 'SPDX-License-Identifier: BSD-2-Clause' [1] to
the source code files that originate in the libcoap project.

Note that not all files are tagged because they are pulled in
from other sources and thus may fall under a different license.
More information about these is contained in the LICENSE file.

[1] https://spdx.org/licenses/BSD-2-Clause.html
2021-06-08 18:14:03 +02:00
Jon Shallow 8d73044579 coap_send(): Consolidate coap_send() and coap_send_large() for applications
As it is not that intuitive when to use coap_send() or coap_send_large()
in applications, rename libcoap usage of coap_send() to coap_send_internal()
and then all usages of coap_send_large() to coap_send() so that only
coap_send() is required in applications.

Documentation updated accordingly.
2021-05-29 14:08:00 +01:00
obgm 62b2be4da1 Merge pull request #667 from mrdeep1/dtls_default
configure.ac: Add in --enable-add-default-names option
2021-05-28 18:06:24 +02:00
Jon Shallow 7cd5bfa638 configure.ac: Add in --enable-add-default-names option
If --enable-add-default-names is set (the default), then the installed default
libraries and installed default example executables will point to the
appropriate object that has the (D)TLS library type in the name.  E.g.

libcoap-3.so -> libcoap-3-openssl.so
coap-client -> coap-client-openssl

If --enable-add-default-names is not set, then this will not happen.

As well as the libraries, the example binaries are now created with the (D)TLS
library extension in all cases.
2021-05-20 16:33:28 +01:00
Olaf Bergmann 2991da5547 doc/Makefile.am: Fix target dist
Ensure that EXTRA_DIST contents are included in make dist even
if configured without documentation. CLEANFILES is also set
outside the conditional area to enable proper cleanup.
2021-05-20 17:27:02 +02:00
Jon Shallow bddb1c5989 LICENSE: Install in documentation root (--docdir)
Include README and COPYING as well, so that they can be a part of a library
distribution.

Make this optional with ./configure --enable-license-install
which is enabled by default.
2021-05-11 22:06:26 +01:00
Olaf Bergmann 910dd37e19 Doxyfile.in: exclude uthash files from documentation 2021-04-29 12:41:33 +02:00
Olaf Bergmann 870be9f0b6 doc/Makefile.am: update man-page-build dependency order
The target man-page-build requires the update pages' html to be
present. To avoid race conditions with `make -k`, upg-page-build now
has become a prerequisite for the target man-page-build.
2021-04-29 12:41:33 +02:00
Jon Shallow 48b47c0b84 Doc: Add in upgrade information
Adds in an Upgrading tab to the Doxygen output

Add in 4.2.1 to 4.3.0 upgrading information

Remove the Bugs tags as it does not add helpful information
2021-04-28 14:14:24 +01:00
Jon Shallow 3b277a08cf cmake: Fix missing directories error
The man pages are still not built - otherwise all the doxygen documentation
is built.

Add back in missing "Bug List" to the Makefile version which is there in
the cmake version.
2021-04-22 10:34:04 +01:00
obgm b38eecced6 Merge pull request #649 from mrdeep1/nits_1
Nits: Fix minor issues
2021-04-20 15:57:08 +02:00
obgm 0dea676758 Merge pull request #648 from mrdeep1/doc_main
Doxygen: Add in RFCs and TLS libraries supported to main page.
2021-04-20 15:03:50 +02:00
Jon Shallow 50499fb859 Nits: Fix minor issues 2021-04-19 11:14:03 +01:00
Jon Shallow 88a15a53b5 Doxygen: Add in RFCs and TLS libraries supported to main page. 2021-04-19 09:41:57 +01:00
Jon Shallow 56f5aeb2ff Doxygen: Catch generated warnings as errors
Fix coap_net_internal.h issue.
2021-04-16 19:24:49 +01:00
Olaf Bergmann 877e8d01d7 Updated Doxyfile.in to version 1.9.1 2021-03-17 18:57:40 +01:00
Jon Shallow 12fd8a25f7 Update general copyrights to 2021
Update main copyright statements to 2021.
2021-01-04 10:37:05 +00:00
Olaf Bergmann c7c416b8a0 Doxyfile.in: updated to version 1.8.20
The Doxyfile template has been updated to version 1.8.20 to get of
warnings due to deprecated features that were still referenced.
2020-10-14 14:41:40 +02:00
Jon Shallow 15f9cf568a coap_openssl.c: OpenSSL < 1.1.1 fails to build with --disable-tcp
Missing COAP_DISABLE_TCP wrapper in OpenSSL 1.1.0 - 1.1.1 specific code

doc/main.md:

Update Copyright year.

include/coap2/coap_tcp_internal.h:

Update documentation for the internal TCP functions

src/coap_session.c
src/coap_tinydtls.c

Delete trailing space
2020-02-04 10:30:16 +00:00
Olaf Bergmann d52c26642e doc/main.md: Small fixes in documentation main page
* Updated copyright year.
* Use EN_US for consistency.
2019-11-05 14:07:00 +01:00
Jon Shallow 3574d0c8b0 Order the doxygen Modules and Manual Pages listings alphabetically
doc/Doxyfile.in:

SORT_GOUPNAME = YES to sort Modules

doc/Makefile.am:

Sort the MAN_FILES list.  coap(7) first and examples last.
2019-08-09 17:40:28 +02:00
Carsten Schoenert 637a09cfbd spelling: fix bandwith -> bandwidth 2018-11-24 13:58:44 +01:00