PERFORCE change 136819 for review

Christian S.J. Peron csjp at FreeBSD.org
Tue Mar 4 14:36:36 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=136819

Change 136819 by csjp at ibm01 on 2008/03/04 14:35:54

	Implement SSL for writes and reads

Affected files ...

.. //depot/projects/trustedbsd/netauditd/netauditd.c#14 edit

Differences ...

==== //depot/projects/trustedbsd/netauditd/netauditd.c#14 (text+ko) ====

@@ -291,6 +291,18 @@
 	}
 }
 
+int
+netaudit_write(struct au_cmpnt *au, u_char *buf, int len)
+{
+	int error;
+
+	if (crypto_enabled == 0)
+		return (write(au->ac_fd, buf, len));
+	error = SSL_write(au->ac_ssl, buf, len);
+	/* XXX error checking */
+	return (error);
+}
+
 void
 netaudit_oq(void)
 {
@@ -310,8 +322,7 @@
 			    au->ac_name);
 			r = q->aq_ptr;
 			s = r->ar_reclen - q->aq_remain;
-			ret = write(au->ac_fd, r->ar_rec + s,
-			    q->aq_remain);
+			ret = netaudit_write(au, r->ar_rec + s, q->aq_remain);
 			if (ret == -1) {
 				if (errno == EAGAIN)
 					break;
@@ -455,15 +466,22 @@
 	int ret, left;
 	u_int32_t hdr_remain, val, need;
 
-	ret = read(asb->sb_fd, asb->sb_buf, sizeof(asb->sb_buf));
-	if (ret == -1) {
-		if (errno != EINTR)
+	if (crypto_enabled == 0) {
+		ret = read(asb->sb_fd, asb->sb_buf, sizeof(asb->sb_buf));
+		if (ret == -1) {
+			if (errno != EINTR)
+				return (-1);
+			else
+				return (0);
+		} else if (ret == 0)
+			return (-1);
+	} else {
+		ret = SSL_read(asb->sb_ssl, asb->sb_buf,
+		    sizeof(asb->sb_buf));
+		if (ret < 0)
 			return (-1);
-		else
-			return (0);
+		/* XXX handle I/O errors */
 	}
-	else if (ret == 0)
-		return (-1);
 	left = ret;
 	bufptr = asb->sb_buf;
 	while (left > 0) {


More information about the p4-projects mailing list