summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2020-01-14 15:28:14 -0500
committerJoe Crayne <joe@jerkface.net>2020-01-14 15:28:22 -0500
commit3940bf1dbf706f984388c5d55fb5e889e12864d5 (patch)
treef810af052cf59481895cbfa70ecd4ea4bdcd96b5
parent3197cc3d13f00c6f3cf1600b601007d737aea086 (diff)
relaySession exception handler.
-rw-r--r--dht/src/Network/Tox/Relay.hs4
-rw-r--r--server/src/Network/StreamServer.hs4
2 files changed, 5 insertions, 3 deletions
diff --git a/dht/src/Network/Tox/Relay.hs b/dht/src/Network/Tox/Relay.hs
index b315648a..6a1f04fa 100644
--- a/dht/src/Network/Tox/Relay.hs
+++ b/dht/src/Network/Tox/Relay.hs
@@ -273,7 +273,9 @@ tcpRelay crypto udp_addr sendOnion = do
273 bany <- getBindAddress "" True 273 bany <- getBindAddress "" True
274 h <- forkStreamServer ServerConfig 274 h <- forkStreamServer ServerConfig
275 { serverWarn = dput XMisc 275 { serverWarn = dput XMisc
276 , serverSession = relaySession crypto clients cons sendOnion 276 , serverSession = \s n h -> relaySession crypto clients cons sendOnion s n h
277 `catchIOError` \e -> do
278 dput XRelay $ "relaySession died: " ++ show e
277 } 279 }
278 [b443,b80,b3389,udp_addr,b33445,bany] 280 [b443,b80,b3389,udp_addr,b33445,bany]
279 return (h,sendTCP_ clients) 281 return (h,sendTCP_ clients)
diff --git a/server/src/Network/StreamServer.hs b/server/src/Network/StreamServer.hs
index c60ba99d..8ebdf678 100644
--- a/server/src/Network/StreamServer.hs
+++ b/server/src/Network/StreamServer.hs
@@ -148,7 +148,7 @@ forkStreamServer cfg addrs0 = do
148 listen sock maxListenQueue 148 listen sock maxListenQueue
149 thread <- mkWeakThreadId <=< forkIO $ do 149 thread <- mkWeakThreadId <=< forkIO $ do
150 bindaddr <- Socket.getSocketName sock 150 bindaddr <- Socket.getSocketName sock
151 myThreadId >>= flip labelThread ("StreamServer.acceptLoop." <> bshow bindaddr) 151 myThreadId >>= flip labelThread ("stream.acceptLoop." <> bshow bindaddr)
152 acceptLoop cfg sock 0 152 acceptLoop cfg sock 0
153 return (ServerHandle sock thread) 153 return (ServerHandle sock thread)
154 154
@@ -162,7 +162,7 @@ acceptLoop cfg sock n = handle (acceptException cfg n sock) $ do
162 laddr <- Socket.getSocketName con 162 laddr <- Socket.getSocketName con
163 h <- socketToHandle con ReadWriteMode 163 h <- socketToHandle con ReadWriteMode
164 forkIO $ do 164 forkIO $ do
165 myThreadId >>= flip labelThread "StreamServer.session" 165 myThreadId >>= flip labelThread ("stream.session." ++ show (canonize raddr))
166 serverSession cfg (restrictHandleSocket h con, (Local laddr, Remote raddr)) conkey h 166 serverSession cfg (restrictHandleSocket h con, (Local laddr, Remote raddr)) conkey h
167 acceptLoop cfg sock (n + 1) 167 acceptLoop cfg sock (n + 1)
168 168