Commit Graph
1080 Commits
Author SHA1 Message Date
jcmichelou f81cb43fd3 session, pdu: Enforce maximum message size. 2017-10-21 16:11:12 +02:00
jcmichelou c592c9d11f session, net, debug: Add TCP signaling messages. 2017-10-21 16:11:12 +02:00
jcmichelou dfff930805 io, net: Add TCP accept/connect/read/write 2017-10-21 16:11:12 +02:00
jcmichelou bcfd7a0753 pdu: add support for TCP-style headers
Make coap_pdu-t independent of the header style.
Use C99 sized types when applicable.
Use transaction ids in host byte order in the library.
Make coap_pdu_t payload storage grow on demand.
Add parsing and encoding of PDUs with UDP or TCP style headers.
Adapt examples and unit tests to the new PDU format.
2017-10-21 16:11:11 +02:00
Olaf Bergmann 95a97c349e Dockerfile: use pre-built image and cleanup unused packets 2017-10-16 18:02:01 +02:00
Olaf Bergmann bea82fef30 build.sh: disable documentation to speedup continuous integration 2017-10-16 17:53:00 +02:00
Olaf Bergmann ca3a88c5e4 Dockerfile: added packages for documentation, exuberant-ctags 2017-10-16 14:44:24 +02:00
Olaf Bergmann 2d987aee39 Dockerfile: added missing packages for documentation build process 2017-10-16 14:19:44 +02:00
Olaf Bergmann f9d7507431 .travis.yml: invoke docker with build script 2017-10-16 14:13:31 +02:00
Olaf Bergmann 9db50812d2 .travis.yml: changed travis configuration to use docker 2017-10-16 13:49:07 +02:00
Olaf Bergmann dcfef0a615 Dockerfile: added Dockerfile for travis continuous integration 2017-10-16 13:48:32 +02:00
Olaf Bergmann ff84892817 .gitignore: added TAGS file to ignored files 2017-10-06 09:50:45 +02:00
Olaf Bergmann 073016ebea coap_io.c: fix time propagation when removing node from sendqueue
PR #100 has fixed the propagation of elapsed time in coap_pop_next()
which affects the next node in the respective send queue. This fix
is also required for platform POSIX.
2017-10-06 09:46:56 +02:00
obgm 6ee35e4a37 Merge pull request #100 from Trilliant/Trilliant/feature/fixLwipRelativeTimeOnExpiration
Set relative time 't' to zero when it actually expire
2017-10-05 17:21:47 +02:00
obgm c1254c1be8 Merge pull request #111 from spinetix/build-fixes
Assorted build fixes
2017-09-21 12:48:10 +02:00
Olaf Bergmann 89c617ad46 .travis.yml: temporarily switch off contiki and lwip
As the current develop head does not support the recent API
changes, the platforms Contiki and LwIP cannot be built properly
by Travis (see https://travis-ci.org/obgm/libcoap/). Until this
has been fixed, these platforms are disabled.
2017-09-20 11:18:49 +02:00
Diego Santa Cruz cfb9575e01 libcoap-1.pc.in: do not unnecessarily expose DTLS libs to users
The SSL lib used to implement DTLS is only used internally
by libcoap, so it is not necessary and sometimes harmful to
expose it via the pkg-config file. Only when doing static
linking is it necessary to link the SSL lib, this is done
via the "Libs.private: pkg-config directive.
2017-09-20 10:57:46 +02:00
Diego Santa Cruz fde93fca90 configure.ac: fix linker version script detection
The detection of linker's support for version scripts fails
when building outside the source tree due to missing source
path to the linker script.
2017-09-20 10:54:02 +02:00
Diego Santa Cruz 9b12571804 Makefile.am: fix building outside of source tree
When building outside the source tree compilation fails on
examples, because the libcoap headers expect to be all in the
same directory but coap.h is generated under the build
directory, so it is necessary to add an extra include path
for it.

Also, build directories should always appear before source
directories in the include path, so that any leftover
generated files in the source tree are ignored.
2017-09-20 10:48:54 +02:00
obgm 91663e9510 Merge pull request #110 from cladmi/pr/unused_parameter_warning
Unused parameter warning
2017-09-12 17:23:37 +02:00
cladmi 57a3b59060 coap-server: fix unused 'request' parameter 2017-09-12 15:48:58 +02:00
cladmi 5bfea5fdd2 coap_session: fix unused 'reason' parameter 2017-09-12 15:48:46 +02:00
Olaf Bergmann 9e7c520a93 libcoap-1.{sym,map}: updated map files to include new functions
PR #106, #107, and #108 have introduced new functions. This change
updates the .map and .sym files to include the additional symbols.
2017-09-09 01:24:45 +02:00
obgm 8a30adefa5 Merge pull request #108 from spinetix/log-handler
Add a log handler callback.
2017-09-09 01:22:13 +02:00
obgm abddc07559 Merge pull request #107 from spinetix/handler-lost-con
Add handler for lost CON messages.
2017-09-09 01:21:32 +02:00
obgm 746cd397a6 Merge pull request #106 from spinetix/observe-with-query-string
Query string dependent observe.
2017-09-09 01:20:51 +02:00
jcmichelou d89159fdb4 debug.[hc]: Add a log handler callback. 2017-09-08 20:12:39 +02:00
jcmichelou 25732fc8e6 coap_session.[ch], net.c: Add handler for lost CON messages.
Add a slot for storing application-specifc data in session object.
Make the library resilient against client session released in a callback.
2017-09-08 20:02:22 +02:00
jcmichelou 30619691e2 resource.[ch], uri.c[ch]: Query string dependent observe.
Remember the query string used during the observe request and pass it to the resource handler.
Support partial notification of observers based on the query string.
2017-09-08 19:50:34 +02:00
Olaf Bergmann 1d5ecb3690 .travis.yml: use default dist (= trusty)
As described in [1], trusty now is the default distribution for
travis-ci, so the explicit "dist: trusty" can be removed.

[1] https://blog.travis-ci.com/2017-08-31-trusty-as-default-status
2017-09-07 12:43:25 +02:00
Olaf Bergmann 4dd5e0c19d .travis.yml: add branch travis-test to build list 2017-09-07 12:43:12 +02:00
Olaf Bergmann 00338ff502 async.c: fixed signature of dummy functions
The signature of several dummy functions that are defined to make
compilers happy that complain on empty modules was not standards
compliant. To avoid related compiler warnings, the formal argument
list of this function now is explicitly declared as void.
2017-09-05 17:18:29 +02:00
Olaf Bergmann 8ad4abb6d8 coap_notls.c: fix compiler warning regarding unused parameter 2017-08-31 15:41:43 +02:00
Olaf Bergmann ced706e66d .travis.yml: added flag for TLS library selection
The environment variable TLS now controls the DTLS-specific configuration
options. The following values are defined:

  no       turn off DTLS support
  openssl  use OpenSSL library
  gnutls   use GnuTLS library
  tinydtls use tinydtls library

Any other value will be mapped to gnutls which is the default.
2017-08-31 14:01:26 +02:00
Olaf Bergmann d4bb044afa Merge commit 'ea58f259d' into develop 2017-08-31 13:32:20 +02:00
Olaf Bergmann 0145710670 option.c: split comment to fall through to quiet compiler warning
Shut up warning from -Wimplicit-fallthrough by placing "fall through"
in comment on its one line.
2017-08-31 13:21:29 +02:00
Olaf Bergmann 3feee38045 uthash.h: fix compiler warning for missing default case in switch statement
Added a no-op default case to switch statement in macro HASH_JEN in order
to fix compiler warning.
2017-08-31 13:14:01 +02:00
Olaf Bergmann 318eec25b5 async.c: included macro SEARCH_PAIR from commit 5b1a8f67
Commit 5b1a8f67 added two macros LL_SEARCH_PAIR and LL_SEARCH_PAIR2
to utlist.h which is maintained at [1]. To simplify updates of this
file, the macros have been moved into async.c as this is the only
place where they are used. To avoid confusion with linked list macros
from utlist.h, the prefix "LL_" has been removed from the custom
macros.

[1] https://github.com/troydhanson/uthash
2017-08-31 13:06:17 +02:00
Olaf Bergmann 2133742f84 utlist.h, uthash.h: updated to fix compiler warnings
With gcc 7.2.0, new compiler warnings related to utlist.h and
uthash.h have occured. Several have been fixed by updating the
header files to the latest version from [1].

[1] https://github.com/troydhanson/uthash
2017-08-31 12:49:47 +02:00
Thadeus Fleming ea58f259d7 Remove return 0 in coap_dtls_handle_timeout in coap_notls.c
Fixes #102.
2017-08-28 09:59:03 -05:00
Olaf Bergmann 5c079b72d9 coap_session.[hc]: make message id session-local
The message id in the CoAP header is used for reliability when
transferring a CoAP PDU over a non-reliable transport protocol
such as UDP. For message de-duplication, it is useful to have
a monotonously increasing number space within a session. Therefore,
the context-global value has been moved to coap_session_t.
The function coap_new_message_id() now takes a coap_session_t
object as its argument.
2017-08-18 14:15:20 +02:00
Jean-Philippe Comtois d26f9479fc Set relative time t to zero when it expired
Not seting that relative time to zero will only (in the pop process) increase the next node relative time with this one. 
e.g. if node1->t = 1000 (1 sec), and node2->t = 1000 ( + 1 sec),
after 1 sec, we pop node1 and node2 become first with t = 2000 (as pop will do node2->t += node1->t. But in reality, 1 second already elapsed, so node2->t should be 1000 instead.
2017-08-08 11:51:35 -04:00
John Carter d7ebf14395 coap-server.c: fixed wait time for coap_run_once() invocation
In the main of examples/coap-server.c wait_ms was set to
COAP_RESOURCE_CHECK_TIME * 1000, then coap_run_once() was invoked
with parameter timeout_ms as COAP_RESOURCE_CHECK_TIME * wait_ms,
i.e., squaring the resource check time.

This bug has been fixed by removing COAP_RESOURCE_CHECK_TIME from
the call to coap_run_once().

Signed-off-by: Olaf Bergmann <bergmann@tzi.org>
2017-08-08 12:23:41 +02:00
Olaf Bergmann 50da9f1d97 libcoap-1.{sym,map}: re-generated symbol maps for dynamic linking 2017-08-04 15:27:52 +02:00
Olaf Bergmann 627e8ca2e3 Makefile.am: add coap_socket_send_pdu to CTAGS_IGNORE
ctags is being used to create the symbol maps for dynamic library
generation. Exported symbols from other platforms such as LWIP
must be excluded from these maps to avoid linker errors for undefined
symbols.

This modification adds the LWIP-specific function coap_socket_send_pdu()
to the exclusion list.
2017-08-04 15:24:32 +02:00
Olaf Bergmann e77c3565cb client.c: show outgoing and received PDUs in log level INFO
coap-client now prints PDUs that are sent and received in log level
INFO so that these are output with '-v6' or higher. These messages
are now visible without turning on the full debug.
2017-08-03 15:24:36 +02:00
Olaf Bergmann 59f9745c04 debug.c: added media type names from RFC 8152
print_content_format() converts numeric Content-Format specifiers
to readable media type names. This change adds the new content
formats from RFC 8152 to this list.
2017-08-03 15:22:08 +02:00
Olaf Bergmann d9a0b4019d pdu.h: added content format definitions from RFC 8152
See https://tools.ietf.org/html/rfc8152#section-16.10
2017-08-02 21:54:31 +02:00
Olaf Bergmann f2ebb4f926 coap-rd.c: removed unused signal handler 2017-08-02 21:30:46 +02:00
Olaf Bergmann 8f37e20f85 coap-server.c: removed parameter local_if from check_async()
coap_async_state_t now contains a reference to the session that is
associated with the respective async state. As the response must
be sent over this session, the local_if parameter of check_async()
is not used anymore and can be removed.
2017-08-02 21:26:55 +02:00