static bool echo_write(conn_t *conn, struct buf *buf) { if (!conn_write(conn, buf->bytes, buf->used)) { free(buf); return false; } conn_next(conn, echo_close, NULL); next_close(conn, buf); return true; }
static bool echo_read(conn_t *conn, struct buf *buf) { buf->used = BUFFER_SIZE; if (!conn_read(conn, buf->bytes, &buf->used)) { free(buf); return false; } printf("%*s\n", buf->used, buf->bytes); return conn_next(conn, echo_write, buf); }