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)