Skip to content

Commit ee28984

Browse files
authored
Merge pull request #99 from thekuwayama/ech_outer_extensions__8
[ech_outer_extensions] 8. improvement: example; add resolve_echconfig
2 parents faa40dc + 5fb4478 commit ee28984

4 files changed

+14
-15
lines changed

example/helper.rb

+11
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,14 @@ def parse_echconfigs_pem(pem)
9494

9595
ECHConfig.decode_vectors(b.slice(2..))
9696
end
97+
98+
def resolve_echconfig(hostname)
99+
rr = Resolv::DNS.new.getresources(
100+
hostname,
101+
Resolv::DNS::Resource::IN::HTTPS
102+
)
103+
raise "failed to resolve echconfig via #{hostname} HTTPS RR" \
104+
if rr.first.nil? || !rr.first.svc_params.keys.include?('ech')
105+
106+
rr.first.svc_params['ech'].echconfiglist.first
107+
end

example/https_client_using_ech.rb

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@
99
ech_config = if ARGV.length > 1
1010
parse_echconfigs_pem(File.open(ARGV[1]).read).first
1111
else
12-
rr = Resolv::DNS.new.getresources(
13-
uri.host,
14-
Resolv::DNS::Resource::IN::HTTPS
15-
)
16-
rr.first.svc_params['ech'].echconfiglist.first
12+
resolve_echconfig(uri.host)
1713
end
1814

1915
socket = TCPSocket.new(uri.host, uri.port)

example/https_client_using_hrr_and_ech.rb

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@
99
ech_config = if ARGV.length > 1
1010
parse_echconfigs_pem(File.open(ARGV[1]).read).first
1111
else
12-
rr = Resolv::DNS.new.getresources(
13-
uri.host,
14-
Resolv::DNS::Resource::IN::HTTPS
15-
)
16-
rr.first.svc_params['ech'].echconfiglist.first
12+
resolve_echconfig(uri.host)
1713
end
1814

1915
socket = TCPSocket.new(uri.host, uri.port)

example/https_client_using_ticket_and_ech.rb

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@
99
ech_config = if ARGV.length > 1
1010
parse_echconfigs_pem(File.open(ARGV[1]).read).first
1111
else
12-
rr = Resolv::DNS.new.getresources(
13-
uri.host,
14-
Resolv::DNS::Resource::IN::HTTPS
15-
)
16-
rr.first.svc_params['ech'].echconfiglist.first
12+
resolve_echconfig(uri.host)
1713
end
1814

1915
settings_2nd = {

0 commit comments

Comments
 (0)