@@ -282,12 +282,21 @@ handleIncomingMessages node = go [] Map.empty Map.empty Set.empty
282 { ctrlMsgSender = nid
282 { ctrlMsgSender = nid
283 , ctrlMsgSignal = Died nid DiedDisconnect
283 , ctrlMsgSignal = Died nid DiedDisconnect
285− NT.ErrorEvent _ ->
285+ NT.ErrorEvent (NT.TransportError (NT.EventConnectionLost Nothing _) _) ->
286+ -- We cannot really deal with the case that some (but not all)
287+ -- incoming connections from a remote node have failed (what if this
288+ -- incoming connection corresponds to a typed channel, for instance?)
286− fail "handleIncomingMessages: TODO 3"
289+ fail "handleIncomingMessages: TODO"
290+ NT.ErrorEvent (NT.TransportError NT.EventEndPointFailed str) ->
291+ fail $ "Cloud Haskell fatal error: end point failed: " ++ str
292+ NT.ErrorEvent (NT.TransportError NT.EventTransportFailed str) ->
293+ fail $ "Cloud Haskell fatal error: transport failed: " ++ str
287 NT.EndPointClosed ->
294 NT.EndPointClosed ->
288 return ()
295 return ()
289 NT.ReceivedMulticast _ _ ->
296 NT.ReceivedMulticast _ _ ->
290− fail "handleIncomingMessages: TODO 4"
297+ -- If we received a multicast message, something went horribly wrong
298+ -- and we just give up
299+ fail "Cloud Haskell fatal error: received unexpected multicast"
292 state = localState node
301 state = localState node
293 endpoint = localEndPoint node
302 endpoint = localEndPoint node