- ok1(io_duplex(conn, write_out, finish_ok, d));
- return io_read(d->buf, sizeof(d->buf), io_next(conn, io_close, d));
+
+ conn = io_new_conn(fd, io_read(d->buf, sizeof(d->buf), io_close, d),
+ finish_ok, d);
+ ok1(io_duplex(conn, io_write(d->wbuf, sizeof(d->wbuf), write_done, d),
+ finish_ok, d));