From 36ac65103bf5503e5bad1ecc7e8cb9e7643f6840 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 13 Sep 2019 17:49:31 +0100 Subject: Revert "gentoo resync : 13.09.2019" This reverts commit a1392efe64137262023d92492396ca9156d22396. --- .../files/cyrus-sasl-2.1.26-send-imap-logout.patch | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.26-send-imap-logout.patch (limited to 'dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.26-send-imap-logout.patch') diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.26-send-imap-logout.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.26-send-imap-logout.patch new file mode 100644 index 000000000000..d8b4b6efc3f8 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.26-send-imap-logout.patch @@ -0,0 +1,48 @@ +--- cyrus-sasl2.orig/saslauthd/auth_rimap.c ++++ cyrus-sasl2/saslauthd/auth_rimap.c +@@ -90,6 +90,7 @@ static struct addrinfo *ai = NULL; /* re + service we connect to. */ + #define TAG "saslauthd" /* IMAP command tag */ + #define LOGIN_CMD (TAG " LOGIN ") /* IMAP login command (with tag) */ ++#define LOGOUT_CMD (TAG " LOGOUT ") /* IMAP logout command (with tag)*/ + #define NETWORK_IO_TIMEOUT 30 /* network I/O timeout (seconds) */ + #define RESP_LEN 1000 /* size of read response buffer */ + +@@ -307,10 +308,12 @@ auth_rimap ( + int s=-1; /* socket to remote auth host */ + struct addrinfo *r; /* remote socket address info */ + struct iovec iov[5]; /* for sending LOGIN command */ ++ struct iovec iov2[2]; /* for sending LOGOUT command */ + char *qlogin; /* pointer to "quoted" login */ + char *qpass; /* pointer to "quoted" password */ + char *c; /* scratch pointer */ + int rc; /* return code scratch area */ ++ int rcl; /* return code scratch area */ + char rbuf[RESP_LEN]; /* response read buffer */ + char hbuf[NI_MAXHOST], pbuf[NI_MAXSERV]; + int saved_errno; +@@ -505,6 +508,24 @@ auth_rimap ( + } + } + } ++ ++ /* close remote imap */ ++ iov2[0].iov_base = LOGOUT_CMD; ++ iov2[0].iov_len = sizeof(LOGOUT_CMD) - 1; ++ iov2[1].iov_base = "\r\n"; ++ iov2[1].iov_len = sizeof("\r\n") - 1; ++ ++ if (flags & VERBOSE) { ++ syslog(LOG_DEBUG, "auth_rimap: sending %s%s %s", ++ LOGOUT_CMD, qlogin, qpass); ++ } ++ alarm(NETWORK_IO_TIMEOUT); ++ rcl = retry_writev(s, iov2, 2); ++ alarm(0); ++ if (rcl == -1) { ++ syslog(LOG_WARNING, "auth_rimap: writev logout: %m"); ++ } ++ + (void) close(s); /* we're done with the remote */ + if (rc == -1) { + syslog(LOG_WARNING, "auth_rimap: read (response): %m"); -- cgit v1.2.3