#if USE_ADAPTATION
#include "adaptation/AccessCheck.h"
+#include "adaptation/Answer.h"
#include "adaptation/Iterator.h"
#endif
#include "adaptation/Initiator.h"
#endif
+class HttpMsg;
+
/**
* ServerStateData is a common base for server-side classes such as
* HttpStateData and FtpStateData. All such classes must be able to
--- /dev/null
+/*
+ * DEBUG: section 93 ICAP (RFC 3507) Client
+ */
+
+#include "config.h"
+#include "adaptation/Answer.h"
+#include "base/AsyncJobCalls.h"
+
+Adaptation::Answer
+Adaptation::Answer::Error(bool final)
+{
+ Answer answer(akError);
+ answer.final = final;
+ debugs(93, 4, HERE << "error: " << final);
+ return answer;
+}
+
+Adaptation::Answer
+Adaptation::Answer::Forward(HttpMsg *aMsg)
+{
+ Answer answer(akForward);
+ answer.message = aMsg;
+ debugs(93, 4, HERE << "forwarding: " << (void*)aMsg);
+ return answer;
+}
+
+
+Adaptation::Answer
+Adaptation::Answer::Block(const String &aRule)
+{
+ Answer answer(akBlock);
+ answer.ruleId = aRule;
+ debugs(93, 4, HERE << "blocking rule: " << aRule);
+ return answer;
+}
+
+std::ostream &
+Adaptation::Answer::print(std::ostream &os) const
+{
+ return os << kind; // TODO: add more details
+}
+
+Adaptation::Answer::Answer(Kind aKind): final(true), kind(aKind)
+{
+}
--- /dev/null
+#ifndef SQUID_ADAPTATION__ANSWER_H
+#define SQUID_ADAPTATION__ANSWER_H
+
+#include "adaptation/forward.h"
+#include "HttpMsg.h"
+
+#include <iosfwd>
+
+namespace Adaptation
+{
+
+/// summarizes adaptation service answer for the noteAdaptationAnswer() API
+class Answer
+{
+public:
+ /// helps interpret other members without a class hierarchy
+ typedef enum {
+ akForward, ///< forward the supplied adapted HTTP message
+ akBlock, ///< block or deny the master xaction; see authority
+ akError, ///< no adapted message will come; see bypassable
+ } Kind;
+
+ static Answer Error(bool final); ///< create an akError answer
+ static Answer Forward(HttpMsg *aMsg); ///< create an akForward answer
+ static Answer Block(const String &aRule); ///< create an akBlock answer
+
+ std::ostream &print(std::ostream &os) const;
+
+public:
+ HttpMsgPointerT<HttpMsg> message; ///< HTTP request or response to forward
+ String ruleId; ///< ACL (or similar rule) name that blocked forwarding
+ bool final; ///< whether the error, if any, cannot be bypassed
+ Kind kind; ///< the type of the answer
+
+private:
+ explicit Answer(Kind aKind); ///< use static creators instead
+};
+
+inline
+std::ostream &operator <<(std::ostream &os, const Answer &answer)
+{
+ return answer.print(os);
+}
+
+} // namespace Adaptation
+
+#endif /* SQUID_ADAPTATION__ANSWER_H */
#include "squid.h"
#include "HttpMsg.h"
+#include "adaptation/Answer.h"
#include "adaptation/Initiator.h"
#include "adaptation/Initiate.h"
#include "base/AsyncJobCalls.h"
CallJobHere(93, 5, x, Initiate, noteInitiatorAborted);
clearAdaptation(x);
}
-
-
-/* Adaptation::Answer */
-
-// TODO: Move to src/adaptation/Answer.*
-
-Adaptation::Answer
-Adaptation::Answer::Error(bool final)
-{
- Answer answer(akError);
- answer.final = final;
- debugs(93, 4, HERE << "error: " << final);
- return answer;
-}
-
-Adaptation::Answer
-Adaptation::Answer::Forward(HttpMsg *aMsg)
-{
- Answer answer(akForward);
- answer.message = aMsg;
- debugs(93, 4, HERE << "forwarding: " << (void*)aMsg);
- return answer;
-}
-
-
-Adaptation::Answer
-Adaptation::Answer::Block(const String &aRule)
-{
- Answer answer(akBlock);
- answer.ruleId = aRule;
- debugs(93, 4, HERE << "blocking rule: " << aRule);
- return answer;
-}
-
-std::ostream &
-Adaptation::Answer::print(std::ostream &os) const
-{
- return os << kind; // TODO: add more details
-}
-
-Adaptation::Answer::Answer(Kind aKind): final(true), kind(aKind)
-{
-}
#ifndef SQUID_ADAPTATION__INITIATOR_H
#define SQUID_ADAPTATION__INITIATOR_H
+#include "adaptation/forward.h"
#include "base/AsyncJob.h"
#include "base/CbcPointer.h"
-#include "adaptation/forward.h"
-#include "HttpMsg.h"
-
-#include <iosfwd>
/*
* The ICAP Initiator is an ICAP vectoring point that initates ICAP
namespace Adaptation
{
-/// summarizes adaptation service answer for the noteAdaptationAnswer() API
-class Answer
-{
-public:
- /// helps interpret other members without a class hierarchy
- typedef enum {
- akForward, ///< forward the supplied adapted HTTP message
- akBlock, ///< block or deny the master xaction; see authority
- akError, ///< no adapted message will come; see bypassable
- } Kind;
-
- static Answer Error(bool final); ///< create an akError answer
- static Answer Forward(HttpMsg *aMsg); ///< create an akForward answer
- static Answer Block(const String &aRule); ///< create an akBlock answer
-
- std::ostream &print(std::ostream &os) const;
-
-public:
- HttpMsgPointerT<HttpMsg> message; ///< HTTP request or response to forward
- String ruleId; ///< ACL (or similar rule) name that blocked forwarding
- bool final; ///< whether the error, if any, cannot be bypassed
- Kind kind; ///< the type of the answer
-
-private:
- explicit Answer(Kind aKind); ///< use static creators instead
-};
-
-inline
-std::ostream &operator <<(std::ostream &os, const Answer &answer)
-{
- return answer.print(os);
-}
-
class Initiator: virtual public AsyncJob
{
public:
*/
#include "squid.h"
+#include "adaptation/Answer.h"
#include "adaptation/Config.h"
#include "adaptation/Iterator.h"
#include "adaptation/Service.h"
#include "adaptation/Initiate.h"
#include "adaptation/ServiceGroups.h"
+class HttpMsg;
+class HttpRequest;
+
namespace Adaptation
{
AccessCheck.h \
AccessRule.cc \
AccessRule.h \
+ Answer.cc \
+ Answer.h \
Config.cc \
Config.h \
Elements.cc \
#include "HttpRequest.h"
#include "HttpReply.h"
#include "SquidTime.h"
+#include "adaptation/Answer.h"
#include "adaptation/ecap/XactionRep.h"
#include "adaptation/ecap/Config.h"
#include "adaptation/Initiator.h"
#include "squid.h"
#include "acl/FilledChecklist.h"
+#include "adaptation/Answer.h"
#include "adaptation/icap/Launcher.h"
#include "adaptation/icap/Xaction.h"
#include "adaptation/icap/ServiceRep.h"
#include "squid.h"
#include "AccessLogEntry.h"
+#include "adaptation/Answer.h"
#include "adaptation/History.h"
#include "adaptation/icap/Client.h"
#include "adaptation/icap/Config.h"
#include "comm.h"
#include "HttpReply.h"
+#include "adaptation/Answer.h"
#include "adaptation/icap/OptXact.h"
#include "adaptation/icap/Options.h"
#include "adaptation/icap/Config.h"
*/
#include "squid.h"
+#include "adaptation/Answer.h"
#include "adaptation/icap/Config.h"
#include "adaptation/icap/ModXact.h"
#include "adaptation/icap/Options.h"
#include "acl/Gadgets.h"
#if USE_ADAPTATION
#include "adaptation/AccessCheck.h"
+#include "adaptation/Answer.h"
#include "adaptation/Iterator.h"
#include "adaptation/Service.h"
#if ICAP_CLIENT