@@ -1419,12 +1419,12 @@ client
1419
1419
processCommand :: Maybe ServiceId -> VersionSMP -> VerifiedTransmission s -> M s (Maybe ResponseAndMessage )
1420
1420
processCommand clntServiceId clntVersion (q_, (corrId, entId, cmd)) = case cmd of
1421
1421
Cmd SProxiedClient command -> processProxiedCmd (corrId, entId, command)
1422
- Cmd SSender command -> response <$> case command of
1422
+ Cmd SSender command -> case command of
1423
1423
SKEY k -> withQueue $ \ q qr -> checkMode QMMessaging qr $ secureQueue_ q k
1424
- SEND flags msgBody -> withQueue_ False err $ sendMessage flags msgBody
1424
+ SEND flags msgBody -> response <$> withQueue_ False err ( sendMessage flags msgBody)
1425
1425
Cmd SIdleClient PING -> pure $ response (corrId, NoEntity , PONG )
1426
1426
Cmd SProxyService (RFWD encBlock) -> response . (corrId,NoEntity ,) <$> processForwardedCommand encBlock
1427
- Cmd SSenderLink command -> response <$> case command of
1427
+ Cmd SSenderLink command -> case command of
1428
1428
LKEY k -> withQueue $ \ q qr -> checkMode QMMessaging qr $ secureQueue_ q k $>> getQueueLink_ q qr
1429
1429
LGET -> withQueue $ \ q qr -> checkContact qr $ getQueueLink_ q qr
1430
1430
Cmd SNotifier NSUB -> response . (corrId,entId,) <$> case q_ of
@@ -1439,9 +1439,9 @@ client
1439
1439
allowNew = do
1440
1440
ServerConfig {allowNewQueues, newQueueBasicAuth} <- asks config
1441
1441
pure $ allowNewQueues && maybe True ((== auth_) . Just ) newQueueBasicAuth
1442
- Cmd SRecipient SUB -> Just <$> withQueue' subscribeQueueAndDeliver
1443
1442
Cmd SRecipient command ->
1444
- response <$> case command of
1443
+ case command of
1444
+ SUB -> withQueue' subscribeQueueAndDeliver
1445
1445
GET -> withQueue getMessage
1446
1446
ACK msgId -> withQueue $ acknowledgeMsg msgId
1447
1447
KEY sKey -> withQueue $ \ q _ -> either err (corrId,entId,) <$> secureQueue_ q sKey
@@ -1457,8 +1457,8 @@ client
1457
1457
Nothing -> pure ok
1458
1458
NKEY nKey dhKey -> withQueue $ \ q _ -> addQueueNotifier_ q nKey dhKey
1459
1459
NDEL -> withQueue $ \ q _ -> deleteQueueNotifier_ q
1460
- OFF -> maybe (pure $ err INTERNAL ) suspendQueue_ q_
1461
- DEL -> maybe (pure $ err INTERNAL ) delQueueAndMsgs q_
1460
+ OFF -> response <$> maybe (pure $ err INTERNAL ) suspendQueue_ q_
1461
+ DEL -> response <$> maybe (pure $ err INTERNAL ) delQueueAndMsgs q_
1462
1462
QUE -> withQueue $ \ q qr -> (corrId,entId,) <$> getQueueInfo q qr
1463
1463
Cmd SRecipientService SUBS -> pure $ response $ err (CMD PROHIBITED ) -- "TODO [certs rcv]"
1464
1464
where
@@ -1666,11 +1666,13 @@ client
1666
1666
atomically $ setDelivered s msg ts $> (corrId, entId, MSG encMsg)
1667
1667
Nothing -> incStat (msgGetNoMsg stats) $> ok
1668
1668
1669
- withQueue :: (StoreQueue s -> QueueRec -> M s (Transmission BrokerMsg )) -> M s (Transmission BrokerMsg )
1670
- withQueue = withQueue_ True err
1669
+ withQueue :: (StoreQueue s -> QueueRec -> M s (Transmission BrokerMsg )) -> M s (Maybe ResponseAndMessage )
1670
+ withQueue = fmap response . withQueue_ True err
1671
+ {-# INLINE withQueue #-}
1671
1672
1672
- withQueue' :: (StoreQueue s -> QueueRec -> M s ResponseAndMessage ) -> M s ResponseAndMessage
1673
- withQueue' = withQueue_ True ((,Nothing ) . err)
1673
+ withQueue' :: (StoreQueue s -> QueueRec -> M s ResponseAndMessage ) -> M s (Maybe ResponseAndMessage )
1674
+ withQueue' = fmap Just . withQueue_ True ((,Nothing ) . err)
1675
+ {-# INLINE withQueue' #-}
1674
1676
1675
1677
-- SEND passes queueNotBlocked False here to update time, but it fails anyway on blocked queues (see code for SEND).
1676
1678
withQueue_ :: Bool -> (ErrorType -> r ) -> (StoreQueue s -> QueueRec -> M s r ) -> M s r
0 commit comments