- array_deep_wipe(listeners, server_delete);
- array_deep_wipe(server_pool, server_delete);
+ ev_io_stop(gl_loop, &server->io.io);
+ ev_io_set(&server->io.io, server->io.fd, EV_READ | EV_WRITE);
+ ev_io_start(gl_loop, &server->io.io);
+}
+
+void client_io_ro(client_t *server)
+{
+ ev_io_stop(gl_loop, &server->io.io);
+ ev_io_set(&server->io.io, server->io.fd, EV_READ);
+ ev_io_start(gl_loop, &server->io.io);
+}
+
+ssize_t client_read(client_t *client)
+{
+ return buffer_read(&client->ibuf, client->io.fd, -1);
+}
+
+buffer_t *client_input_buffer(client_t *client)
+{
+ return &client->ibuf;
+}
+
+buffer_t *client_output_buffer(client_t *client)
+{
+ return &client->obuf;
+}
+
+void *client_data(client_t *client)
+{
+ return client->data;