Skip to content

Commit d703bce

Browse files
Fix TCP specs to accept EAI_NODATA instead of EAI_NONAME for unresolvable hostname (#16496)
TCP specs suddenly started failing because DNS resolution returns an unexpected error code. We're using lookups for `doesnotexist.example.org.` to trigger certain error states, but apparently those have changed from `EAI_NONAME` (name is unknown) to `EAI_NODATA` (name is known but has no address). Ideally, our spec suite should not depend on external factors like this. But as a quick fix, we're accepting `EAI_NODATA` as well in the affected specs.
1 parent fb3c3b4 commit d703bce

File tree

13 files changed

+15
-4
lines changed

13 files changed

+15
-4
lines changed

spec/std/socket/tcp_server_spec.cr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ describe TCPServer, tags: "network" do
9999
{% elsif flag?(:android) || flag?(:netbsd) || flag?(:openbsd) %}
100100
err.os_error.should eq(Errno.new(LibC::EAI_NODATA))
101101
{% else %}
102-
[Errno.new(LibC::EAI_NONAME), Errno.new(LibC::EAI_AGAIN)].should contain err.os_error
102+
[Errno.new(LibC::EAI_NONAME), Errno.new(LibC::EAI_NODATA), Errno.new(LibC::EAI_AGAIN)].should contain err.os_error
103103
{% end %}
104104
end
105105

@@ -113,7 +113,7 @@ describe TCPServer, tags: "network" do
113113
{% elsif flag?(:android) || flag?(:netbsd) || flag?(:openbsd) %}
114114
err.os_error.should eq(Errno.new(LibC::EAI_NODATA))
115115
{% else %}
116-
[Errno.new(LibC::EAI_NONAME), Errno.new(LibC::EAI_AGAIN)].should contain err.os_error
116+
[Errno.new(LibC::EAI_NONAME), Errno.new(LibC::EAI_NODATA), Errno.new(LibC::EAI_AGAIN)].should contain err.os_error
117117
{% end %}
118118
end
119119
end

spec/std/socket/tcp_socket_spec.cr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ describe TCPSocket, tags: "network" do
8686
{% elsif flag?(:android) || flag?(:netbsd) || flag?(:openbsd) %}
8787
err.os_error.should eq(Errno.new(LibC::EAI_NODATA))
8888
{% else %}
89-
[Errno.new(LibC::EAI_NONAME), Errno.new(LibC::EAI_AGAIN)].should contain err.os_error
89+
[Errno.new(LibC::EAI_NONAME), Errno.new(LibC::EAI_NODATA), Errno.new(LibC::EAI_AGAIN)].should contain err.os_error
9090
{% end %}
9191
end
9292

@@ -100,7 +100,7 @@ describe TCPSocket, tags: "network" do
100100
{% elsif flag?(:android) || flag?(:netbsd) || flag?(:openbsd) %}
101101
err.os_error.should eq(Errno.new(LibC::EAI_NODATA))
102102
{% else %}
103-
[Errno.new(LibC::EAI_NONAME), Errno.new(LibC::EAI_AGAIN)].should contain err.os_error
103+
[Errno.new(LibC::EAI_NONAME), Errno.new(LibC::EAI_NODATA), Errno.new(LibC::EAI_AGAIN)].should contain err.os_error
104104
{% end %}
105105
end
106106
end

src/lib_c/aarch64-darwin/c/netdb.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ lib LibC
1515
EAI_FAIL = 4
1616
EAI_FAMILY = 5
1717
EAI_MEMORY = 6
18+
EAI_NODATA = 7
1819
EAI_NONAME = 8
1920
EAI_SERVICE = 9
2021
EAI_SOCKTYPE = 10

src/lib_c/aarch64-linux-gnu/c/netdb.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ lib LibC
1313
EAI_AGAIN = -3
1414
EAI_BADFLAGS = -1
1515
EAI_FAIL = -4
16+
EAI_NODATA = -5
1617
EAI_FAMILY = -6
1718
EAI_MEMORY = -10
1819
EAI_NONAME = -2

src/lib_c/aarch64-linux-musl/c/netdb.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ lib LibC
1313
EAI_AGAIN = -3
1414
EAI_BADFLAGS = -1
1515
EAI_FAIL = -4
16+
EAI_NODATA = -5
1617
EAI_FAMILY = -6
1718
EAI_MEMORY = -10
1819
EAI_NONAME = -2

src/lib_c/arm-linux-gnueabihf/c/netdb.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ lib LibC
1313
EAI_AGAIN = -3
1414
EAI_BADFLAGS = -1
1515
EAI_FAIL = -4
16+
EAI_NODATA = -5
1617
EAI_FAMILY = -6
1718
EAI_MEMORY = -10
1819
EAI_NONAME = -2

src/lib_c/i386-linux-gnu/c/netdb.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ lib LibC
1212
AI_ADDRCONFIG = 0x0020
1313
EAI_AGAIN = -3
1414
EAI_BADFLAGS = -1
15+
EAI_NODATA = -5
1516
EAI_FAIL = -4
1617
EAI_FAMILY = -6
1718
EAI_MEMORY = -10

src/lib_c/i386-linux-musl/c/netdb.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ lib LibC
1313
EAI_AGAIN = -3
1414
EAI_BADFLAGS = -1
1515
EAI_FAIL = -4
16+
EAI_NODATA = -5
1617
EAI_FAMILY = -6
1718
EAI_MEMORY = -10
1819
EAI_NONAME = -2

src/lib_c/x86_64-darwin/c/netdb.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ lib LibC
1515
EAI_FAIL = 4
1616
EAI_FAMILY = 5
1717
EAI_MEMORY = 6
18+
EAI_NODATA = 7
1819
EAI_NONAME = 8
1920
EAI_SERVICE = 9
2021
EAI_SOCKTYPE = 10

src/lib_c/x86_64-dragonfly/c/netdb.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ lib LibC
1616
EAI_FAMILY = 5
1717
EAI_MEMORY = 6
1818
EAI_NONAME = 8
19+
EAI_NODATA = 7
1920
EAI_SERVICE = 9
2021
EAI_SOCKTYPE = 10
2122
EAI_SYSTEM = 11

0 commit comments

Comments
 (0)