• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * coap_internal.h -- Structures, Enums & Functions that are not exposed to
3  * application programming
4  *
5  * Copyright (C) 2019-2023 Jon Shallow <supjps-libcoap@jpshallow.com>
6  *
7  * SPDX-License-Identifier: BSD-2-Clause
8  *
9  * This file is part of the CoAP library libcoap. Please see README for terms
10  * of use.
11  */
12 
13 /*
14  * All libcoap library files should include this file which then pulls in all
15  * of the other appropriate header files.
16  *
17  * Note: This file should never be included in application code (with the
18  * possible exception of internal test suites).
19  */
20 
21 /**
22  * @file coap_internal.h
23  * @brief Pulls together all the internal only header files
24  */
25 
26 #ifndef COAP_INTERNAL_H_
27 #define COAP_INTERNAL_H_
28 
29 #include "coap_config.h"
30 
31 /*
32  * Correctly set up assert() based on NDEBUG for libcoap
33  */
34 #if defined(HAVE_ASSERT_H) && !defined(assert)
35 # include <assert.h>
36 #endif
37 
38 #ifdef HAVE_INTTYPES_H
39 #include <inttypes.h>
40 #else /* ! HAVE_INTTYPES_H */
41 #ifndef PRIx32
42 #define PRIx32 "x"
43 #endif /* ! PRIx32 */
44 #ifndef PRIu32
45 #define PRIu32 "u"
46 #endif /* ! PRIu32 */
47 #ifndef PRIx64
48 #define PRIx64 "lx"
49 #endif /* ! PRIx64 */
50 #ifndef PRIu64
51 #define PRIu64 "lu"
52 #endif /* ! PRIu64 */
53 #endif /* ! HAVE_INTTYPES_H */
54 
55 #if defined(HAVE_ERRNO_H)
56 # include <errno.h>
57 #endif
58 
59 /* By default without either configured, these need to be set */
60 #ifndef COAP_SERVER_SUPPORT
61 #ifndef COAP_CLIENT_SUPPORT
62 #define COAP_SERVER_SUPPORT 1
63 #define COAP_CLIENT_SUPPORT 1
64 #endif /* ! COAP_CLIENT_SUPPORT */
65 #endif /* ! COAP_SERVER_SUPPORT */
66 
67 /* By default without either configured, these need to be set */
68 #ifndef COAP_IPV4_SUPPORT
69 #ifndef COAP_IPV6_SUPPORT
70 #define COAP_IPV4_SUPPORT 1
71 #define COAP_IPV6_SUPPORT 1
72 #endif /* ! COAP_IPV6_SUPPORT */
73 #endif /* ! COAP_IPV4_SUPPORT */
74 
75 #if ! COAP_SERVER_SUPPORT
76 #if COAP_ASYNC_SUPPORT
77 /* ASYNC is only there for Server code */
78 #undef COAP_ASYNC_SUPPORT
79 #define COAP_ASYNC_SUPPORT 0
80 #endif /* COAP_ASYNC_SUPPORT */
81 #endif /* ! COAP_SERVER_SUPPORT */
82 
83 #ifdef COAP_SUPPORT_SOCKET_BROADCAST
84 #define COAP_INTERFACE_MAX 16
85 #endif
86 
87 #include "coap3/coap.h"
88 
89 /*
90  * Include all the header files that are for internal use only.
91  */
92 
93 #if defined(COAP_OSCORE_SUPPORT) || defined(COAP_WS_SUPPORT)
94 /* Specific OSCORE general .h files */
95 typedef struct oscore_ctx_t oscore_ctx_t;
96 #include "oscore/oscore.h"
97 #include "oscore/oscore_cbor.h"
98 #include "oscore/oscore_cose.h"
99 #include "oscore/oscore_context.h"
100 #include "oscore/oscore_crypto.h"
101 #endif /* COAP_OSCORE_SUPPORT || COAP_WS_SUPPORT */
102 
103 /* Specifically defined internal .h files */
104 #include "coap_asn1_internal.h"
105 #include "coap_async_internal.h"
106 #include "coap_block_internal.h"
107 #include "coap_cache_internal.h"
108 #if defined(COAP_OSCORE_SUPPORT) || defined(COAP_WS_SUPPORT)
109 #include "coap_crypto_internal.h"
110 #endif /* COAP_OSCORE_SUPPORT || COAP_WS_SUPPORT */
111 #include "coap_debug_internal.h"
112 #include "coap_dtls_internal.h"
113 #include "coap_hashkey_internal.h"
114 #include "coap_io_internal.h"
115 #include "coap_layers_internal.h"
116 #include "coap_mutex_internal.h"
117 #include "coap_net_internal.h"
118 #include "coap_netif_internal.h"
119 #if COAP_OSCORE_SUPPORT
120 #include "coap_oscore_internal.h"
121 #endif /* COAP_OSCORE_SUPPORT */
122 #include "coap_pdu_internal.h"
123 #include "coap_resource_internal.h"
124 #include "coap_session_internal.h"
125 #include "coap_subscribe_internal.h"
126 #include "coap_tcp_internal.h"
127 #include "coap_uri_internal.h"
128 #include "coap_utlist_internal.h"
129 #include "coap_uthash_internal.h"
130 #include "coap_ws_internal.h"
131 
132 #endif /* COAP_INTERNAL_H_ */
133