From: Amos Jeffries Date: Fri, 5 Apr 2024 03:39:57 +0000 (+0000) Subject: Fix eCAP header includes (#1753) X-Git-Tag: SQUID_7_0_1~151 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8800478b8fda415d24f3939323307b0bae7805a5;p=thirdparty%2Fsquid.git Fix eCAP header includes (#1753) Squid style guidelines require .h files to be wrapped with HAVE_*_H protection and placed after all Squid internal file includes. Add the missing ./configure header checks to generate the needed wrappers and refactor the include sequences to meet current guidelines. --- diff --git a/configure.ac b/configure.ac index 6054c881a9..26804fa2e5 100644 --- a/configure.ac +++ b/configure.ac @@ -886,12 +886,41 @@ AS_IF([test "x$enable_ecap" != "xno"],[ ]) SQUID_STATE_SAVE(squid_ecap_state) + CPPFLAGS="$EXT_LIBECAP_CFLAGS $CPPFLAGS" + LIBS="$EXT_LIBECAP_LIBS $LIBS" + AC_CHECK_HEADERS([ \ + libecap/adapter/service.h \ + libecap/adapter/xaction.h \ + libecap/common/area.h \ + libecap/common/body.h \ + libecap/common/delay.h \ + libecap/common/forward.h \ + libecap/common/header.h \ + libecap/common/memory.h \ + libecap/common/message.h \ + libecap/common/name.h \ + libecap/common/named_values.h \ + libecap/common/names.h \ + libecap/common/options.h \ + libecap/common/registry.h \ + libecap/common/version.h \ + libecap/host/host.h \ + libecap/host/xaction.h \ + ],,,[ +/* libecap-1.0.1 headers do not build without autoconf.h magic */ +#define HAVE_CONFIG_H +/* libecap/common/delay.h fails to include */ +#include + ]) AC_MSG_CHECKING([whether -lecap will link]) - CXXFLAGS="$CXXFLAGS $EXT_LIBECAP_CFLAGS" - LIBS="$LIBS $EXT_LIBECAP_LIBS" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]],[[ - const libecap::Name test("test", libecap::Name::NextId()); - ]])],[ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#if HAVE_LIBECAP_COMMON_NAMES_H +#include +#endif + ]],[[ + const libecap::Name test("test", libecap::Name::NextId()); + ]]) + ],[ AC_MSG_RESULT(yes) squid_opt_use_adaptation=yes ],[ diff --git a/src/adaptation/ecap/Host.cc b/src/adaptation/ecap/Host.cc index defa5a1f26..46a7a8b661 100644 --- a/src/adaptation/ecap/Host.cc +++ b/src/adaptation/ecap/Host.cc @@ -9,9 +9,6 @@ /* DEBUG: section 93 eCAP Interface */ #include "squid.h" -#include -#include -#include #include "adaptation/ecap/Host.h" #include "adaptation/ecap/MessageRep.h" #include "adaptation/ecap/ServiceRep.h" @@ -20,6 +17,16 @@ #include "HttpRequest.h" #include "MasterXaction.h" +#if HAVE_LIBECAP_ADAPTER_SERVICE_H +#include +#endif +#if HAVE_LIBECAP_COMMON_NAMES_H +#include +#endif +#if HAVE_LIBECAP_COMMON_REGISTRY_H +#include +#endif + const libecap::Name Adaptation::Ecap::protocolInternal("internal", libecap::Name::NextId()); const libecap::Name Adaptation::Ecap::protocolIcp("ICP", libecap::Name::NextId()); #if USE_HTCP diff --git a/src/adaptation/ecap/Host.h b/src/adaptation/ecap/Host.h index 11fc67ac10..d84b5c86e4 100644 --- a/src/adaptation/ecap/Host.h +++ b/src/adaptation/ecap/Host.h @@ -11,7 +11,9 @@ #ifndef SQUID_SRC_ADAPTATION_ECAP_HOST_H #define SQUID_SRC_ADAPTATION_ECAP_HOST_H +#if HAVE_LIBECAP_HOST_HOST_H #include +#endif namespace Adaptation { diff --git a/src/adaptation/ecap/MessageRep.cc b/src/adaptation/ecap/MessageRep.cc index 1c4bdfd298..5a24732d35 100644 --- a/src/adaptation/ecap/MessageRep.cc +++ b/src/adaptation/ecap/MessageRep.cc @@ -9,19 +9,24 @@ /* DEBUG: section 93 eCAP Interface */ #include "squid.h" -#include "BodyPipe.h" -#include "HttpReply.h" -#include "HttpRequest.h" -#include -#include -#include -#include -#include "adaptation/ecap/Host.h" /* for protocol constants */ +#include "adaptation/ecap/Host.h" #include "adaptation/ecap/MessageRep.h" #include "adaptation/ecap/XactionRep.h" #include "base/TextException.h" +#include "HttpReply.h" -/* HeaderRep */ +#if HAVE_LIBECAP_COMMON_AREA_H +#include +#endif +#if HAVE_LIBECAP_COMMON_NAMED_VALUES_H +#include +#endif +#if HAVE_LIBECAP_COMMON_NAMES_H +#include +#endif +#if HAVE_LIBECAP_COMMON_VERSION_H +#include +#endif Adaptation::Ecap::HeaderRep::HeaderRep(Http::Message &aMessage): theHeader(aMessage.header), theMessage(aMessage) diff --git a/src/adaptation/ecap/MessageRep.h b/src/adaptation/ecap/MessageRep.h index fb13706386..eed9dbfdec 100644 --- a/src/adaptation/ecap/MessageRep.h +++ b/src/adaptation/ecap/MessageRep.h @@ -18,9 +18,15 @@ #include "http/forward.h" #include "HttpHeader.h" -#include -#include +#if HAVE_LIBECAP_COMMON_BODY_H #include +#endif +#if HAVE_LIBECAP_COMMON_HEADER_H +#include +#endif +#if HAVE_LIBECAP_COMMON_MESSAGE_H +#include +#endif namespace Adaptation { diff --git a/src/adaptation/ecap/ServiceRep.cc b/src/adaptation/ecap/ServiceRep.cc index dac4a1f92d..1d3339020f 100644 --- a/src/adaptation/ecap/ServiceRep.cc +++ b/src/adaptation/ecap/ServiceRep.cc @@ -18,10 +18,19 @@ #include "debug/Stream.h" #include "EventLoop.h" +#if HAVE_LIBECAP_ADAPTER_SERVICE_H #include +#endif +#if HAVE_LIBECAP_COMMON_OPTIONS_H #include +#endif +#if HAVE_LIBECAP_COMMON_NAME_H #include +#endif +#if HAVE_LIBECAP_COMMON_NAMED_VALUES_H #include +#endif + #include #include diff --git a/src/adaptation/ecap/ServiceRep.h b/src/adaptation/ecap/ServiceRep.h index 1fa7affd3c..febbb3a284 100644 --- a/src/adaptation/ecap/ServiceRep.h +++ b/src/adaptation/ecap/ServiceRep.h @@ -13,8 +13,13 @@ #include "adaptation/forward.h" #include "adaptation/Service.h" + +#if HAVE_LIBECAP_COMMON_FORWARD_H #include +#endif +#if HAVE_LIBECAP_COMMON_MEMORY_H #include +#endif namespace Adaptation { diff --git a/src/adaptation/ecap/XactionRep.cc b/src/adaptation/ecap/XactionRep.cc index 264faac87b..c167cd6acf 100644 --- a/src/adaptation/ecap/XactionRep.cc +++ b/src/adaptation/ecap/XactionRep.cc @@ -9,11 +9,6 @@ /* DEBUG: section 93 eCAP Interface */ #include "squid.h" -#include -#include -#include -#include -#include #include "adaptation/Answer.h" #include "adaptation/ecap/Config.h" #include "adaptation/ecap/XactionRep.h" @@ -22,9 +17,21 @@ #include "base/TextException.h" #include "format/Format.h" #include "HttpReply.h" -#include "HttpRequest.h" #include "MasterXaction.h" +#if HAVE_LIBECAP_COMMON_AREA_H +#include +#endif +#if HAVE_LIBECAP_COMMON_DELAY_H +#include +#endif +#if HAVE_LIBECAP_COMMON_NAMED_VALUES_H +#include +#endif +#if HAVE_LIBECAP_COMMON_NAMES_H +#include +#endif + CBDATA_NAMESPACED_CLASS_INIT(Adaptation::Ecap::XactionRep, XactionRep); /// a libecap Visitor for converting adapter transaction options to HttpHeader diff --git a/src/adaptation/ecap/XactionRep.h b/src/adaptation/ecap/XactionRep.h index cc43b37179..a3a622ecc3 100644 --- a/src/adaptation/ecap/XactionRep.h +++ b/src/adaptation/ecap/XactionRep.h @@ -16,10 +16,13 @@ #include "adaptation/Initiate.h" #include "adaptation/Message.h" #include "BodyPipe.h" -#include -#include -#include + +#if HAVE_LIBECAP_ADAPTER_XACTION_H #include +#endif +#if HAVE_LIBECAP_HOST_XACTION_H +#include +#endif namespace Adaptation {