@@ -318,7 +318,7 @@ isBadServerName = \s ->
318318 || containsMultipleColons sn
319319 || hasOctalOctet sn
320320 || hasHexPrefix sn
321− || (isDigitChar (take 1 sn) && isAllDigitsUntilColonOrEnd sn)
321+ || (isDigitChar (take 1 sn) && isAllDigitsOrDotsUntilColonOrEnd sn)
322322 || take 4 sn == "224." || take 4 sn == "225." || take 4 sn == "226." || take 4 sn == "227."
323323 || take 4 sn == "228." || take 4 sn == "229." || take 4 sn == "230." || take 4 sn == "231."
324324 || take 4 sn == "232." || take 4 sn == "233." || take 4 sn == "234." || take 4 sn == "235."
@@ -529,9 +529,9 @@ retryForwardsForServer = \entries remaining ->
529529
530530retryPendingForwards : [{encryptedBlob: Text, fromKey: Text, messageId: Text, timestamp: Int, toKey: Text, toServer: Text}] -> IO {network} {}
531531retryPendingForwards = \pending -> do
532− let servers = traverse (\x ->
532+ let servers = fold (\acc x ->
533533 if count (do s <- acc; where s == x.toServer; yield s) > 0 then acc
534− else union acc [x.toServer]) pending
534+ else union acc [x.toServer]) [] pending
535535 sendToEach servers (\server ->
536536 retryForwardsForServer (do x <- pending; where x.toServer == server; yield x) maxForwardRetriesPerServer)
537537 yield {}