mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
oauth: Disallow synchronous DNS in libcurl
There is concern that a blocking DNS lookup in libpq could stall a backend process (say, via FDW). Since there's currently no strong evidence that synchronous DNS is a popular option, disallow it entirely rather than warning at configure time. We can revisit if anyone complains. Per query from Andres Freund. Author: Jacob Champion <jacob.champion@enterprisedb.com> Discussion: https://postgr.es/m/p4bd7mn6dxr2zdak74abocyltpfdxif4pxqzixqpxpetjwt34h%40qc6jgfmoddvq
This commit is contained in:
@ -316,7 +316,7 @@ AC_DEFUN([PGAC_CHECK_LIBCURL],
|
||||
[Define to 1 if curl_global_init() is guaranteed to be thread-safe.])
|
||||
fi
|
||||
|
||||
# Warn if a thread-friendly DNS resolver isn't built.
|
||||
# Fail if a thread-friendly DNS resolver isn't built.
|
||||
AC_CACHE_CHECK([for curl support for asynchronous DNS], [pgac_cv__libcurl_async_dns],
|
||||
[AC_RUN_IFELSE([AC_LANG_PROGRAM([
|
||||
#include <curl/curl.h>
|
||||
@ -332,10 +332,10 @@ AC_DEFUN([PGAC_CHECK_LIBCURL],
|
||||
[pgac_cv__libcurl_async_dns=yes],
|
||||
[pgac_cv__libcurl_async_dns=no],
|
||||
[pgac_cv__libcurl_async_dns=unknown])])
|
||||
if test x"$pgac_cv__libcurl_async_dns" != xyes ; then
|
||||
AC_MSG_WARN([
|
||||
if test x"$pgac_cv__libcurl_async_dns" = xno ; then
|
||||
AC_MSG_ERROR([
|
||||
*** The installed version of libcurl does not support asynchronous DNS
|
||||
*** lookups. Connection timeouts will not be honored during DNS resolution,
|
||||
*** which may lead to hangs in client programs.])
|
||||
*** lookups. Rebuild libcurl with the AsynchDNS feature enabled in order
|
||||
*** to use it with libpq.])
|
||||
fi
|
||||
])# PGAC_CHECK_LIBCURL
|
||||
|
Reference in New Issue
Block a user