@@ -226,6 +226,50 @@ int main(int argc, char *argv[])
226
226
strcpy (expect -> u .sockname , "/tmp/foo.sock" );
227
227
assert (wireaddr_internal_eq (& addr , expect ));
228
228
229
+ /* Websocket (only for IP addresses) */
230
+ assert (parse_wireaddr_internal (tmpctx , "ws:/tmp/foo.sock" , DEFAULT_PORT , false, & addr ) != NULL );
231
+
232
+ assert (parse_wireaddr_internal (tmpctx , "ws:127.0.0.1" , DEFAULT_PORT , false, & addr ) == NULL );
233
+ expect -> itype = ADDR_INTERNAL_WIREADDR ;
234
+ expect -> u .wireaddr .is_websocket = true;
235
+ assert (parse_wireaddr (tmpctx , "127.0.0.1:9735" , 0 , NULL , & expect -> u .wireaddr .wireaddr ) == NULL );
236
+ assert (wireaddr_internal_eq (& addr , expect ));
237
+
238
+ /* Websocket: IPv4 address with port. */
239
+ assert (parse_wireaddr_internal (tmpctx , "ws:127.0.0.1:1" , DEFAULT_PORT , false, & addr ) == NULL );
240
+ expect -> itype = ADDR_INTERNAL_WIREADDR ;
241
+ expect -> u .wireaddr .is_websocket = true;
242
+ assert (parse_wireaddr (tmpctx , "127.0.0.1:1" , 0 , NULL , & expect -> u .wireaddr .wireaddr ) == NULL );
243
+ assert (wireaddr_internal_eq (& addr , expect ));
244
+
245
+ /* Websocket: Simple IPv6 address. */
246
+ assert (parse_wireaddr_internal (tmpctx , "ws:::1" , DEFAULT_PORT , false, & addr ) == NULL );
247
+ expect -> itype = ADDR_INTERNAL_WIREADDR ;
248
+ expect -> u .wireaddr .is_websocket = true;
249
+ assert (parse_wireaddr (tmpctx , "::1" , DEFAULT_PORT , NULL , & expect -> u .wireaddr .wireaddr ) == NULL );
250
+ assert (wireaddr_internal_eq (& addr , expect ));
251
+
252
+ /* Websocket: IPv6 address with port. */
253
+ assert (parse_wireaddr_internal (tmpctx , "ws:[::1]:1" , DEFAULT_PORT , false, & addr ) == NULL );
254
+ expect -> itype = ADDR_INTERNAL_WIREADDR ;
255
+ expect -> u .wireaddr .is_websocket = true;
256
+ assert (parse_wireaddr (tmpctx , "::1" , 1 , NULL , & expect -> u .wireaddr .wireaddr ) == NULL );
257
+ assert (wireaddr_internal_eq (& addr , expect ));
258
+
259
+ /* Websocket: IPv4 & v6 address. */
260
+ assert (parse_wireaddr_internal (tmpctx , "ws:" , DEFAULT_PORT , false, & addr ) == NULL );
261
+ expect -> itype = ADDR_INTERNAL_ALLPROTO ;
262
+ expect -> u .allproto .is_websocket = true;
263
+ expect -> u .allproto .port = DEFAULT_PORT ;
264
+ assert (wireaddr_internal_eq (& addr , expect ));
265
+
266
+ /* Websocket: IPv4 & v6 address with port */
267
+ assert (parse_wireaddr_internal (tmpctx , "ws::1" , DEFAULT_PORT , false, & addr ) == NULL );
268
+ expect -> itype = ADDR_INTERNAL_ALLPROTO ;
269
+ expect -> u .allproto .is_websocket = true;
270
+ expect -> u .allproto .port = 1 ;
271
+ assert (wireaddr_internal_eq (& addr , expect ));
272
+
229
273
/* Unresolved */
230
274
assert (parse_wireaddr_internal (tmpctx , "ozlabs.org" , DEFAULT_PORT , false, & addr ) == NULL );
231
275
expect -> itype = ADDR_INTERNAL_FORPROXY ;
0 commit comments