diff options
author | joe <joe@jerkface.net> | 2017-02-01 03:21:52 -0500 |
---|---|---|
committer | joe <joe@jerkface.net> | 2017-02-01 03:21:52 -0500 |
commit | c51e64666b672637843a04c2f279d7d0c9eed01c (patch) | |
tree | d6f50018659ac3c5c3d72ee9bde3824514bd9f6a /src/Network/BitTorrent/Address.hs | |
parent | 0d1de683de78a70ce9c054b444bb6f19c39d112c (diff) |
New improved iterative search algorithm.
Diffstat (limited to 'src/Network/BitTorrent/Address.hs')
-rw-r--r-- | src/Network/BitTorrent/Address.hs | 12 |
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 | ||
698 | instance Pretty NodeDistance where | 698 | instance 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]) | 701 | instance 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. |
705 | distance :: NodeId -> NodeId -> NodeDistance | 705 | distance :: NodeId -> NodeId -> NodeDistance |
@@ -751,7 +751,7 @@ genBucketSample' gen (NodeId self) (q,m,b) | |||
751 | data NodeAddr a = NodeAddr | 751 | data 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 | ||
756 | instance Show a => Show (NodeAddr a) where | 756 | instance 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 |