Adam Tkac 354aa5d
diff -up netkit-rsh-0.17/rshd/rshd.c.rh448904 netkit-rsh-0.17/rshd/rshd.c
Adam Tkac 354aa5d
--- netkit-rsh-0.17/rshd/rshd.c.rh448904	2008-10-03 13:52:58.000000000 +0200
Adam Tkac 354aa5d
+++ netkit-rsh-0.17/rshd/rshd.c	2008-10-03 13:55:54.000000000 +0200
Adam Tkac 354aa5d
@@ -382,6 +382,7 @@ static int log_audit(const char *usernam
Adam Tkac 354aa5d
 			int success)
Adam Tkac 354aa5d
 {
Adam Tkac 354aa5d
 #ifdef USE_AUDIT
Adam Tkac 354aa5d
+	int err;
Adam Tkac 354aa5d
 	int audit_fd = audit_open();
Adam Tkac 354aa5d
 	if (audit_fd < 0) {
Adam Tkac 354aa5d
 		if (errno != EINVAL && errno != EPROTONOSUPPORT &&
Adam Tkac 354aa5d
@@ -391,8 +392,13 @@ static int log_audit(const char *usernam
Adam Tkac 354aa5d
 		int rc = audit_log_acct_message(audit_fd, AUDIT_USER_LOGIN,
Adam Tkac 354aa5d
 				NULL, "login", username, uid, hostname, NULL,
Adam Tkac 354aa5d
 				"rsh", success);
Adam Tkac 354aa5d
+		err = errno;
Adam Tkac 354aa5d
 		close(audit_fd);
Adam Tkac 354aa5d
-		if (rc <= 0) 
Adam Tkac 354aa5d
+		/*
Adam Tkac 354aa5d
+		 * ECONNREFUSED is returned when kernel is compiled without
Adam Tkac 354aa5d
+		 * audit support
Adam Tkac 354aa5d
+		 */
Adam Tkac 354aa5d
+		if (rc <= 0 && err != ECONNREFUSED) 
Adam Tkac 354aa5d
 			return 1;
Adam Tkac 354aa5d
 	}
Adam Tkac 354aa5d
 #endif