parent
4bc23a7af0
commit
c56d9474f0
|
@ -1,30 +0,0 @@
|
|||
From cd1821cbc600ce3a55959890c47c7941ccac0d26 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Hrozek <jhrozek@redhat.com>
|
||||
Date: Sat, 5 Oct 2013 20:47:51 +0200
|
||||
Subject: [PATCH] In nslcd, log EPIPE only on debug level
|
||||
|
||||
See:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1003011
|
||||
---
|
||||
nslcd/common.h | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/nslcd/common.h b/nslcd/common.h
|
||||
index 736d7c09c9cd6d333fc4caa0a15144cc83eb9ecd..d24d7e5c69af1005b50c0b6d0f3cc02b79ce9222 100644
|
||||
--- a/nslcd/common.h
|
||||
+++ b/nslcd/common.h
|
||||
@@ -43,7 +43,10 @@
|
||||
stream */
|
||||
|
||||
#define ERROR_OUT_WRITEERROR(fp) \
|
||||
- log_log(LOG_WARNING,"error writing to client: %s",strerror(errno)); \
|
||||
+ if (errno == EPIPE) \
|
||||
+ log_log(LOG_DEBUG, "error writing to client: %s", strerror(errno)); \
|
||||
+ else \
|
||||
+ log_log(LOG_WARNING, "error writing to client: %s", strerror(errno)); \
|
||||
return -1;
|
||||
|
||||
#define ERROR_OUT_READERROR(fp) \
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
From 0dd454ac2335714d30e20afeed2259a30e57348e Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Hrozek <jhrozek@redhat.com>
|
||||
Date: Sat, 5 Oct 2013 20:55:11 +0200
|
||||
Subject: [PATCH] Use a timeout when skipping remaining result data
|
||||
|
||||
When the NSS modules closes the connection and skips any remaining
|
||||
result data, wait for up to 500 msec to read any available data.
|
||||
|
||||
See:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1003011
|
||||
---
|
||||
common/tio.c | 4 ++--
|
||||
common/tio.h | 2 +-
|
||||
nss/common.h | 8 ++++++--
|
||||
3 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/common/tio.c b/common/tio.c
|
||||
index 9aef80ca91faedad8f75e09b9070d22ed4a0878d..da84673b9174f77e6eb0e287d18b7054deae4491 100644
|
||||
--- a/common/tio.c
|
||||
+++ b/common/tio.c
|
||||
@@ -298,7 +298,7 @@ int tio_skip(TFILE *fp, size_t count)
|
||||
}
|
||||
|
||||
/* Read all available data from the stream and empty the read buffer. */
|
||||
-int tio_skipall(TFILE *fp)
|
||||
+int tio_skipall(TFILE *fp, int skiptimeout)
|
||||
{
|
||||
struct pollfd fds[1];
|
||||
int rv;
|
||||
@@ -318,7 +318,7 @@ int tio_skipall(TFILE *fp)
|
||||
/* see if any data is available */
|
||||
fds[0].fd=fp->fd;
|
||||
fds[0].events=POLLIN;
|
||||
- rv=poll(fds,1,0);
|
||||
+ rv = poll(fds, 1, skiptimeout);
|
||||
/* check the poll() result */
|
||||
if (rv==0)
|
||||
return 0; /* no file descriptor ready */
|
||||
diff --git a/common/tio.h b/common/tio.h
|
||||
index cd3f370732e4c54815187bb8012fd5a5ff8972af..2c64d7096ce0643ff56ebf009fb2950ac80d62b8 100644
|
||||
--- a/common/tio.h
|
||||
+++ b/common/tio.h
|
||||
@@ -59,7 +59,7 @@ int tio_read(TFILE *fp,void *buf,size_t count);
|
||||
int tio_skip(TFILE *fp,size_t count);
|
||||
|
||||
/* Read all available data from the stream and empty the read buffer. */
|
||||
-int tio_skipall(TFILE *fp);
|
||||
+int tio_skipall(TFILE *fp, int skiptimeout);
|
||||
|
||||
/* Write the specified buffer to the stream. */
|
||||
int tio_write(TFILE *fp,const void *buf,size_t count);
|
||||
diff --git a/nss/common.h b/nss/common.h
|
||||
index e8d8e0526499c252f69a558384ddae8504009d26..c9bd7a349b318f78dc35102f5f1cb8b47718581f 100644
|
||||
--- a/nss/common.h
|
||||
+++ b/nss/common.h
|
||||
@@ -35,6 +35,10 @@
|
||||
#include "solnss.h"
|
||||
#endif /* NSS_FLAVOUR_SOLARIS */
|
||||
|
||||
+/* skip timeout determines the maximum time to wait when closing the
|
||||
+ connection and reading whatever data that is available */
|
||||
+#define SKIP_TIMEOUT 500
|
||||
+
|
||||
/* These are macros for handling read and write problems, they are
|
||||
NSS specific due to the return code so are defined here. They
|
||||
genrally close the open file, set an error code and return with
|
||||
@@ -127,7 +131,7 @@
|
||||
/* close socket and we're done */ \
|
||||
if ((retv==NSS_STATUS_SUCCESS)||(retv==NSS_STATUS_TRYAGAIN)) \
|
||||
{ \
|
||||
- (void)tio_skipall(fp); \
|
||||
+ (void)tio_skipall(fp, SKIP_TIMEOUT); \
|
||||
(void)tio_close(fp); \
|
||||
} \
|
||||
return retv;
|
||||
@@ -203,7 +207,7 @@
|
||||
NSS_AVAILCHECK; \
|
||||
if (fp!=NULL) \
|
||||
{ \
|
||||
- (void)tio_skipall(fp); \
|
||||
+ (void)tio_skipall(fp, SKIP_TIMEOUT); \
|
||||
(void)tio_close(fp); \
|
||||
fp=NULL; \
|
||||
} \
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -38,8 +38,8 @@
|
|||
%endif
|
||||
|
||||
Name: nss-pam-ldapd
|
||||
Version: 0.8.13
|
||||
Release: 4%{?dist}
|
||||
Version: 0.8.14
|
||||
Release: 1%{?dist}
|
||||
Summary: An nsswitch module which uses directory servers
|
||||
Group: System Environment/Base
|
||||
License: LGPLv2+
|
||||
|
@ -50,9 +50,7 @@ Source2: nslcd.init
|
|||
Source3: nslcd.tmpfiles
|
||||
Source4: nslcd.service
|
||||
Patch1: nss-pam-ldapd-0.8.12-validname.patch
|
||||
Patch2: nss-pam-ldapd-0.8.12-In-nslcd-log-EPIPE-only-on-debug-level.patch
|
||||
Patch3: nss-pam-ldapd-0.8.12-uid-overflow.patch
|
||||
Patch4: nss-pam-ldapd-0.8.12-Use-a-timeout-when-skipping-remaining-result-data.patch
|
||||
Patch2: nss-pam-ldapd-0.8.12-uid-overflow.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: openldap-devel, krb5-devel
|
||||
BuildRequires: autoconf, automake
|
||||
|
@ -100,9 +98,7 @@ nsswitch module.
|
|||
%prep
|
||||
%setup -q
|
||||
%patch1 -p0 -b .validname
|
||||
%patch2 -p1 -b .epipe
|
||||
%patch3 -p1 -b .overflow
|
||||
%patch4 -p1 -b .skiptimeout
|
||||
%patch2 -p1 -b .overflow
|
||||
autoreconf -f -i
|
||||
|
||||
%build
|
||||
|
@ -338,6 +334,10 @@ exit 0
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Sat Oct 05 2013 Jakub Hrozek <jhrozek@redhat.com> 0.8.14-1
|
||||
- New upstream release 0.8.14
|
||||
- Remove upstreamed patches
|
||||
|
||||
* Sat Oct 05 2013 Jakub Hrozek <jhrozek@redhat.com> 0.8.13-4
|
||||
- Backport fixes for #1003011
|
||||
|
||||
|
|
Loading…
Reference in New Issue