summaryrefslogtreecommitdiff
path: root/src/Message.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2020-02-03 22:29:31 +0100
committerRoman Smrž <roman.smrz@seznam.cz>2020-02-04 22:52:47 +0100
commit6f0bcff200598d085c89d167aa126d25fc5df3ed (patch)
tree0868edc1759b7c90eaba7ab8d4835179b42541ff /src/Message.hs
parent84d7c83bc85ff0862a39d6de3bd227550175ebce (diff)
Service: stored or ref-only reply packet
Use the ref-only packet to acknowledge successful storage of received direct message.
Diffstat (limited to 'src/Message.hs')
-rw-r--r--src/Message.hs13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/Message.hs b/src/Message.hs
index bfb4b66..ee59dad 100644
--- a/src/Message.hs
+++ b/src/Message.hs
@@ -84,14 +84,11 @@ instance Service DirectMessageService where
shared <- makeSharedStateUpdate st [next] (lsShared $ fromStored erb)
wrappedStore st (fromStored erb) { lsShared = [shared] }
svcSetLocal erb'
- if powner `sameIdentity` msgFrom msg
- then do
- svcPrint $ formatMessage tzone msg
- return $ Just $ DirectMessagePacket smsg
- else return Nothing
-
- else do svcPrint "Owner mismatch"
- return Nothing
+ when (powner `sameIdentity` msgFrom msg) $ do
+ svcPrint $ formatMessage tzone msg
+ replyStoredRef packet
+
+ else svcPrint "Owner mismatch"
instance Storable (ServicePacket DirectMessageService) where
store' (DirectMessagePacket smsg) = store' smsg