summaryrefslogtreecommitdiff
path: root/include/device_proto.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/device_proto.h')
-rw-r--r--include/device_proto.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/include/device_proto.h b/include/device_proto.h
index f0d26c0..40b2a22 100644
--- a/include/device_proto.h
+++ b/include/device_proto.h
@@ -133,22 +133,22 @@ struct EmptyPayload {
std::string dissect() const { return std::string("Empty Payload."); }
} __packed;
-template <typename command_payload>
+template <typename command_packet, typename response_payload>
class ClearingProxy{
public:
- ClearingProxy(command_payload &p){
- payload = p;
+ ClearingProxy(command_packet &p){
+ packet = p;
bzero(&p, sizeof(p));
}
~ClearingProxy(){
- bzero(&payload, sizeof(payload));
+ bzero(&packet, sizeof(packet));
}
- command_payload & data(){
- return payload;
+ response_payload & data(){
+ return packet.payload;
}
- command_payload payload;
+ command_packet packet;
};
template <CommandID cmd_id, typename command_payload, typename response_payload>
@@ -185,7 +185,7 @@ class Transaction : semantics::non_constructible {
}
- static ClearingProxy<response_payload> run(device::Device &dev,
+ static ClearingProxy<ResponsePacket, response_payload> run(device::Device &dev,
const command_payload &payload) {
using namespace ::nitrokey::device;
using namespace ::nitrokey::log;
@@ -249,10 +249,10 @@ class Transaction : semantics::non_constructible {
// See: DeviceResponse
- return resp.payload;
+ return resp;
}
- static ClearingProxy<response_payload> run(device::Device &dev) {
+ static ClearingProxy<ResponsePacket, response_payload> run(device::Device &dev) {
command_payload empty_payload;
return run(dev, empty_payload);
}