2 * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
9 #ifndef SQUID_ADAPTATION__SERVICE_CONFIG_H
10 #define SQUID_ADAPTATION__SERVICE_CONFIG_H
12 #include "adaptation/Elements.h"
13 #include "base/RefCount.h"
14 #include "base/YesNoNone.h"
15 #include "security/PeerOptions.h"
16 #include "SquidString.h"
21 // manages adaptation service configuration in squid.conf
22 class ServiceConfig
: public RefCountable
27 const char *methodStr() const;
28 const char *vectPointStr() const;
33 String key
; // service_configConfig name in the configuration file
34 String uri
; // service_configConfig URI
36 // service_configConfig URI components
42 Method method
; // what is being adapted (REQMOD vs RESPMOD)
43 VectPoint point
; // where the adaptation happens (pre- or post-cache)
47 long maxConn
; ///< maximum number of concurrent service transactions
48 SrvBehaviour onOverload
; ///< how to handle Max-Connections feature
49 bool routing
; ///< whether this service may determine the next service(s)
50 bool ipv6
; ///< whether this service uses IPv6 transport (default IPv4)
52 // security settings for adaptation service
53 Security::PeerOptions secure
;
54 YesNoNone connectionEncryption
; ///< whether this service uses only secure connections
57 Method
parseMethod(const char *buf
) const;
58 VectPoint
parseVectPoint(const char *buf
) const;
60 /// interpret parsed values
61 bool grokBool(bool &var
, const char *name
, const char *value
);
62 bool grokUri(const char *value
);
63 bool grokLong(long &var
, const char *name
, const char *value
);
64 /// handle on-overload configuration option
65 bool grokOnOverload(SrvBehaviour
&var
, const char *value
);
66 /// handle name=value configuration option with name unknown to Squid
67 virtual bool grokExtension(const char *name
, const char *value
);
70 } // namespace Adaptation
72 #endif /* SQUID_ADAPTATION__SERVICE_CONFIG_H */