summaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
authorSteve Wills <swills@FreeBSD.org>2019-05-30 01:47:53 +0000
committerSteve Wills <swills@FreeBSD.org>2019-05-30 01:47:53 +0000
commit123a7a969c5ce30fe8b3d737959e941a055aab32 (patch)
tree64e2b5d4d4421a10e5b26f62e6aba036ae526477 /mail
parentwww/py-kallithea: Update to 0.4.0 (diff)
mail/nullmailer: Fix send fail on GnuTLS
PR: 237613 Submitted by: David Hauweele <david@hauweele.net>
Notes
Notes: svn path=/head/; revision=503026
Diffstat (limited to 'mail')
-rw-r--r--mail/nullmailer/Makefile2
-rw-r--r--mail/nullmailer/files/patch-lib_fdbuf_tlsibuf.cc14
-rw-r--r--mail/nullmailer/files/patch-lib_fdbuf_tlsobuf.cc14
3 files changed, 29 insertions, 1 deletions
diff --git a/mail/nullmailer/Makefile b/mail/nullmailer/Makefile
index 70325bf6787e..e991aa769029 100644
--- a/mail/nullmailer/Makefile
+++ b/mail/nullmailer/Makefile
@@ -3,7 +3,7 @@
PORTNAME= nullmailer
PORTVERSION= 1.13
-PORTREVISION= 3
+PORTREVISION= 4
PORTEPOCH= 1
CATEGORIES= mail
MASTER_SITES= http://untroubled.org/nullmailer/ \
diff --git a/mail/nullmailer/files/patch-lib_fdbuf_tlsibuf.cc b/mail/nullmailer/files/patch-lib_fdbuf_tlsibuf.cc
new file mode 100644
index 000000000000..bfcf9bf8802b
--- /dev/null
+++ b/mail/nullmailer/files/patch-lib_fdbuf_tlsibuf.cc
@@ -0,0 +1,14 @@
+--- lib/fdbuf/tlsibuf.cc.orig
++++ lib/fdbuf/tlsibuf.cc
+@@ -27,5 +27,10 @@
+
+ ssize_t tlsibuf::_read(char* buf, ssize_t len)
+ {
+- return gnutls_record_recv(session, buf, len);
++ ssize_t rc;
++ do
++ {
++ rc = gnutls_record_recv(session, buf, len);
++ } while (rc == GNUTLS_E_AGAIN || rc == GNUTLS_E_INTERRUPTED);
++ return rc;
+ }
diff --git a/mail/nullmailer/files/patch-lib_fdbuf_tlsobuf.cc b/mail/nullmailer/files/patch-lib_fdbuf_tlsobuf.cc
new file mode 100644
index 000000000000..2d5a2253caae
--- /dev/null
+++ b/mail/nullmailer/files/patch-lib_fdbuf_tlsobuf.cc
@@ -0,0 +1,14 @@
+--- lib/fdbuf/tlsobuf.cc.orig
++++ lib/fdbuf/tlsobuf.cc
+@@ -27,5 +27,10 @@
+
+ ssize_t tlsobuf::_write(const char* buf, ssize_t len)
+ {
+- return gnutls_record_send(session, buf, len);
++ ssize_t rc;
++ do
++ {
++ rc = gnutls_record_send(session, buf, len);
++ } while(rc == GNUTLS_E_AGAIN || rc == GNUTLS_E_INTERRUPTED);
++ return rc;
+ }