summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/Internal.hs
diff options
context:
space:
mode:
authorSam T <pxqr.sta@gmail.com>2013-06-11 07:52:20 +0400
committerSam T <pxqr.sta@gmail.com>2013-06-11 07:52:20 +0400
commit0254b200cd4aa5245c37c7a650f8b14567a3b4cf (patch)
tree13ed575f9ffa3cb9e1dbd39b51fc48845125ea5a /src/Network/BitTorrent/Internal.hs
parent1b4fdf35dd6c21d600130c42a1bcb5c56b25afa6 (diff)
~ Minor changes.
Diffstat (limited to 'src/Network/BitTorrent/Internal.hs')
-rw-r--r--src/Network/BitTorrent/Internal.hs26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/Network/BitTorrent/Internal.hs b/src/Network/BitTorrent/Internal.hs
index e231fb2c..39e10ce2 100644
--- a/src/Network/BitTorrent/Internal.hs
+++ b/src/Network/BitTorrent/Internal.hs
@@ -85,11 +85,16 @@ instance Ord ClientSession where
85 compare = comparing clientPeerID 85 compare = comparing clientPeerID
86 86
87newClient :: [Extension] -> IO ClientSession 87newClient :: [Extension] -> IO ClientSession
88newClient exts = ClientSession <$> newPeerID 88newClient exts = do
89 <*> pure exts 89 mgr <- Ev.new
90 <*> newTVarIO S.empty 90 forkIO $ loop mgr
91 <*> Ev.new 91
92 <*> newIORef (startProgress 0) 92 ClientSession
93 <$> newPeerID
94 <*> pure exts
95 <*> newTVarIO S.empty
96 <*> pure mgr
97 <*> newIORef (startProgress 0)
93 98
94{----------------------------------------------------------------------- 99{-----------------------------------------------------------------------
95 Swarm session 100 Swarm session
@@ -207,7 +212,7 @@ maxIncomingTime :: Int
207maxIncomingTime = 120 * sec 212maxIncomingTime = 120 * sec
208 213
209maxOutcomingTime :: Int 214maxOutcomingTime :: Int
210maxOutcomingTime = 60 * sec 215maxOutcomingTime = 1 * sec
211 216
212-- | Should be called after we have received any message from a peer. 217-- | Should be called after we have received any message from a peer.
213updateIncoming :: PeerSession -> IO () 218updateIncoming :: PeerSession -> IO ()
@@ -221,8 +226,13 @@ updateOutcoming PeerSession {..} =
221 updateTimeout (eventManager (clientSession swarmSession)) 226 updateTimeout (eventManager (clientSession swarmSession))
222 outcomingTimeout maxOutcomingTime 227 outcomingTimeout maxOutcomingTime
223 228
224sendKA :: Socket -> IO () 229sendKA :: Socket -> SwarmSession -> IO ()
225sendKA sock = sendAll sock (encode BT.KeepAlive) 230sendKA sock SwarmSession {..} = do
231 print "I'm sending keep alive."
232 sendAll sock (encode BT.KeepAlive)
233 let mgr = eventManager clientSession
234 updateTimeout mgr
235 print "Done.."
226 236
227abortSession :: IO () 237abortSession :: IO ()
228abortSession = error "abortSession: not implemented" 238abortSession = error "abortSession: not implemented"