fix_notify.patch

application/octet-stream

Filename: fix_notify.patch
Type: application/octet-stream
Part: 0
Message: Re: NOTIFY does not work as expected

Patch

Format: unified
File+
configure 1 1
src/backend/libpq/be-secure.c 2 0
src/backend/libpq/be-secure-openssl.c 2 0
diff --git a/configure b/configure
index 8490eb7..d32a0eb 100755
--- a/configure
+++ b/configure
@@ -7195,7 +7195,7 @@ else
         echo '%%'  > conftest.l
         if $pgac_candidate -t conftest.l 2>/dev/null | grep FLEX_SCANNER >/dev/null 2>&1; then
           pgac_flex_version=`$pgac_candidate --version 2>/dev/null`
-          if echo "$pgac_flex_version" | sed 's/[.a-z]/ /g' | $AWK '{ if ($1 = 2 && $2 = 5 && $3 >= 31) exit 0; else exit 1;}'
+          if echo "$pgac_flex_version" | sed 's/[.a-z]/ /g' | $AWK '{ if ($1 = 2 && $2 > 5 ) exit 0; else exit 1;}'
           then
             pgac_cv_path_flex=$pgac_candidate
             break 2
diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c
index 3db358e..b637bb3 100644
--- a/src/backend/libpq/be-secure-openssl.c
+++ b/src/backend/libpq/be-secure-openssl.c
@@ -513,6 +513,8 @@ be_tls_read(Port *port, void *ptr, size_t len)
 	int			waitfor;
 	int			latchret;
 
+	ProcessClientReadInterrupt();  /* preserves errno */
+
 rloop:
 	errno = 0;
 	n = SSL_read(port->ssl, ptr, len);
diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c
index b90ab0e..20fd8a0 100644
--- a/src/backend/libpq/be-secure.c
+++ b/src/backend/libpq/be-secure.c
@@ -128,6 +128,8 @@ secure_read(Port *port, void *ptr, size_t len)
 {
 	ssize_t		n;
 
+	ProcessClientReadInterrupt(); /* preserves errno */
+
 retry:
 #ifdef USE_SSL
 	if (port->ssl_in_use)