svn commit: r292270 - head/usr.sbin/ypldap

Marcelo Araujo araujo at FreeBSD.org
Tue Dec 15 15:37:59 UTC 2015


Author: araujo
Date: Tue Dec 15 15:37:58 2015
New Revision: 292270
URL: https://svnweb.freebsd.org/changeset/base/292270

Log:
  EAGAIN handling for imsg_read.
  
  Approved by:	bapt (mentor)
  Obtained from:	OpenBSD
  Differential Revision:	https://reviews.freebsd.org/D4547

Modified:
  head/usr.sbin/ypldap/ldapclient.c
  head/usr.sbin/ypldap/ypldap.c
  head/usr.sbin/ypldap/ypldap_dns.c

Modified: head/usr.sbin/ypldap/ldapclient.c
==============================================================================
--- head/usr.sbin/ypldap/ldapclient.c	Tue Dec 15 15:22:33 2015	(r292269)
+++ head/usr.sbin/ypldap/ldapclient.c	Tue Dec 15 15:37:58 2015	(r292270)
@@ -172,7 +172,7 @@ client_dispatch_dns(int fd, short events
 		fatalx("unknown event");
 
 	if (events & EV_READ) {
-		if ((n = imsg_read(ibuf)) == -1)
+		if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN)
 			fatal("imsg_read error");
 		if (n == 0)
 			shut = 1;
@@ -275,7 +275,7 @@ client_dispatch_parent(int fd, short eve
 		fatalx("unknown event");
 
 	if (events & EV_READ) {
-		if ((n = imsg_read(ibuf)) == -1)
+		if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN)
 			fatal("imsg_read error");
 		if (n == 0)
 			shut = 1;
@@ -377,8 +377,10 @@ ldapclient(int pipe_main2client[2])
 	bzero(&env, sizeof(env));
 	TAILQ_INIT(&env.sc_idms);
 
-	if ((pw = getpwnam(YPLDAP_USER)) == NULL)
+	if ((pw = getpwnam(YPLDAP_USER)) == NULL) {
+        printf("ldapclient.c error\n");
 		fatal("getpwnam");
+    }
 
 	if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pipe_dns) == -1)
 		fatal("socketpair");

Modified: head/usr.sbin/ypldap/ypldap.c
==============================================================================
--- head/usr.sbin/ypldap/ypldap.c	Tue Dec 15 15:22:33 2015	(r292269)
+++ head/usr.sbin/ypldap/ypldap.c	Tue Dec 15 15:37:58 2015	(r292270)
@@ -361,7 +361,7 @@ main_dispatch_client(int fd, short event
 		fatalx("unknown event");
 
 	if (events & EV_READ) {
-		if ((n = imsg_read(ibuf)) == -1)
+		if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN)
 			fatal("imsg_read error");
 		if (n == 0)
 			shut = 1;

Modified: head/usr.sbin/ypldap/ypldap_dns.c
==============================================================================
--- head/usr.sbin/ypldap/ypldap_dns.c	Tue Dec 15 15:22:33 2015	(r292269)
+++ head/usr.sbin/ypldap/ypldap_dns.c	Tue Dec 15 15:37:58 2015	(r292270)
@@ -140,7 +140,7 @@ dns_dispatch_imsg(int fd, short events, 
 		fatalx("unknown event");
 
 	if (events & EV_READ) {
-		if ((n = imsg_read(ibuf)) == -1)
+		if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN)
 			fatal("imsg_read error");
 		if (n == 0)
 			shut = 1;


More information about the svn-src-head mailing list