#include <exceptions/InvalidProtocolException.h>
#include <exceptions/OutOfDataException.h>
+#include <log/log.h>
#include <protocol/ProtocolFrameSerializer.h>
#include <protocol/ProtocolOpCode.h>
#include <protocol/ProtocolSerialization.h>
ProtocolDeserialization::deserialize(frame, userId);
ProtocolDeserialization::deserialize(frame, privilegeId);
+ LOGD("Deserialized CheckRequest: client = %s, user = %s, privilege = %s",
+ clientId.c_str(), userId.c_str(), privilegeId.c_str());
+
return std::make_shared<CheckRequest>(PolicyKey(clientId, userId, privilegeId),
frame.sequenceNumber());
}
ProtocolFrameSerializer::deserializeHeader(m_frameHeader, bufferQueue);
if (m_frameHeader.isFrameComplete()) {
- ProtocolOpCode requestId;
+ ProtocolOpCode opCode;
m_frameHeader.resetState();
- ProtocolDeserialization::deserialize(m_frameHeader, requestId);
- switch (requestId) {
+ ProtocolDeserialization::deserialize(m_frameHeader, opCode);
+ LOGD("Deserialized opCode = %d", (int)opCode);
+ switch (opCode) {
case OpCheckPolicy:
return deserializeCheckRequest(m_frameHeader);
default:
ProtocolDeserialization::deserialize(frame, result);
ProtocolDeserialization::deserialize(frame, additionalInfo);
- return std::make_shared<CheckResponse>(PolicyResult(result, additionalInfo), frame.sequenceNumber());
+ const PolicyResult policyResult(result, additionalInfo);
+
+ LOGD("Deserialized CheckResponse: result = %d, metadata = %s",
+ (int)policyResult.policyType(), policyResult.metadata().c_str());
+
+ return std::make_shared<CheckResponse>(policyResult, frame.sequenceNumber());
}
ResponsePtr ProtocolClient::extractResponseFromBuffer(BinaryQueue &bufferQueue) {
ProtocolFrameSerializer::deserializeHeader(m_frameHeader, bufferQueue);
if (m_frameHeader.isFrameComplete()) {
- ProtocolOpCode requestId;
+ ProtocolOpCode opCode;
m_frameHeader.resetState();
- ProtocolDeserialization::deserialize(m_frameHeader, requestId);
- switch (requestId) {
+ ProtocolDeserialization::deserialize(m_frameHeader, opCode);
+ LOGD("Deserialized opCode = %d", (int)opCode);
+ switch (opCode) {
case OpCheckPolicy:
return deserializeCheckResponse(m_frameHeader);
default:
void ProtocolClient::execute(RequestContextPtr context, CheckRequestPtr request) {
ProtocolFramePtr frame = ProtocolFrameSerializer::startSerialization(request->sequenceNumber());
+ LOGD("Serializing CheckRequest: client = %s, user = %s, privilege = %s",
+ request->key().client().value().c_str(),
+ request->key().user().value().c_str(), request->key().privilege().value().c_str());
+
ProtocolSerialization::serialize(*frame, OpCheckPolicy);
ProtocolSerialization::serialize(*frame, request->key().client().value());
ProtocolSerialization::serialize(*frame, request->key().user().value());
#include <exceptions/InvalidProtocolException.h>
#include <exceptions/OutOfDataException.h>
+#include <log/log.h>
#include "ProtocolFrameSerializer.h"
return;
}
+ LOGD("Deserializing frameHeader");
+
frameHeader.setHeaderContent(BinaryQueuePtr(&data, [=] (BinaryQueue *) {}));
ProtocolFrameSignature signature;
ProtocolDeserialization::deserialize(frameHeader, frameHeader.m_signature.length(),
signature);
+
+ LOGD("Deserialized signature = %s", signature.c_str());
+
if (ProtocolFrameHeader::m_signature != signature) {
throw InvalidProtocolException(InvalidProtocolException::InvalidSignature);
}
ProtocolDeserialization::deserialize(frameHeader, frameHeader.m_frameLength);
ProtocolDeserialization::deserialize(frameHeader, frameHeader.m_sequenceNumber);
+ LOGD("Deserialized frameLength = %d, sequenceNumber = %d",
+ (int)frameHeader.m_frameLength, (int)frameHeader.m_sequenceNumber);
+
frameHeader.setHeaderComplete();
}
}
ProtocolFramePtr ProtocolFrameSerializer::startSerialization(ProtocolFrameSequenceNumber sequenceNumber) {
+ LOGD("Serialization started");
+
BinaryQueuePtr headerQueue = std::make_shared<BinaryQueue>();
BinaryQueuePtr bodyQueue = std::make_shared<BinaryQueue>();
ProtocolFrameHeaderPtr header = std::make_shared<ProtocolFrameHeader>(headerQueue);
ProtocolSerialization::serialize(frameHeader, frameHeader.m_frameLength);
ProtocolSerialization::serialize(frameHeader, frameHeader.m_sequenceNumber);
+ LOGD("Serialize frameHeader: signature = %s, frameLength = %d, sequenceNumber = %d",
+ ProtocolFrameHeader::m_signature.c_str(), (int)frameHeader.m_frameLength,
+ (int)frameHeader.m_sequenceNumber);
+
data.appendMoveFrom(frameHeader.headerContent());
data.appendMoveFrom(frame->bodyContent());
}