diff options
author | bluhm <bluhm@openbsd.org> | 2015-09-10 10:58:48 +0000 |
---|---|---|
committer | bluhm <bluhm@openbsd.org> | 2015-09-10 10:58:48 +0000 |
commit | 65c6d2364dd02138c6d0ad377a059e84703dd759 (patch) | |
tree | eb87d4b56a5d9e6ee5637887d5e3694235648dd0 | |
parent | Makde gcc handle __stack_smash_handler similarly to memcpy and memset when (diff) | |
download | wireguard-openbsd-65c6d2364dd02138c6d0ad377a059e84703dd759.tar.xz wireguard-openbsd-65c6d2364dd02138c6d0ad377a059e84703dd759.zip |
Make syslogd compile again after recent libtls changes. Adapt to
new tls_read() and tls_write() calling semantics, adapt to
TLS_WANT_POLLIN and TLS_WANT_POLLOUT renaming.
OK beck@
-rw-r--r-- | usr.sbin/syslogd/evbuffer_tls.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/usr.sbin/syslogd/evbuffer_tls.c b/usr.sbin/syslogd/evbuffer_tls.c index 4514e0c14e8..56172e43f28 100644 --- a/usr.sbin/syslogd/evbuffer_tls.c +++ b/usr.sbin/syslogd/evbuffer_tls.c @@ -1,4 +1,4 @@ -/* $OpenBSD: evbuffer_tls.c,v 1.5 2015/07/18 22:33:46 bluhm Exp $ */ +/* $OpenBSD: evbuffer_tls.c,v 1.6 2015/09/10 10:58:48 bluhm Exp $ */ /* * Copyright (c) 2002-2004 Niels Provos <provos@citi.umich.edu> @@ -95,11 +95,11 @@ buffertls_readcb(int fd, short event, void *arg) res = evtls_read(bufev->input, fd, howmuch, ctx); switch (res) { - case TLS_READ_AGAIN: + case TLS_WANT_POLLIN: event_set(&bufev->ev_read, fd, EV_READ, buffertls_readcb, buftls); goto reschedule; - case TLS_WRITE_AGAIN: + case TLS_WANT_POLLOUT: event_set(&bufev->ev_read, fd, EV_WRITE, buffertls_readcb, buftls); goto reschedule; @@ -162,11 +162,11 @@ buffertls_writecb(int fd, short event, void *arg) if (EVBUFFER_LENGTH(bufev->output) != 0) { res = evtls_write(bufev->output, fd, ctx); switch (res) { - case TLS_READ_AGAIN: + case TLS_WANT_POLLIN: event_set(&bufev->ev_write, fd, EV_READ, buffertls_writecb, buftls); goto reschedule; - case TLS_WRITE_AGAIN: + case TLS_WANT_POLLOUT: event_set(&bufev->ev_write, fd, EV_WRITE, buffertls_writecb, buftls); goto reschedule; @@ -226,11 +226,11 @@ buffertls_connectcb(int fd, short event, void *arg) res = tls_connect_socket(ctx, fd, hostname); switch (res) { - case TLS_READ_AGAIN: + case TLS_WANT_POLLIN: event_set(&bufev->ev_write, fd, EV_READ, buffertls_connectcb, buftls); goto reschedule; - case TLS_WRITE_AGAIN: + case TLS_WANT_POLLOUT: event_set(&bufev->ev_write, fd, EV_WRITE, buffertls_connectcb, buftls); goto reschedule; @@ -300,7 +300,7 @@ int evtls_read(struct evbuffer *buf, int fd, int howmuch, struct tls *ctx) { u_char *p; - size_t len, oldoff = buf->off; + size_t oldoff = buf->off; int n = EVBUFFER_MAX_READ; if (ioctl(fd, FIONREAD, &n) == -1 || n <= 0) { @@ -328,30 +328,28 @@ evtls_read(struct evbuffer *buf, int fd, int howmuch, struct tls *ctx) /* We can append new data at this point */ p = buf->buffer + buf->off; - n = tls_read(ctx, p, howmuch, &len); - if (n < 0 || len == 0) + n = tls_read(ctx, p, howmuch); + if (n <= 0) return (n); - buf->off += len; + buf->off += n; /* Tell someone about changes in this buffer */ if (buf->off != oldoff && buf->cb != NULL) (*buf->cb)(buf, oldoff, buf->off, buf->cbarg); - return (len); + return (n); } int evtls_write(struct evbuffer *buffer, int fd, struct tls *ctx) { - size_t len; int n; - n = tls_write(ctx, buffer->buffer, buffer->off, &len); - if (n < 0 || len == 0) + n = tls_write(ctx, buffer->buffer, buffer->off); + if (n <= 0) return (n); + evbuffer_drain(buffer, n); - evbuffer_drain(buffer, len); - - return (len); + return (n); } |