static void init_conn(int fd, struct packet *pkt) { ok1(pkt->state == 0); pkt->state++; io_set_finish(io_new_conn(fd, io_read_packet(pkt, io_close_cb, pkt)), finish_ok, pkt); }
static struct io_plan *got_shard(struct io_conn *conn, struct generator *gen) { gen->solution->shard[gen->solution->shards_read++] = tal_steal(gen->solution, gen->pkt_in); if (gen->solution->shards_read != tal_count(gen->solution->shard)) return io_read_packet(conn, &gen->pkt_in, got_shard, gen); /* We've got all the shards! */ recv_block_from_generator(gen->state, gen->log, gen->solution->block, gen->solution->shard); return io_close(conn); }