removed all uses of undefined from code base
It's a code smell, can lead to hard to diagnose error messages.
This commit is contained in:
parent
d7f4c823d7
commit
addc82dab7
19 changed files with 42 additions and 37 deletions
|
@ -81,6 +81,8 @@ data PairingInProgress = PairingInProgress
|
|||
}
|
||||
deriving (Show)
|
||||
|
||||
data AddrClass = IPv4AddrClass | IPv6AddrClass
|
||||
|
||||
data SomeAddr = IPv4Addr HostAddress
|
||||
{- My Android build of the Network library does not currently have IPV6
|
||||
- support. -}
|
||||
|
|
|
@ -33,9 +33,9 @@ pairingPort = 55556
|
|||
{- Goal: Reach all hosts on the same network segment.
|
||||
- Method: Use same address that avahi uses. Other broadcast addresses seem
|
||||
- to not be let through some routers. -}
|
||||
multicastAddress :: SomeAddr -> HostName
|
||||
multicastAddress (IPv4Addr _) = "224.0.0.251"
|
||||
multicastAddress (IPv6Addr _) = "ff02::fb"
|
||||
multicastAddress :: AddrClass -> HostName
|
||||
multicastAddress IPv4AddrClass = "224.0.0.251"
|
||||
multicastAddress IPv6AddrClass = "ff02::fb"
|
||||
|
||||
{- Multicasts a message repeatedly on all interfaces, with a 2 second
|
||||
- delay between each transmission. The message is repeated forever
|
||||
|
@ -62,7 +62,7 @@ multicastPairMsg repeats secret pairdata stage = go M.empty repeats
|
|||
sendinterface cache i = void $ tryIO $
|
||||
withSocketsDo $ bracket setup cleanup use
|
||||
where
|
||||
setup = multicastSender (multicastAddress i) pairingPort
|
||||
setup = multicastSender (multicastAddress IPv4AddrClass) pairingPort
|
||||
cleanup (sock, _) = sClose sock -- FIXME does not work
|
||||
use (sock, addr) = do
|
||||
setInterface sock (showAddr i)
|
||||
|
|
|
@ -196,7 +196,7 @@ maxCommitSize :: Int
|
|||
maxCommitSize = 5000
|
||||
|
||||
{- Decide if now is a good time to make a commit.
|
||||
- Note that the list of changes has an undefined order.
|
||||
- Note that the list of changes has a random order.
|
||||
-
|
||||
- Current strategy: If there have been 10 changes within the past second,
|
||||
- a batch activity is taking place, so wait for later.
|
||||
|
|
|
@ -31,7 +31,7 @@ pairListenerThread urlrenderer = namedThread "PairListener" $ do
|
|||
where
|
||||
{- Note this can crash if there's no network interface,
|
||||
- or only one like lo that doesn't support multicast. -}
|
||||
getsock = multicastReceiver (multicastAddress $ IPv4Addr undefined) pairingPort
|
||||
getsock = multicastReceiver (multicastAddress IPv4AddrClass) pairingPort
|
||||
|
||||
go reqs cache sock = liftIO (getmsg sock []) >>= \msg -> case readish msg of
|
||||
Nothing -> go reqs cache sock
|
||||
|
|
|
@ -78,4 +78,5 @@ selectNextPush lastpushedto l = go [] l
|
|||
(Pushing clientid _)
|
||||
| Just clientid /= lastpushedto -> (m, rejected ++ ms)
|
||||
_ -> go (m:rejected) ms
|
||||
go [] [] = undefined
|
||||
go [] [] = error "empty push queue"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue