/*
- * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
#define SQUID_SRC_MASTERXACTION_H
#include "anyp/forward.h"
+#include "anyp/PortCfg.h"
#include "base/InstanceId.h"
#include "base/Lock.h"
+#include "base/RefCount.h"
#include "comm/forward.h"
+#include "XactionInitiator.h"
/** Master transaction details.
*
public:
typedef RefCount<MasterXaction> Pointer;
+ explicit MasterXaction(const XactionInitiator anInitiator) : initiator(anInitiator) {};
+
/// transaction ID.
- InstanceId<MasterXaction> id;
+ InstanceId<MasterXaction, uint64_t> id;
/// the listening port which originated this transaction
AnyP::PortCfgPointer squidPort;
/// the client TCP connection which originated this transaction
Comm::ConnectionPointer tcpClient;
+ /// the initiator of this transaction
+ XactionInitiator initiator;
+
+ /// whether we are currently creating a CONNECT header (to be sent to peer)
+ bool generatingConnect = false;
+
// TODO: add state from other Jobs in the transaction
};