12023-09-18 Olaf Bergmann <bergmann@tzi.org> 2 3 Change summary for version 4.3.4: 4 5 * Clean up use of tags. 6 * Support for MacOS with Contiki-NG builds. 7 * Support for Windows with OpenSSL 3.x builds. 8 * Reported bugs fixed. 9 * Documentation updated. 10 112023-09-12 Olaf Bergmann <bergmann@tzi.org> 12 13 Change summary for version 4.3.3: 14 15 * Fix ABI version. 16 172023-07-13 Olaf Bergmann <bergmann@tzi.org> 18 19 Change summary for version 4.3.2: 20 21 * Source files reformatted according to pre-commit rules. 22 * Support for RFC8613 (OSCORE). 23 * Support for RFC8974 (Extended Tokens). 24 * Support for RFC9177 (Q-Block). 25 * Support for latest RIOT code and new examples. 26 * Support for MinGW builds. 27 * Support for AF_UNIX sockets. 28 * Support for WebSockets (RFC8323). 29 * Support for IPv4 only and IPv6 only libcoap builds. 30 * Support for defining maximum logging level. 31 * Support for maintaining Observer requests over server restarts. 32 * Support for Contiki-NG. 33 * Support for latest LwIP, including using TinyDTLS. 34 * libcoap now has protocol layered support, separating out the 35 logical layers. Stack now is:- 36 - Application 37 - libcoap - CoAP 38 - libcoap - CoAP-Session 39 - libcoap - (D)TLS I/F using external (D)TLS Library 40 - libcoap - Netif 41 - libcoap - Sockets 42 - Kernel Network Stack 43 * Fixes CVE-2023-30362 and CVE-2023-35862. 44 * Reported bugs fixed. 45 * Examples now support separate logging levels for libcoap and (D)TLS. 46 * syslog LOG_ logging levels replaced with COAP_LOG_ logging levels. 47 * New public API functions to aid / reduce application coding. 48 * Remove requirement for applications to have sockaddr knowledge. 49 * Support for clients sending IPv4 broadcast requests. 50 * Documentation added and updated (Doxygen and man). 51 522022-08-17 Olaf Bergmann <bergmann@tzi.org> 53 54 Change summary for version 4.3.1: 55 56 * Support for Server only and Client only libcoap builds. 57 * Add support for repeating requests in coap-client. 58 * Add in support for defining resources that support multicast. 59 * Add in more support for async delayed requests. 60 * Add in support for not closing down Observe when closing session. 61 * Support for RFC7390, RFC8516 and RFC9175. 62 * Warn when Tokens are re-used. 63 * Warn when Options are repeated that are not defined as being 64 repeatable. 65 * Support for TLS when using Mbed TLS library. 66 * Support for Mbed TLS 3.1 67 * Add in BERT support for block handling. 68 * More rigorous error handling for Block transfers. 69 * Support for using external or submodule TinyDTLS. 70 * Cmake - add in Apple build support. 71 * Source files renamed to be more consistent in naming. 72 * Update native Windows VC builds to use libcoap-3 instead of libcoap-2. 73 * Reported bugs fixed. 74 * Example applications Help report include build version. 75 * Documentation added and updated (Doxygen and man). 76 772021-05-04 Olaf Bergmann <bergmann@tzi.org> 78 79 Change summary for version 4.3.0: 80 81 * Include directory updated from include/coap2 to include/coap3 as 82 this is a major version change. 83 * Other code references updated from coap2 to coap3. 84 * Examples now have the underlying (D)TLS library name as a suffix. 85 E.g. coap-server-openssl 86 * Examples and libraries can be installed with default names using 87 ./configure --enable-add-default-names 88 * Many call-back handlers have had their parameter lists changed, some 89 variables are made const and other ones removed as they can be easily 90 reconstructed if needed. 91 * Some functions have their parameters changed to const. 92 * Internal structures made opaque to applications, requiring the 93 applications to access the structure information via a new set of 94 functions. The new functions are of the form coap_X_get_Y() or 95 coap_X_set_Y() where X is the structure (e.g. session) and Y is 96 the variable. 97 * coap_async_state_t 98 * coap_attr_t 99 * coap_context_t 100 * coap_packet_t 101 * coap_pdu_t 102 * coap_resource_t 103 * coap_session_t 104 * coap_socket_t 105 * Header files are moved into libcoap space and so are accessed by coap 106 sub-directory - e.g. #include <coap3/coap.h>. 107 * RFC7959 (Block handling) moved into libcoap from application code 108 considerably simplifying application code. See coap_block(3) man page. 109 * CoAP Cache Key support. 110 * Support for cmake builds. 111 * Support for RIOT builds. 112 * Support for Cygwin builds. 113 * Proxy support for coap-server, enhanced coap-client capabilities 114 * Updated async support. 115 * Multicast requests now randomly delayed before the response is 116 sent. 117 * Additional RFC support - RFC8768. 118 * Mbed TLS DTLS library support. 119 * (D)TLS support for RPK and PKCS11. 120 * Additional (D)TLS support for PSK (e.g. Identity Hints). 121 * PKI support consistent across all supported (D)TLS libraries. 122 * Support for disabling TCP for code reduction. 123 * More rigorous checking and appropriate rejection of inbound PDU 124 options. 125 * Additional unit tests. 126 * Reported bugs fixed. 127 * Example applications help reports on (D)TLS library capabilities 128 and versions. 129 * Documentation added and updated (Doxygen and man). 130 1312019-11-05 Olaf Bergmann <bergmann@tzi.org> 132 133 Change summary for version 4.2.1: 134 135 * Builds now support silent rules 136 * Support building with TinyDTLS as a shared library 137 * Added in EPOLL support 138 * Added in support for constrained stacks 139 * Server sessions hashed for performance lookup 140 * coap_endpoint_t and coap_subscription_t made opaque to applications 141 * Documentation updated 142 1432019-02-11 Olaf Bergmann <bergmann@tzi.org> 144 145 Change summary for version 4.2.0: 146 147 * DTLS support improvements (OpenSSL, GnuTLS, tinydtls) 148 * Pre-shared keys, X.509 certificates 149 * new session abstraction 150 * TCP and TLS support 151 * improved documentation; manual pages 152 * changes in internal PDU structure 153 * improved examples (DTLS usage, block-wise transfer) 154 * docker images for continuous integration 155 * support for Google OSS fuzzer 156 * MS Visual Studio project for Windows builds 157 1582017-07-10 Olaf Bergmann <bergmann@tzi.org> 159 160 * DTLS support (OpenSSL, tinyDTLS) by Jean-Claude Michelou 161 * Win32 support by Jean-Claude Michelou 162 * New Session API by Jean-Claude Michelou 163 1642016-02-16 Olaf Bergmann <bergmann@tzi.org> 165 166 * Fixed build for Contiki3 and LwIP 167 * .travis.yml: Enabled continuous integration for platforms 168 POSIX and Contiki 169 1702015-03-11 Olaf Bergmann <bergmann@tzi.org> 171 172 * include/coap/resource.h: Replaced custom list structures by 173 utlist macros. 174 1752015-03-09 Olaf Bergmann <bergmann@tzi.org> 176 177 * src/uri.c (coap_split_path): Fixed URI parser bug and 178 removed broken parse iterator. 179 1802015-03-05 Olaf Bergmann <bergmann@tzi.org> 181 182 * src/coap_time.c (coap_ticks): Changed POSIX implementation 183 to fixed point arithmetic and removed clock_offset. 184 1852015-02-21 Olaf Bergmann <bergmann@tzi.org> 186 187 * net.c (coap_send_confirmed): Use fixed point arithmetic 188 to calculate retransmission timeout. 189 1902015-02-20 Olaf Bergmann <bergmann@tzi.org> 191 192 * coap_list.[hc]: Moved old list implementation into 193 sub-directory examples and replaced by linked lists 194 from utlist.h. As a result, the list must be sorted 195 explicitly with LL_SORT). 196 1972015-02-19 Olaf Bergmann <bergmann@tzi.org> 198 199 * net.c (coap_send_confirmed): Fixed retransmission timeout 200 calculation and renamed transmission parameters according to 201 Section 4.8 of RFC 7252. 202 2032015-02-17 Olaf Bergmann <bergmann@tzi.org> 204 205 * major rework to get Contiki and lwip running 206 * many fixed bugs and warnings 207 2082014-06-18 Olaf Bergmann <bergmann@tzi.org> 209 210 * mem.c (coap_malloc_type): New functions for allocating memory. 211 On POSIX systems, coap_malloc_type() and coap_free_type() are just 212 wrapper functions for malloc() and free(), while on Contiki and 213 LWIP distinct arrays are used for each type. 214 2152014-03-09 Olaf Bergmann <bergmann@tzi.org> 216 217 * net.c (coap_cancel): Removed 7.31 again and implemented new 218 method for cancelling observe relationships. 219 2202014-02-25 Olaf Bergmann <bergmann@tzi.org> 221 222 * net.c (coap_cancel): Handling of 7.31 responses to cancel 223 notifications (see Section 4.6 of draft-ietf-core-observe-12) 224 2252014-02-04 Olaf Bergmann <bergmann@tzi.org> 226 227 * resource.c (coap_print_link): This function now takes an offset 228 where printing starts. This is used for generating blocks on the 229 fly. 230 231 * net.c (wellknown_response): Added support for Block2 options 232 when generating a response for .well-known/core. 233 234 * block.h (coap_opt_block_num): Fixed handling of zero-length 235 options. COAP_OPT_BLOCK_LAST now returns NULL when the option 236 value's length is zero. 237 2382014-01-07 Olaf Bergmann <bergmann@tzi.org> 239 240 * resource.c (coap_print_link): Output partial resource 241 descriptions. The function now provides a sliding window over the 242 textual representation of the resource. Output starts at the given 243 offset and ends at the buffer's upper bound. The meaning of the 244 return value has changed to allow distinguishing whether or not 245 the resource description has been truncated at the buffer's upper 246 bound. 247 (print_wellknown): Support for the new coap_print_link(). An 248 additional parameter now is used to provide the offset into the 249 resource description. The meaning of the return value has been 250 adjusted accordingly. 251 2522013-12-23 Olaf Bergmann <bergmann@tzi.org> 253 254 * configure.in: merged with LWIP port from chrysn 255 <https://git.gitorious.org/coap-lwip/coap-lwip.git>. This 256 introduces new compiler flags WITH_POSIX and WITH_LWIP to 257 distinguish target platforms. 258 2592013-09-03 Olaf Bergmann <bergmann@tzi.org> 260 261 * option.h (coap_option_setb): increased size of option type 262 argument 263 264 * tests/test_error_response.c (t_init_error_response_tests): new 265 tests for error response generation 266 267 * tests/test_pdu.c (t_encode_pdu5): fixed number for option Accept 268 269 * net.c (coap_new_error_response): fixed option size calculation 270 2712013-07-04 Olaf Bergmann <bergmann@tzi.org> 272 273 * net.c (coap_new_context): register critical Accept option 274 275 * pdu.c: option codes for Accept and Size1 according to coap-18 276 2772013-02-01 Olaf Bergmann <bergmann@tzi.org> 278 279 * coap_time.h (coap_clock_init_impl): fix invalid preprocessor 280 directive. #warning is now only used for gcc only (close sf bug #15) 281 282 * net.c (wellknown_response): applied patch from chrysn to 283 fix bug in generation of .well-known/core representation 284 2852013-01-21 Olaf Bergmann <bergmann@tzi.org> 286 287 * option.h: renamed option field in coap_opt_iterator_t to 288 next_option to detect erroneous use in old code 289 2902013-01-18 Olaf Bergmann <bergmann@tzi.org> 291 292 * configure.in: new option --with-tests to enable unit tests 293 294 * tests/testdriver.c: unit tests for parser functions 295 296 * pdu.c (coap_pdu_parse): new PDU parser for Klaus-encoding 297 according to coap-13 298 299 * net.c (coap_read): call coap_pdu_parse() to check PDU integrity 300 301 * option.c: Klaus-encoding for coap-13, including new option 302 iterator interface 303 3042012-11-20 Olaf Bergmann <bergmann@tzi.org> 305 306 * net.c (next_option_safe): made option parsing more robust in 307 presence of option jumps 308 309 * pdu.h: new option codes from draft-ietf-core-coap-12 310 311 * option.c (coap_opt_setlength): new function to set option length 312 313 * uri.c (make_decoded_option): use coap_opt_setlength() instead of 314 obsolete macro COAP_OPT_SETLENGTH. 315 3162012-11-19 Olaf Bergmann <bergmann@tzi.org> 317 318 * uri.c (make_decoded_option): use coap_opt_encode() instead of writing 319 3202012-11-03 Olaf Bergmann <bergmann@tzi.org> 321 322 * net.c (coap_read): read new option encoding 323 3242012-11-01 Olaf Bergmann <bergmann@tzi.org> 325 326 * option.c (coap_opt_size, coap_opt_value, coap_opt_length): 327 several functions to access fields of options (possibly preceeded 328 by option jump) 329 3302012-10-25 Olaf Bergmann <bergmann@tzi.org> 331 332 * option.c (coap_opt_encode): new function for option encoding 333 with option jumps 334 3352012-03-23 Olaf Bergmann <bergmann@tzi.org> 336 337 * examples/client.c (clear_obs): clear observation relationship after 338 user-specified duration 339 3402012-03-21 Olaf Bergmann <bergmann@tzi.org> 341 342 * resource.c (print_wellknown): filtering by attributes 343 3442012-03-19 Olaf Bergmann <bergmann@tzi.org> 345 346 * pdu.c (coap_add_option): allow more than 15 options. 347 3482012-03-15 Olaf Bergmann <bergmann@tzi.org> 349 350 * examples/client.c (cmdline_uri): split path and query here to 351 make it easier to include these options in subsequent requests for 352 block transfer. 353 3542012-03-14 Olaf Bergmann <bergmann@tzi.org> 355 356 * examples/etsi_iot_01.c: Support for POST, PUT, DELETE on /test 357 3582012-03-13 Olaf Bergmann <bergmann@tzi.org> 359 360 * encode.c (coap_encode_var_bytes): more efficient coding for 0 361 3622012-03-11 Olaf Bergmann <bergmann@tzi.org> 363 364 * examples/etsi_iot_01.c: Test cases for 1st ETSI CoAP Plugtest, 365 March 24/25, 2012 in Paris, France. 366 3672012-03-10 Olaf Bergmann <bergmann@tzi.org> 368 369 * block.c: support for block transfer. 370 3712012-03-07 Olaf Bergmann <bergmann@tzi.org> 372 373 * examples/client.c (usage): new command line options 374 -B to set timeout after which the main loop is left. 375 -e to specify a payload (incompatible with -f) 376 (message_handler): bugfixes 377 378 * resource.h: (coap_method_handler_t): new API for method handlers. 379 380 381Copyright 2012 Olaf Bergmann, TZI 382Copying and distribution of this file, with or without modification, are 383permitted provided the copyright notice and this notice are preserved. 384