packages feed

moesocks 0.1.0.12 → 0.1.0.13

raw patch · 3 files changed

+6/−34 lines, 3 files

Files

moesocks.cabal view
@@ -1,6 +1,6 @@ name:               moesocks category:           Network-version:            0.1.0.12+version:            0.1.0.13 license:            Apache-2.0 synopsis:           A functional firewall killer description:        A socks5 proxy using the client / server architecture.
readme.md view
@@ -23,6 +23,7 @@ * IPv6 * Socks4 / Socks4a * UDP over Socks5+* Four times slower then original Python's implementation  Planning features ------------------
src/Network/MoeSocks/Helper.hs view
@@ -337,6 +337,8 @@   _produce 0 `onException` _shutdown   pure () +  + consumeLoop :: String -> Timeout -> Maybe Double ->                 Socket -> TBQueue (Maybe ByteString) -> IO () consumeLoop aID aTimeout aThrottle aSocket aTBQueue = do@@ -372,15 +374,10 @@         case _r of           Nothing -> () <$ _shutdown           Just _data -> do-                          _len <- timeoutFor aID aTimeout - send aSocket _data --                          when (_len < S.length _data) - do-                            atomically - unGetTBQueue aTBQueue --                                            Just - S.drop _len _data-                            +                          timeoutFor aID aTimeout - sendAll aSocket _data                           yield                           _consume - -                            _bytesSent + _len+                            _bytesSent + S.length _data      _consume 0 `onException` _shutdown   pure ()@@ -392,32 +389,6 @@ setSocketCloseOnExec :: Socket -> IO () setSocketCloseOnExec aSocket =     setFdOption (fromIntegral $ fdSocket aSocket) CloseOnExec True---readAll :: TBQueue (Maybe ByteString) -> STM (Maybe [ByteString])-readAll aTBQueue = do-  _r <- readTBQueue aTBQueue-  case _r of-    Nothing -> pure Nothing-    Just _b -> do-                fmap (Just . reverse) - readMore [_b] aTBQueue--  where -    readMore :: [ByteString] -> TBQueue (Maybe ByteString) -> STM [ByteString]-    readMore _acc _q = do-      _empty <- isEmptyTBQueue _q -      if _empty-        then pure - _acc-        else -          do-            _more <- readTBQueue _q -            case _more of-              Nothing -> do-                            unGetTBQueue _q Nothing-                            pure - _acc-              Just _r -> readMore (_r : _acc) _q-              -   tryIO :: String -> IO a -> IO (Either IOException a)