struct dsync_ibc ibc;
char *name, *temp_path_prefix;
- int fd_in, fd_out;
struct istream *input;
struct ostream *output;
struct io *io;
{
unsigned int i;
- ibc->io = io_add(ibc->fd_in, IO_READ, dsync_ibc_stream_input, ibc);
+ ibc->io = io_add_istream(ibc->input, dsync_ibc_stream_input, ibc);
o_stream_set_no_error_handling(ibc->output, TRUE);
o_stream_set_flush_callback(ibc->output, dsync_ibc_stream_output, ibc);
ibc->to = timeout_add(DSYNC_IBC_STREAM_TIMEOUT_MSECS,
ibc->ibc.v = dsync_ibc_stream_vfuncs;
ibc->input = input;
ibc->output = output;
- ibc->fd_in = i_stream_get_fd(input);
ibc->name = i_strdup(name);
ibc->temp_path_prefix = i_strdup(temp_path_prefix);
ibc->ret_pool = pool_alloconly_create("ibc stream data", 2048);
}
io_remove(&client->io);
- client->io = io_add(i_stream_get_fd(client->input), IO_READ,
- client_input_append, cmd);
+ client->io = io_add_istream(client->input, client_input_append, cmd);
/* append is special because we're only waiting on client input, not
client output, so disable the standard output handler until we're
finished */
}
if (client->io == NULL) {
/* input is pending */
- client->io = io_add(i_stream_get_fd(client->input),
- IO_READ, idle_client_input, ctx);
+ client->io = io_add_istream(client->input,
+ idle_client_input, ctx);
idle_client_input_more(ctx);
}
return FALSE;
client_send_line(client, "+ idling");
io_remove(&client->io);
- client->io = io_add(i_stream_get_fd(client->input),
- IO_READ, idle_client_input, ctx);
+ client->io = io_add_istream(client->input, idle_client_input, ctx);
cmd->func = cmd_idle_continue;
cmd->context = ctx;
o_stream_set_flush_callback(client->output, client_output, client);
p_array_init(&client->module_contexts, client->pool, 5);
- client->io = io_add(fd_in, IO_READ, client_input, client);
+ client->io = io_add_istream(client->input, client_input, client);
client->last_input = ioloop_time;
client->to_idle = timeout_add(CLIENT_IDLE_TIMEOUT_MSECS,
client_idle_timeout, client);
static void client_add_missing_io(struct client *client)
{
- if (client->io == NULL && !client->disconnected) {
- client->io = io_add(client->fd_in,
- IO_READ, client_input, client);
- }
+ if (client->io == NULL && !client->disconnected)
+ client->io = io_add_istream(client->input, client_input, client);
}
void client_command_free(struct client_command_context **_cmd)
static void http_client_payload_finished(struct http_client_connection *conn)
{
timeout_remove(&conn->to_input);
- conn->conn.io = io_add(conn->conn.fd_in, IO_READ,
- http_client_connection_input, &conn->conn);
+ conn->conn.io = io_add_istream(conn->conn.input,
+ http_client_connection_input, &conn->conn);
}
static void
i_stream_remove_destroy_callback(conn->incoming_payload,
http_client_payload_destroyed);
i_stream_unref(&conn->incoming_payload);
- conn->conn.io = io_add(conn->conn.fd_in, IO_READ,
+ conn->conn.io = io_add_istream(conn->conn.input,
http_client_connection_input,
&conn->conn);
}
o_stream_set_no_error_handling(conn->output, TRUE);
o_stream_set_name(conn->output, conn->name);
- conn->io = io_add(conn->fd_in, IO_READ, *list->v.input, conn);
+ conn->io = io_add_istream(conn->input, *list->v.input, conn);
DLLIST_PREPEND(&list->connections, conn);
list->connections_count++;
struct http_client_connection *conn = req->conn;
struct ostream *output = req->payload_output;
off_t ret;
- int fd;
i_assert(req->payload_input != NULL);
i_assert(req->payload_output != NULL);
http_client_request_debug(req, "Partially sent payload");
} else {
/* input is blocking */
- fd = i_stream_get_fd(req->payload_input);
conn->output_locked = TRUE;
- i_assert(fd >= 0);
- conn->io_req_payload = io_add
- (fd, IO_READ, http_client_request_payload_input, req);
+ conn->io_req_payload = io_add_istream(req->payload_input,
+ http_client_request_payload_input, req);
}
return ret < 0 ? -1 : 0;
}
i_info("DEBUG: REQUEST: Got payload");
i_stream_ref(response->payload);
req->payload = response->payload;
- req->io = io_add(i_stream_get_fd(response->payload), IO_READ,
- payload_input, req);
+ req->io = io_add_istream(response->payload, payload_input, req);
payload_input(req);
}
o_stream_set_flush_callback(client->output, client_output, client);
p_array_init(&client->module_contexts, client->pool, 5);
- client->io = io_add(fd_in, IO_READ, client_input, client);
+ client->io = io_add_istream(client->input, client_input, client);
client->last_input = ioloop_time;
client->to_idle = timeout_add(CLIENT_IDLE_TIMEOUT_MSECS,
client_idle_timeout, client);
if (o_stream_get_buffer_used_size(client->output) <
POP3_OUTBUF_THROTTLE_SIZE/2 && client->io == NULL) {
/* enable input again */
- client->io = io_add(i_stream_get_fd(client->input),
- IO_READ, client_input, client);
+ client->io = io_add_istream(client->input, client_input,
+ client);
}
if (client->io != NULL && client->waiting_input) {
if (!client_handle_input(client)) {