socks 0.5.3 → 0.5.4
raw patch · 3 files changed
+43/−43 lines, 3 files
Files
- Example.hs +39/−39
- Network/Socks5/Wire.hs +2/−2
- socks.cabal +2/−2
Example.hs view
@@ -11,47 +11,47 @@ import System.Environment (getArgs) main = do- args <- getArgs- let serverName = "localhost"- let serverPort = 1080- let destinationName = case args of- [] -> "www.google.com"- (x:_) -> x- -- socks server is expected to be running on localhost port 1080- he <- getHostByName serverName- let socksServerAddr = SockAddrInet serverPort (head $ hostAddresses he)+ args <- getArgs+ let serverName = "localhost"+ let serverPort = 1080+ let destinationName = case args of+ [] -> "www.google.com"+ (x:_) -> x+ -- socks server is expected to be running on localhost port 1080+ he <- getHostByName serverName+ let socksServerAddr = SockAddrInet serverPort (head $ hostAddresses he) - example1 socksServerAddr destinationName- example2 socksServerAddr destinationName+ example1 socksServerAddr destinationName+ example2 socksServerAddr destinationName - example3 serverName serverPort destinationName 80+ example3 serverName serverPort destinationName 80 - where- -- connect to @destName on port 80 through the socks server- -- www.google.com get resolve on the client here and then the sockaddr is- -- passed to socksConnectAddr- example1 socksServerAddr destName = do- socket <- socket AF_INET Stream defaultProtocol- - gHost <- getHostByName destName- let destinationAddr = SockAddrInet 80 (head $ hostAddresses gHost)- socksConnectAddr socket socksServerAddr destinationAddr+ where+ -- connect to @destName on port 80 through the socks server+ -- www.google.com get resolve on the client here and then the sockaddr is+ -- passed to socksConnectAddr+ example1 socksServerAddr destName = do+ socket <- socket AF_INET Stream defaultProtocol+ + gHost <- getHostByName destName+ let destinationAddr = SockAddrInet 80 (head $ hostAddresses gHost)+ socksConnectAddr socket socksServerAddr destinationAddr - sendAll socket "GET / HTTP/1.0\r\n\r\n"- recv socket 4096 >>= putStrLn . show- sClose socket- -- connect to @destName on port 80 through the socks server- -- the server is doing the resolution itself- example2 socksServerAddr destName = do- socket <- socket AF_INET Stream defaultProtocol- socksConnectName socket socksServerAddr destName 80- sendAll socket "GET / HTTP/1.0\r\n\r\n"- recv socket 4096 >>= putStrLn . show- sClose socket+ sendAll socket "GET / HTTP/1.0\r\n\r\n"+ recv socket 4096 >>= putStrLn . show+ sClose socket+ -- connect to @destName on port 80 through the socks server+ -- the server is doing the resolution itself+ example2 socksServerAddr destName = do+ socket <- socket AF_INET Stream defaultProtocol+ socksConnectName socket socksServerAddr destName 80+ sendAll socket "GET / HTTP/1.0\r\n\r\n"+ recv socket 4096 >>= putStrLn . show+ sClose socket - example3 sname sport dname dport = do - handle <- socksConnectTo sname (PortNumber sport) dname (PortNumber dport)- BC.hPut handle "GET / HTTP/1.0\r\n\r\n"- hFlush handle- BC.hGet handle 1024 >>= putStrLn . show- hClose handle+ example3 sname sport dname dport = do + handle <- socksConnectTo sname (PortNumber sport) dname (PortNumber dport)+ BC.hPut handle "GET / HTTP/1.0\r\n\r\n"+ hFlush handle+ BC.hGet handle 1024 >>= putStrLn . show+ hClose handle
Network/Socks5/Wire.hs view
@@ -44,9 +44,9 @@ , responseBindPort :: PortNumber } deriving (Show,Eq) -getAddr 1 = SocksAddrIPV4 <$> getWord32be+getAddr 1 = SocksAddrIPV4 <$> getWord32host getAddr 3 = SocksAddrDomainName <$> (getWord8 >>= getByteString . fromIntegral)-getAddr 4 = SocksAddrIPV6 <$> (liftM4 (,,,) getWord32le getWord32le getWord32le getWord32le)+getAddr 4 = SocksAddrIPV6 <$> (liftM4 (,,,) getWord32host getWord32host getWord32host getWord32host) getAddr n = error ("cannot get unknown socket address type: " ++ show n) putAddr (SocksAddrIPV4 h) = putWord8 1 >> putWord32host h
socks.cabal view
@@ -1,5 +1,5 @@ Name: socks-Version: 0.5.3+Version: 0.5.4 Description: Socks proxy (version 5) implementation. License: BSD3 License-file: LICENSE@@ -25,7 +25,7 @@ Other-modules: Network.Socks5.Wire Network.Socks5.Conf Network.Socks5.Command- ghc-options: -Wall -fno-warn-missing-signatures+ ghc-options: -Wall -fno-warn-missing-signatures -fwarn-tabs source-repository head type: git