summaryrefslogtreecommitdiff
path: root/src/Network/DatagramServer
diff options
context:
space:
mode:
authorjoe <joe@jerkface.net>2017-07-03 18:46:14 -0400
committerjoe <joe@jerkface.net>2017-07-03 18:46:14 -0400
commit81bcffd68c9997b8e4b5f8c2d4cb1e4db4c62153 (patch)
tree123f6236b1f4d4f70f2d0fc260e5d0b28159741c /src/Network/DatagramServer
parentbe15a1ceba3b87f845d3b56915207457a94394ee (diff)
Moved node-id out of Query/Response. It can be either in the
envelope (Tox) or in the query/response payload (Mainline).
Diffstat (limited to 'src/Network/DatagramServer')
-rw-r--r--src/Network/DatagramServer/Mainline.hs11
-rw-r--r--src/Network/DatagramServer/Tox.hs3
2 files changed, 11 insertions, 3 deletions
diff --git a/src/Network/DatagramServer/Mainline.hs b/src/Network/DatagramServer/Mainline.hs
index 7cf96e44..89a275c1 100644
--- a/src/Network/DatagramServer/Mainline.hs
+++ b/src/Network/DatagramServer/Mainline.hs
@@ -279,10 +279,15 @@ instance Envelope KMessageOf where
279 newtype NodeId KMessageOf = NodeId Word160 279 newtype NodeId KMessageOf = NodeId Word160
280 deriving (Show, Eq, Ord, Typeable, Bits, FiniteBits) 280 deriving (Show, Eq, Ord, Typeable, Bits, FiniteBits)
281 281
282 newtype QueryExtra KMessageOf = IsReadOnlyQuery { queryIsReadOnly :: Bool } 282 data QueryExtra KMessageOf = MainlineQuery
283 { queringNodeId :: NodeId KMessageOf -- ^ node id of /quering/ node;
284 , queryIsReadOnly :: Bool -- ^ node is read-only as per BEP 43
285 }
283 deriving (Show, Eq, Ord, Typeable) 286 deriving (Show, Eq, Ord, Typeable)
284 287
285 data ResponseExtra KMessageOf = MainlineResponseData 288 newtype ResponseExtra KMessageOf = MainlineResponse
289 { queredNodeId :: NodeId KMessageOf -- ^ node id of /quered/ node
290 }
286 deriving (Show, Eq, Ord, Typeable) 291 deriving (Show, Eq, Ord, Typeable)
287 292
288 envelopePayload (Q q) = queryArgs q 293 envelopePayload (Q q) = queryArgs q
@@ -304,7 +309,7 @@ instance Envelope KMessageOf where
304 309
305 uniqueTransactionId cnt = return $ TID $ Char8.pack (show cnt) 310 uniqueTransactionId cnt = return $ TID $ Char8.pack (show cnt)
306 311
307 fromRoutableNode (IsReadOnlyQuery b) = not b 312 fromRoutableNode = not . queryIsReadOnly
308 313
309 314
310instance WireFormat BValue KMessageOf where 315instance WireFormat BValue KMessageOf where
diff --git a/src/Network/DatagramServer/Tox.hs b/src/Network/DatagramServer/Tox.hs
index b323a4df..83701b6b 100644
--- a/src/Network/DatagramServer/Tox.hs
+++ b/src/Network/DatagramServer/Tox.hs
@@ -260,6 +260,9 @@ instance Envelope Message where
260 260
261 type QueryMethod Message = MessageType 261 type QueryMethod Message = MessageType
262 262
263 newtype QueryExtra Message = QueryNonce { qryNonce :: Nonce8 }
264 newtype ResponseExtra Message = ResponseNonce { rspNonce :: Nonce8 }
265
263 envelopePayload = msgPayload 266 envelopePayload = msgPayload
264 267
265 envelopeTransaction = msgNonce 268 envelopeTransaction = msgNonce