aboutsummaryrefslogtreecommitdiff
path: root/src/net.h
diff options
context:
space:
mode:
authorAnthony Towns <aj@erisian.com.au>2022-03-05 04:09:35 +1000
committerAnthony Towns <aj@erisian.com.au>2022-08-29 22:50:54 +1000
commitbbec32c9ad2fe213314db9d39aa1eacff2e0bc23 (patch)
tree82087c39607c65f52f06b53546e9ec033766c9e0 /src/net.h
parent06ebdc886fcb4ca22f695bafe0956cff6d70a250 (diff)
net: mark TransportSerializer/m_serializer as const
The (V1)TransportSerializer instance CNode::m_serializer is used from multiple threads via PushMessage without protection by a mutex. This is only thread safe because the class does not have any mutable state, so document that by marking the methods and the object as "const".
Diffstat (limited to 'src/net.h')
-rw-r--r--src/net.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/net.h b/src/net.h
index 064c448264..97389314b2 100644
--- a/src/net.h
+++ b/src/net.h
@@ -325,13 +325,13 @@ public:
class TransportSerializer {
public:
// prepare message for transport (header construction, error-correction computation, payload encryption, etc.)
- virtual void prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) = 0;
+ virtual void prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) const = 0;
virtual ~TransportSerializer() {}
};
-class V1TransportSerializer : public TransportSerializer {
+class V1TransportSerializer : public TransportSerializer {
public:
- void prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) override;
+ void prepareForTransport(CSerializedNetMsg& msg, std::vector<unsigned char>& header) const override;
};
/** Information about a peer */
@@ -342,7 +342,7 @@ class CNode
public:
std::unique_ptr<TransportDeserializer> m_deserializer;
- std::unique_ptr<TransportSerializer> m_serializer;
+ std::unique_ptr<const TransportSerializer> m_serializer;
NetPermissionFlags m_permissionFlags{NetPermissionFlags::None};