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