summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Presence/XMPPServer.hs16
1 files changed, 7 insertions, 9 deletions
diff --git a/Presence/XMPPServer.hs b/Presence/XMPPServer.hs
index 6176bbe6..8f32535a 100644
--- a/Presence/XMPPServer.hs
+++ b/Presence/XMPPServer.hs
@@ -258,22 +258,20 @@ xmlStream conread conwrite = (xsrc,xsnk)
258 xsrc = src $= XML.parseBytes XML.def 258 xsrc = src $= XML.parseBytes XML.def
259 xsnk :: Sink (Flush Event) IO () 259 xsnk :: Sink (Flush Event) IO ()
260 xsnk = -- XML.renderBytes XML.def =$ snk 260 xsnk = -- XML.renderBytes XML.def =$ snk
261 renderBuilderFlush XML.def 261 renderBuilderFlush XML.def
262 =$= builderToByteStringFlush 262 =$= builderToByteStringFlush
263 =$= discardFlush 263 =$= discardFlush
264 =$ snk 264 =$ snk
265 where 265 where
266 discardFlush :: Monad m => ConduitM (Flush a) a m () 266 discardFlush :: Monad m => ConduitM (Flush a) a m ()
267 discardFlush = awaitForever $ \x -> do 267 discardFlush = awaitForever yieldChunk
268 let unchunk (Chunk a) = a 268 yieldChunk (Chunk x) = yield x
269 ischunk (Chunk _) = True 269 yieldChunk _ = return ()
270 ischunk _ = False
271 when (ischunk x) $ yield (unchunk x)
272 270
273 src = do 271 src = do
274 v <- lift conread 272 v <- lift conread
275 maybe (return ()) -- lift . wlog $ "conread: Nothing") 273 maybe (return ()) -- lift . wlog $ "conread: Nothing")
276 (\v -> yield v >> src) 274 (yield >=> const src)
277 v 275 v
278 snk = awaitForever $ liftIO . conwrite 276 snk = awaitForever $ liftIO . conwrite
279 277