Skip to content
Failed

Changes

Summary

  1. Add "tcp_send_timeout" option to set a TCP send data timeout (commit: 606a88f) (details)
  2. fix compilation without deprecated OpenSSL APIs (commit: 80cdfb3) (details)
  3. Add platform functions for reporting file errors. (commit: 6439b04) (details)
  4. Windowqs mkstemp: open() needs more permissions. (commit: 42e4cfc) (details)
  5. Add missing rr types: SVCB and HTTPS (commit: fa282a5) (details)
  6. Add missing rr types: SVCB and HTTPS (commit: 7f606ea) (details)
  7. Fix wrong extension names from merge (commit: 55be327) (details)
  8. Update components from Unbound (commit: 1184f2b) (details)
  9. Eliminate compiler warnings in tests (commit: df2997d) (details)
  10. ChangeLog update for issue #480 (commit: 7b388a1) (details)
  11. Honour the claim from documentation: When not set (the default), the system default is left alone. (commit: 624f688) (details)
  12. Changelog entry for getdns_context_set_tcp_send_timeout() contribution (commit: 45ef080) (details)
Commit 606a88f9aa5e4368fe1dcef64e41966799f9cb25 by mail
Add "tcp_send_timeout" option to set a TCP send data timeout

When using Stubby as a system DNS over TLS resolver with a Internet
connection that disconnects and reconnects from time to time there is often
a long waiting time (~20 minutes) after the connection reconnects before
DNS queries start to work again.

This is because in this particular case all the upstream TLS TCP
connections in Stubby are stuck waiting for upstream server response.
Which will never arrive since the host external IP address might have
changed and / or NAT router connection tracking entries for these TCP
connections might have been removed when the Internet connection
reconnected.

By default Linux tries to retransmit data on a TCP connection 15 times
before finally terminating it.
This takes 16 - 20 minutes, which is obviously a very long time to wait for
system DNS resolving to work again.
This is a real problem on weak mobile connections.

Thankfully, there is a "TCP_USER_TIMEOUT" per-socket option that allows
explicitly setting how long the network stack will wait in such cases.

Let's add a matching "tcp_send_timeout" option to getdns that allows
setting this option on outgoing TCP sockets.
For backward compatibility the code won't try to set it by default.

With this option set to, for example, 15 seconds Stubby recovers pretty
much instantly in such cases.

Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
(commit: 606a88f)
The file was modified src/getdns/getdns_extra.h.in (diff)
The file was modified CMakeLists.txt (diff)
The file was modified src/getdns/getdns.h.in (diff)
The file was modified src/libgetdns.symbols (diff)
The file was modified src/stub.c (diff)
The file was modified cmake/include/cmakeconfig.h.in (diff)
The file was modified src/context.h (diff)
The file was modified src/context.c (diff)
Commit 80cdfb3bd09135dd69b35805da566edd7f077682 by rosenp
fix compilation without deprecated OpenSSL APIs

Several cmake header checks were missing and added.

Added rsa.h include.

Remove ENGINE_load_dynamic. ENGINE_load_builtin_engines already does
this.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
(commit: 80cdfb3)
The file was modified CMakeLists.txt (diff)
The file was modified src/tls/val_secalgo.c (diff)
The file was modified cmake/include/cmakeconfig.h.in (diff)
The file was modified src/openssl/keyraw-internal.c (diff)
Commit 6439b0407a7a3979896b7543e89fc34a21eee7f7 by jim
Add platform functions for reporting file errors.

Windows socket error numbers are not reported using errno, but with
WSAGetLastError(). _getdns_errnostr() and friends as implemented on
Windows don't work for errors resulting from file open/close/read/write
etc.

So add a parallel set of functions specifically for file errors.
(commit: 6439b04)
The file was modified src/context.c (diff)
The file was modified src/platform.h (diff)
The file was modified src/platform.c (diff)
Commit 42e4cfc3837b3b39347c0b6ed1e15b3767e90783 by jim
Windowqs mkstemp: open() needs more permissions.

Specifically:

1. The open must be for read only or read/write - use read/write.
2. The file permission must permit read and write.
(commit: 42e4cfc)
The file was modified src/compat/mkstemp.c (diff)
Commit fa282a59ec0b44bbf0b54894eb7128f7a589cfc4 by andrzej.mialkowski
Add missing rr types: SVCB and HTTPS
(commit: fa282a5)
The file was modified src/getdns/getdns.h.in (diff)
The file was modified src/gldns/rrdef.h (diff)
Commit 7f606ea14f37097a8f2bc28492b18183df5829be by andrzej.mialkowski
Add missing rr types: SVCB and HTTPS
(commit: 7f606ea)
The file was modified src/const-info.c (diff)
Commit 55be327f690fe3f594d75c66c51c08dc98879325 by willem
Fix wrong extension names from merge
(commit: 55be327)
The file was modified CMakeLists.txt (diff)
Commit 1184f2b8ea9ed0d6969d8a05d0f9dda5907a8d3d by willem
Update components from Unbound
(commit: 1184f2b)
The file was modified src/util/orig-headers/locks.h (diff)
The file was modified src/util/rbtree.c (diff)
The file was modified src/util/locks.c (diff)
The file was modified src/util/lruhash.c (diff)
The file was modified src/util/orig-headers/val_secalgo.h (diff)
The file was modified src/tls/val_secalgo.c (diff)
The file was modified src/util/lookup3.c (diff)
Commit df2997d9b762d705d5f7add338e460686c9bd88f by willem
Eliminate compiler warnings in tests
(commit: df2997d)
The file was modified src/test/check_getdns_dict_get_names.h (diff)
The file was modified src/test/check_getdns_convert_alabel_to_ulabel.h (diff)
The file was modified src/test/check_getdns_convert_ulabel_to_alabel.h (diff)
The file was modified src/test/check_getdns_list_get_length.h (diff)
The file was modified src/test/check_getdns_common.c (diff)
The file was modified src/test/check_getdns_cancel_callback.h (diff)
The file was modified src/test/check_getdns_dict_set_bindata.h (diff)
The file was modified src/test/check_getdns_dict_get_bindata.h (diff)
Commit 7b388a157640baae20d41edc64ee312ff864c093 by willem
ChangeLog update for issue #480
(commit: 7b388a1)
The file was modified ChangeLog (diff)
Commit 624f68896767e1831ae656dbd7d4634e2ab6f342 by willem
Honour the claim from documentation: When not set (the default), the system default is left alone.
(commit: 624f688)
The file was modified src/stub.c (diff)
Commit 45ef080bad8f362f144bf15af98bfa80fa96f059 by willem
Changelog entry for getdns_context_set_tcp_send_timeout() contribution

Thanks a lot @maciejsszmigiero , this looks really valueable!
(commit: 45ef080)
The file was modified ChangeLog (diff)