summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/Address.hs
diff options
context:
space:
mode:
authorjoe <joe@jerkface.net>2017-02-01 03:21:52 -0500
committerjoe <joe@jerkface.net>2017-02-01 03:21:52 -0500
commitc51e64666b672637843a04c2f279d7d0c9eed01c (patch)
treed6f50018659ac3c5c3d72ee9bde3824514bd9f6a /src/Network/BitTorrent/Address.hs
parent0d1de683de78a70ce9c054b444bb6f19c39d112c (diff)
New improved iterative search algorithm.
Diffstat (limited to 'src/Network/BitTorrent/Address.hs')
-rw-r--r--src/Network/BitTorrent/Address.hs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/Network/BitTorrent/Address.hs b/src/Network/BitTorrent/Address.hs
index 381ff50b..a8e12b35 100644
--- a/src/Network/BitTorrent/Address.hs
+++ b/src/Network/BitTorrent/Address.hs
@@ -696,10 +696,10 @@ newtype NodeDistance = NodeDistance BS.ByteString
696 deriving (Eq, Ord) 696 deriving (Eq, Ord)
697 697
698instance Pretty NodeDistance where 698instance Pretty NodeDistance where
699 pPrint (NodeDistance bs) = foldMap bitseq $ BS.unpack bs 699 pPrint (NodeDistance bs) = text $ BC.unpack (Base16.encode bs)
700 where 700
701 listBits w = L.map (testBit w) (L.reverse [0..finiteBitSize w - 1]) 701instance Show NodeDistance where
702 bitseq = foldMap (int . fromEnum) . listBits 702 show (NodeDistance bs) = BC.unpack (Base16.encode bs)
703 703
704-- | distance(A,B) = |A xor B| Smaller values are closer. 704-- | distance(A,B) = |A xor B| Smaller values are closer.
705distance :: NodeId -> NodeId -> NodeDistance 705distance :: NodeId -> NodeId -> NodeDistance
@@ -751,7 +751,7 @@ genBucketSample' gen (NodeId self) (q,m,b)
751data NodeAddr a = NodeAddr 751data NodeAddr a = NodeAddr
752 { nodeHost :: !a 752 { nodeHost :: !a
753 , nodePort :: {-# UNPACK #-} !PortNumber 753 , nodePort :: {-# UNPACK #-} !PortNumber
754 } deriving (Eq, Typeable, Functor, Foldable, Traversable) 754 } deriving (Eq, Ord, Typeable, Functor, Foldable, Traversable)
755 755
756instance Show a => Show (NodeAddr a) where 756instance Show a => Show (NodeAddr a) where
757 showsPrec i NodeAddr {..} 757 showsPrec i NodeAddr {..}
@@ -1285,7 +1285,7 @@ getBindAddress listenPortString enabled6 = do
1285 let (x6s,x4s) = partition (\s -> addrFamily s == AF_INET6) xs 1285 let (x6s,x4s) = partition (\s -> addrFamily s == AF_INET6) xs
1286 listenAddr = 1286 listenAddr =
1287 case if enabled6 then x6s++x4s else x4s of 1287 case if enabled6 then x6s++x4s else x4s of
1288 AddrInfo { addrAddress = listenAddr } : _ -> listenAddr 1288 AddrInfo { addrAddress = addr } : _ -> addr
1289 _ -> if enabled6 1289 _ -> if enabled6
1290 then SockAddrInet6 (parsePort listenPortString) 0 iN6ADDR_ANY 0 1290 then SockAddrInet6 (parsePort listenPortString) 0 iN6ADDR_ANY 0
1291 else SockAddrInet (parsePort listenPortString) iNADDR_ANY 1291 else SockAddrInet (parsePort listenPortString) iNADDR_ANY