Commit Graph
64 Commits
Author SHA1 Message Date
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
Olaf Bergmann 97919c5c64 doc/Makefile.am: add main.md to EXTRA_DIST 2018-10-25 11:05:33 +02:00
Jon Shallow ca17e3ab55 Update to patches to make doc/ builds work out of tree
configure.ac:
remove reference to doc/build_man_files.sh as it is no longer used

doc/Makefile.am:
Correct BASE definition to be that of the filename without any suffix so
Doxygen can properly @ref the file
Remove usage of 'cat'
Tidy up debug comments and indentation
Make sure cp overwrites destination files if they exist
Support building doc/ if asciidoc (a2x) is not available (the nam pages will
not get generated and included though.
2018-10-18 14:09:59 +02:00
Carsten Schoenert eeab614fd1 doc/Makefile.am: put script functionality into Makefile
Remove the dependency on the script build_man_files.sh and place all the
magic into dedicated Makefile targets.
2018-10-18 13:43:49 +02:00
Carsten Schoenert 9de598ac4f doc/Doxyfile.in: adjust paths to top_builddir
If we work out of tree some files are build in top_builddir and not in
top_souredir.
Also fix up the used libcoap API versin by using a global variable here.
2018-10-18 13:43:48 +02:00
Jon Shallow f8bdac31db Update doc build to support out of path builds
Use a new template doc/build_man_files.sh.in to include @top_srcdir@/doc
@top_srcdir@/man as appropropriate.

Update doc/Doxyfile.in in a similar way (and coap/ to coap2/)

Makefile.am autogen.sh configure.ac taught about doc/build_man_files.sh.in

Update doc/Makefile.am to include $(top_srcdir) and $(top_builddir)
2018-10-18 13:41:58 +02:00
Olaf Bergmann 92dd8281ad Doxyfile.in: read API from include/coap@LIBCOAP_API_VERSION@ 2018-10-04 13:09:54 +02:00
Jon Shallow 8238f628b9 Include man pages into Doxygen. Add landing page for Doxygen
Added in a new landing page for Main Page
 doc/main.md (new)

Enabled Tree View of whats available
Disable Related Pages TAB as it fills up with the man pages
 - updated doc/Doxyfile.in

Get a2x to also generate html man pages which are then included.  These
html files are updated to correct the lowercasing of NAME and SYNOPSIS.
The SEE ALSO references to other man pages are made hyper links.
 - done by doc/build_man_files.sh (new)

Created a new TAB Manual Pages
Created a new TAB Depricated Items
 - done by modifing DoxygenLayout.xml file using doc/build_man_files.sh

Updated .gitignore to ignore additional files and autogen.sh to clean them up

man/coap*txt.in updated to display as expected in Doxygen.

This only updates documentation

.gitignore
Makefile.am
autogen.sh
doc/Doxyfile.in
doc/Makefile.am
doc/build_man_files.sh (New)
doc/main.md            (New)
include/coap/debug.h
include/coap/encode.h
include/coap/option.h
include/coap/pdu.h
include/coap/prng.h
man/Makefile.am
man/coap.txt.in
man/coap_attribute.txt.in
man/coap_context.txt.in
man/coap_encryption.txt.in
man/coap_handler.txt.in
man/coap_logging.txt.in
man/coap_observe.txt.in
man/coap_pdu_setup.txt.in
man/coap_recovery.txt.in
man/coap_resource.txt.in
man/coap_session.txt.in
man/coap_tls_library.txt.in
2018-09-24 16:46:42 +01:00
Olaf Bergmann 5cc5273867 Doxyfile.in: decrease verbosity of doxygen output
To avoid cluttering the build output with lots of doxygen messages
the QUIET parameter now has been set to YES.
2017-11-03 13:36:24 +01:00
Carsten Schoenert 18f2309759 make: enable out of tree build
The build environment was lacking the possibility to get libcoap
buildable out of tree, simply checkable by the running 'make distcheck'.
Without this fix the users are impossible to build libcoap in a own
folder that's independed from the source containing folder. Typical use
case would be:

  $ mkdir libcoap-build && cd libcoap-build
  $ /path/to/libcoap-source/configure \
      --srcdir=/path/to/libcoap-source \
      --prefix=/somethere/to-install

This commit enables the out of tree build by adding and changing some
needed variables.
2016-10-26 10:46:50 +02:00
Carsten Schoenert c909bf8020 doc/Makefile.am: remove *.md5 files after installation
Doxygen creates various hashfiles (*.md5) to check which files needs to
be re created if the input files has been changed. The user don't need
those hashfiles so let's remove these from final install target.
2016-04-26 08:29:42 +02:00
Carsten Schoenert 5f6ae26e2c doc/Doxygen.in: Do not use FreeSans as dot fontname
The FreeSans font isn't shipped by doxygen anymore so we can not asumme
that the font is available on the system of the user.
Just let doxygen pick up a usable font by itself.
2015-06-02 20:41:37 +02:00
Carsten Schoenert a78bd8c876 doc/Makefile.am: respect DESTDIR variable
The old behavior didn't allow a additonal setting of the DESTDIR
variable. This is a serious problem while building within a chroot for
example. Also the implementation of the stamp file was triggering
multiple builds in some cirumstances. This handling is reverted with the
remove of the old stamp file handling.
2015-06-02 20:41:37 +02:00
Carsten Schoenert 531c5da5da Doxyfile.in: adding some excludes for lwip related files
Due changes to the *.c and *.h files (added for the lwip support) we have
to exclude files that are not related to the library.
2015-04-14 15:53:27 +02:00
Carsten Schoenert 3b87d7dc8f doxygen: include extra information about extra CFLAGS 2015-04-10 21:09:27 +02:00