]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/adaptation/ServiceConfig.h
Source Format Enforcement (#763)
[thirdparty/squid.git] / src / adaptation / ServiceConfig.h
index 6fdd8a53bd097550a3b18518b90a139318873369..00a9b8a9e5d39c51930c2de810b4df93c2fde6aa 100644 (file)
@@ -1,15 +1,25 @@
+/*
+ * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
+
 #ifndef SQUID_ADAPTATION__SERVICE_CONFIG_H
 #define SQUID_ADAPTATION__SERVICE_CONFIG_H
 
-#include "SquidString.h"
-#include "RefCount.h"
 #include "adaptation/Elements.h"
+#include "base/RefCount.h"
+#include "base/YesNoNone.h"
+#include "security/PeerOptions.h"
+#include "SquidString.h"
 
 namespace Adaptation
 {
 
 // manages adaptation service configuration in squid.conf
-class ServiceConfig
+class ServiceConfig: public RefCountable
 {
 public:
     ServiceConfig();
@@ -32,7 +42,16 @@ public:
     Method method;   // what is being adapted (REQMOD vs RESPMOD)
     VectPoint point; // where the adaptation happens (pre- or post-cache)
     bool bypass;
+
+    // options
+    long maxConn; ///< maximum number of concurrent service transactions
+    SrvBehaviour onOverload; ///< how to handle Max-Connections feature
     bool routing; ///< whether this service may determine the next service(s)
+    bool ipv6;    ///< whether this service uses IPv6 transport (default IPv4)
+
+    // security settings for adaptation service
+    Security::PeerOptions secure;
+    YesNoNone connectionEncryption; ///< whether this service uses only secure connections
 
 protected:
     Method parseMethod(const char *buf) const;
@@ -41,8 +60,14 @@ protected:
     /// interpret parsed values
     bool grokBool(bool &var, const char *name, const char *value);
     bool grokUri(const char *value);
+    bool grokLong(long &var, const char *name, const char *value);
+    /// handle on-overload configuration option
+    bool grokOnOverload(SrvBehaviour &var, const char *value);
+    /// handle name=value configuration option with name unknown to Squid
+    virtual bool grokExtension(const char *name, const char *value);
 };
 
 } // namespace Adaptation
 
 #endif /* SQUID_ADAPTATION__SERVICE_CONFIG_H */
+