Noticed this since an ldapd ran out of memory and the error printed by the callback is just not helpful. So lets try to improve this.
I think errno is not clobbered so log_warn() should work and then also add an indication if it is read or write. -- :wq Claudio Index: conn.c =================================================================== RCS file: /cvs/src/usr.sbin/ldapd/conn.c,v retrieving revision 1.20 diff -u -p -r1.20 conn.c --- conn.c 30 Apr 2023 23:49:14 -0000 1.20 +++ conn.c 26 Jun 2023 09:07:53 -0000 @@ -242,7 +242,8 @@ conn_err(struct bufferevent *bev, short else if ((why & EVBUFFER_TIMEOUT) == EVBUFFER_TIMEOUT) log_debug("timeout on connection %d", conn->fd); else - log_warnx("error 0x%02X on connection %d", why, conn->fd); + log_warn("%s error on connection %d", + why & EVBUFFER_WRITE ? "write" : "read", conn->fd); conn_close(conn); }