mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-12 11:40:39 +03:00
Add in new ./configure options --enable-client-mode or --enable-server-mode which by default are enabled. If --disable-client-mode is set, then disable all the client specific code. [ COAP_CLIENT_SUPPORT is not defined ] If --disable-server-mode is set, then disable all the server specific code. [ COAP_SERVER_SUPPORT is not defined ] Functions and variables are only #ifdef'd out in the include/coap3/*_internal.h files. They cannot be #ifdef'd out in the other include files as COAP_CLIENT_SUPPORT and COAP_SERVER_SUPPORT are not available for application compilations. The result of this is if, say, client only API functons are used in a server application and COAP_CLIENT_SUPPORT is not defined, there will be linking issues (missing functions). Providing stub functions unecessarily increases the code size. For coap-server, if it is able to provide proxy support, requires both COAP_SERVER_SUPPORT and COAP_CLIENT_SUPPORT to set up the ongoing sessions. So, the build environment deliberatly sets SERVER_CAN_PROXY=0 if COAP_CLIENT_SUPPORT is not available to allow linking. Some of the tests have to be disabled if COAP_SERVER_SUPPORT or COAP_CLIENT_SUPPORT is not set. Code size change indications text data bss sum filename 155912 1728 12080 169720 libcoap-3-notls.a 138300 1728 12080 152108 libcoap-3-notls.a --disable-client-mode 106734 1632 10304 118670 libcoap-3-notls.a --disable-server-mode 180485 1733 12080 194298 libcoap-3-openssl.a 160306 1733 12080 174119 libcoap-3-openssl.a --disable-client-mode 125543 1637 10304 137484 libcoap-3-openssl.a --disable-server-mode 181755 1728 12080 195563 libcoap-3-gnutls.a 160972 1728 12080 174780 libcoap-3-gnutls.a --disable-client-mode 127178 1632 10304 139114 libcoap-3-gnutls.a --disable-server-mode 165879 1855 12128 179862 libcoap-3-tinydtls.a 147022 1855 12128 161005 libcoap-3-tinydtls.a --disable-client-mode 115618 1759 10352 127729 libcoap-3-tinydtls.a --disable-server-mode 171690 1728 13744 187162 libcoap-3-mbedtls.a 152099 1728 13712 167539 libcoap-3-mbedtls.a --disable-client-mode 118786 1632 11984 132402 libcoap-3-mbedtls.a --disable-server-mode
81 lines
2.0 KiB
C
81 lines
2.0 KiB
C
/*
|
|
* coap_internal.h -- Structures, Enums & Functions that are not exposed to
|
|
* application programming
|
|
*
|
|
* Copyright (C) 2019-2021 Jon Shallow <supjps-libcoap@jpshallow.com>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* This file is part of the CoAP library libcoap. Please see README for terms
|
|
* of use.
|
|
*/
|
|
|
|
/*
|
|
* All libcoap library files should include this file which then pulls in all
|
|
* of the other appropriate header files.
|
|
*
|
|
* Note: This file should never be included in application code (with the
|
|
* possible exception of internal test suites).
|
|
*/
|
|
|
|
/**
|
|
* @file coap_internal.h
|
|
* @brief Pulls together all the internal only header files
|
|
*/
|
|
|
|
#ifndef COAP_INTERNAL_H_
|
|
#define COAP_INTERNAL_H_
|
|
|
|
#include "coap_config.h"
|
|
|
|
/*
|
|
* Correctly set up assert() based on NDEBUG for libcoap
|
|
*/
|
|
#if defined(HAVE_ASSERT_H) && !defined(assert)
|
|
# include <assert.h>
|
|
#endif
|
|
|
|
/* By default without either configured, these need to be set */
|
|
#ifndef COAP_SERVER_SUPPORT
|
|
#ifndef COAP_CLIENT_SUPPORT
|
|
#define COAP_SERVER_SUPPORT 1
|
|
#define COAP_CLIENT_SUPPORT 1
|
|
#endif /* COAP_CLIENT_SUPPORT */
|
|
#endif /* COAP_SERVER_SUPPORT */
|
|
|
|
#if ! COAP_SERVER_SUPPORT
|
|
#ifndef WITHOUT_ASYNC
|
|
/* ASYNC is only there for Server code */
|
|
#define WITHOUT_ASYNC
|
|
#endif /* WITHOUT_ASYNC */
|
|
#endif /* COAP_SERVER_SUPPORT */
|
|
|
|
#include "coap3/coap.h"
|
|
|
|
/*
|
|
* Include all the header files that are for internal use only.
|
|
*/
|
|
|
|
/* Not defined in coap.h - internal usage .h files */
|
|
#include "utlist.h"
|
|
#include "uthash.h"
|
|
#include "coap_hashkey.h"
|
|
#include "coap_mutex.h"
|
|
|
|
/* Specifically defined internal .h files */
|
|
#include "coap_asn1_internal.h"
|
|
#include "coap_async_internal.h"
|
|
#include "coap_block_internal.h"
|
|
#include "coap_cache_internal.h"
|
|
#include "coap_dtls_internal.h"
|
|
#include "coap_io_internal.h"
|
|
#include "coap_net_internal.h"
|
|
#include "coap_pdu_internal.h"
|
|
#include "coap_session_internal.h"
|
|
#include "coap_resource_internal.h"
|
|
#include "coap_session_internal.h"
|
|
#include "coap_subscribe_internal.h"
|
|
#include "coap_tcp_internal.h"
|
|
|
|
#endif /* COAP_INTERNAL_H_ */
|