@@ -15,7 +15,9 @@ module Network.Test.Common
15
15
-- * Run a ClientServer configuration
16
16
, test
17
17
, tcpTest
18
+ , tcpTest6
18
19
, udpTest
20
+ , udpTest6
19
21
-- * Common constants
20
22
, serverAddr
21
23
, serverAddr6
@@ -94,13 +96,16 @@ unix address cleanupAct serverAct = defaultClientServer
94
96
-- client and server. 'tcpTest' makes sure that the 'Socket' is
95
97
-- closed after the actions have run.
96
98
tcpTest :: (Socket -> IO a ) -> (Socket -> IO b ) -> IO ()
97
- tcpTest client server = withPort $ test . setClientAction client . tcp server
99
+ tcpTest client server = withPort $ test . setClientAction client . tcp serverAddr server
98
100
99
- tcp :: (Socket -> IO b ) -> MVar PortNumber -> ClientServer Socket ()
100
- tcp serverAct portVar = defaultClientServer
101
+ tcpTest6 :: (Socket -> IO a ) -> (Socket -> IO b ) -> IO ()
102
+ tcpTest6 client server = withPort $ test . setClientAction client . tcp serverAddr6 server
103
+
104
+ tcp :: HostName -> (Socket -> IO b ) -> MVar PortNumber -> ClientServer Socket ()
105
+ tcp serverAddress serverAct portVar = defaultClientServer
101
106
{ clientSetup = do
102
107
serverPort <- readMVar portVar
103
- addr <- resolveClient Stream serverAddr serverPort
108
+ addr <- resolveClient Stream serverAddress serverPort
104
109
sock <- socketWithAddrInfo addr
105
110
#if !defined(mingw32_HOST_OS)
106
111
withFdSocket sock $ \ fd -> do
@@ -110,7 +115,7 @@ tcp serverAct portVar = defaultClientServer
110
115
connect sock $ addrAddress addr
111
116
return sock
112
117
, serverSetup = do
113
- addr <- resolveServer Stream serverAddr
118
+ addr <- resolveServer Stream serverAddress
114
119
sock <- socketWithAddrInfo addr
115
120
withFdSocket sock $ \ fd -> do
116
121
#if !defined(mingw32_HOST_OS)
@@ -142,22 +147,27 @@ tcp serverAct portVar = defaultClientServer
142
147
-- datagrams and then run 'clientAct' and 'serverAct'.
143
148
udpTest :: (Socket -> SockAddr -> IO a ) -> (Socket -> IO b ) -> IO ()
144
149
udpTest client server =
145
- withPort $ test . setServerAction server . udp client
150
+ withPort $ test . setServerAction server . udp serverAddr client
151
+
152
+ udpTest6 :: (Socket -> SockAddr -> IO a ) -> (Socket -> IO b ) -> IO ()
153
+ udpTest6 client server =
154
+ withPort $ test . setServerAction server . udp serverAddr6 client
146
155
147
156
udp
148
- :: (Socket -> SockAddr -> IO a )
157
+ :: HostName
158
+ -> (Socket -> SockAddr -> IO a )
149
159
-> MVar PortNumber
150
160
-> ClientServer a Socket
151
- udp clientAct portVar = defaultClientServer
161
+ udp serverAddress clientAct portVar = defaultClientServer
152
162
{ clientSetup = do
153
- addr <- resolveClient Datagram serverAddr 8000 -- dummy port
163
+ addr <- resolveClient Datagram serverAddress 8000 -- dummy port
154
164
socketWithAddrInfo addr
155
165
, clientAction = \ sock -> do
156
166
serverPort <- readMVar portVar
157
- addr <- resolveClient Datagram serverAddr serverPort
167
+ addr <- resolveClient Datagram serverAddress serverPort
158
168
clientAct sock $ addrAddress addr
159
169
, serverSetup = do
160
- addr <- resolveServer Datagram serverAddr
170
+ addr <- resolveServer Datagram serverAddress
161
171
sock <- socketWithAddrInfo addr
162
172
setSocketOption sock ReuseAddr 1
163
173
bind sock $ addrAddress addr
0 commit comments