File tree Expand file tree Collapse file tree 2 files changed +24
-11
lines changed Expand file tree Collapse file tree 2 files changed +24
-11
lines changed Original file line number Diff line number Diff line change @@ -282,16 +282,14 @@ See also [`getipaddrs`](@ref).
282282"""
283283function getipaddr (addr_type:: Type{T} ) where T<: IPAddr
284284 addrs = getipaddrs (addr_type)
285+ isempty (addrs) && error (" No networking interface available" )
285286
286- if length (addrs) == 0
287- error (" No networking interface available" )
288- end
289-
290- # Prefer the first IPv4 address
287+ # When `addr_type` is `IPAddr`, `addrs` contain IP addresses of all types
288+ # In that case, we prefer to return the first IPv4
291289 i = something (findfirst (ip -> ip isa IPv4, addrs), 1 )
292290 return addrs[i]
293291end
294- getipaddr () = getipaddr (IPv4 )
292+ getipaddr () = getipaddr (IPAddr )
295293
296294
297295"""
Original file line number Diff line number Diff line change @@ -639,11 +639,26 @@ end
639639
640640@testset " getipaddrs" begin
641641 @test getipaddr () in getipaddrs ()
642- try
643- getipaddr (IPv6) in getipaddrs (IPv6)
644- catch
645- if ! isempty (getipaddrs (IPv6))
646- @test " getipaddr(IPv6) errored when it shouldn't have!"
642+
643+ has_ipv4 = ! isempty (getipaddrs (IPv4))
644+ if has_ipv4
645+ @test getipaddr (IPv4) in getipaddrs (IPv4)
646+ else
647+ @test_throws " No networking interface available" getipaddr (IPv4)
648+ end
649+
650+ has_ipv6 = ! isempty (getipaddrs (IPv6))
651+ if has_ipv6
652+ @test getipaddr (IPv6) in getipaddrs (IPv6)
653+ else
654+ @test_throws " No networking interface available" getipaddr (IPv6)
655+ end
656+
657+ @testset " getipaddr() prefers IPv4 over IPv6" begin
658+ if has_ipv4
659+ @test getipaddr () isa IPv4
660+ else
661+ @test getipaddr () isa IPv6
647662 end
648663 end
649664
You can’t perform that action at this time.
0 commit comments