Hi, Especially with SSL and short data transfers, it could happen that the client closed before the connection to the server has been established. Then the relay closed immediately before transferring any data. The solution is to delay the close until the other side has an event buffer.
ok? bluhm Index: usr.sbin/relayd/relay.c =================================================================== RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/relayd/relay.c,v retrieving revision 1.138 diff -u -p -r1.138 relay.c --- usr.sbin/relayd/relay.c 20 May 2011 09:43:53 -0000 1.138 +++ usr.sbin/relayd/relay.c 1 Sep 2011 12:14:05 -0000 @@ -1892,7 +1895,8 @@ relay_error(struct bufferevent *bev, sho dst = EVBUFFER_OUTPUT(cre->dst->bev); if (EVBUFFER_LENGTH(dst)) return; - } + } else + return; relay_close(con, "done"); return;