static struct io_plan *init_conn(struct io_conn *conn, struct data *d) { /* Free listener so when conns close we exit io_loop */ io_close_listener(d->l); return io_duplex(conn, read_priority_init(conn, d), write_more(conn, d)); }
static struct io_plan *init_conn(struct io_conn *conn, struct data *d) { ok1(d->state == 0); d->state++; io_close_listener(d->l); memset(d->wbuf, 7, sizeof(d->wbuf)); io_set_finish(conn, finish_ok, d); return io_duplex(conn, io_read(conn, d->buf, sizeof(d->buf), r_done, d), io_write(conn, d->wbuf, sizeof(d->wbuf), w_done, d)); }
static struct io_plan *jcon_connected(struct io_conn *conn, struct lightningd_state *dstate) { struct json_connection *jcon; jcon = tal(dstate, struct json_connection); jcon->dstate = dstate; jcon->used = 0; jcon->buffer = tal_arr(jcon, char, 64); jcon->stop = false; jcon->current = NULL; jcon->log = new_log(jcon, dstate->log_record, "%sjcon fd %i:", log_prefix(dstate->base_log), io_conn_fd(conn)); list_head_init(&jcon->output); io_set_finish(conn, finish_jcon, jcon); return io_duplex(conn, io_read_partial(conn, jcon->buffer, tal_count(jcon->buffer), &jcon->len_read, read_json, jcon), write_json(conn, jcon)); }