diff options
Diffstat (limited to 'server/src/Network/QueryResponse.hs')
-rw-r--r-- | server/src/Network/QueryResponse.hs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/server/src/Network/QueryResponse.hs b/server/src/Network/QueryResponse.hs index 94eb4796..470b7ce7 100644 --- a/server/src/Network/QueryResponse.hs +++ b/server/src/Network/QueryResponse.hs | |||
@@ -81,6 +81,13 @@ data TransportA err addr x y = Transport | |||
81 | 81 | ||
82 | type Transport err addr x = TransportA err addr x x | 82 | type Transport err addr x = TransportA err addr x x |
83 | 83 | ||
84 | nullTransport :: TransportA err addr x y | ||
85 | nullTransport = Transport | ||
86 | { awaitMessage = \_ -> retry | ||
87 | , sendMessage = \_ _ -> return () | ||
88 | , setActive = \_ -> return () | ||
89 | } | ||
90 | |||
84 | closeTransport :: TransportA err addr x y -> IO () | 91 | closeTransport :: TransportA err addr x y -> IO () |
85 | closeTransport tr = setActive tr False | 92 | closeTransport tr = setActive tr False |
86 | 93 | ||
@@ -606,6 +613,8 @@ saferSendTo sock bs saddr = void (B.sendTo sock bs saddr) | |||
606 | else throw e | 613 | else throw e |
607 | 614 | ||
608 | -- | Like 'udpTransport' except also returns the raw socket (for broadcast use). | 615 | -- | Like 'udpTransport' except also returns the raw socket (for broadcast use). |
616 | -- | ||
617 | -- Note: Throws an exception if unable to bind. | ||
609 | udpTransport' :: Show err => SockAddr -> IO (Transport err SockAddr ByteString, Socket) | 618 | udpTransport' :: Show err => SockAddr -> IO (Transport err SockAddr ByteString, Socket) |
610 | udpTransport' bind_address = do | 619 | udpTransport' bind_address = do |
611 | let family = sockAddrFamily bind_address | 620 | let family = sockAddrFamily bind_address |