aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/libpq/fe-auth-oauth-curl.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/interfaces/libpq/fe-auth-oauth-curl.c b/src/interfaces/libpq/fe-auth-oauth-curl.c
index ae339579f88..6e60a81574d 100644
--- a/src/interfaces/libpq/fe-auth-oauth-curl.c
+++ b/src/interfaces/libpq/fe-auth-oauth-curl.c
@@ -1363,6 +1363,16 @@ set_timer(struct async_ctx *actx, long timeout)
#ifdef HAVE_SYS_EVENT_H
struct kevent ev;
+#ifdef __NetBSD__
+
+ /*
+ * Work around NetBSD's rejection of zero timeouts (EINVAL), a bit like
+ * timerfd above.
+ */
+ if (timeout == 0)
+ timeout = 1;
+#endif
+
/* Enable/disable the timer itself. */
EV_SET(&ev, 1, EVFILT_TIMER, timeout < 0 ? EV_DELETE : (EV_ADD | EV_ONESHOT),
0, timeout, 0);