changeset 17480:b67c1c9bf1a5

Use the new [io]_stream_create_fd_*autoclose() functions wherever possible.
author Timo Sirainen <tss@iki.fi>
date Fri, 13 Jun 2014 02:19:15 +0300
parents 0bcb43692d91
children 50889bc95f45
files src/auth/mech-winbind.c src/auth/userdb-passwd-file.c src/config/config-parser.c src/doveadm/doveadm-director.c src/doveadm/doveadm-dump-dbox.c src/doveadm/doveadm-log.c src/doveadm/doveadm-penalty.c src/doveadm/doveadm-replicator.c src/doveadm/doveadm-stats.c src/doveadm/doveadm-who.c src/doveadm/doveadm-zlib.c src/lib-compression/test-compression.c src/lib-imap-urlauth/imap-urlauth-connection.c src/lib-lda/smtp-client.c src/lib-master/master-instance.c src/lib-master/mountpoint-list.c src/lib-settings/settings-parser.c src/lib-settings/settings.c src/lib-storage/index/cydir/cydir-mail.c src/lib-storage/index/dbox-common/dbox-file.c src/lib-storage/index/imapc/imapc-save.c src/lib-storage/index/maildir/maildir-mail.c src/lib-storage/index/raw/raw-storage.c src/lib-storage/list/subscription-file.c src/lib/iostream-temp.c src/lib/istream-seekable.c src/plugins/fts/fts-parser-script.c src/plugins/zlib/zlib-plugin.c src/replication/replicator/replicator-queue.c src/ssl-params/main.c src/util/rawlog.c
diffstat 31 files changed, 55 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/mech-winbind.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/auth/mech-winbind.c	Fri Jun 13 02:19:15 2014 +0300
@@ -146,9 +146,9 @@
 
 	winbind->pid = pid;
 	winbind->in_pipe =
-		i_stream_create_fd(infd[0], AUTH_CLIENT_MAX_LINE_LENGTH, TRUE);
+		i_stream_create_fd_autoclose(&infd[0], AUTH_CLIENT_MAX_LINE_LENGTH);
 	winbind->out_pipe =
-		o_stream_create_fd(outfd[1], (size_t)-1, TRUE);
+		o_stream_create_fd_autoclose(&outfd[1], (size_t)-1);
 
 	if (!sigchld_handler_set) {
 		sigchld_handler_set = TRUE;
--- a/src/auth/userdb-passwd-file.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/auth/userdb-passwd-file.c	Fri Jun 13 02:19:15 2014 +0300
@@ -115,7 +115,7 @@
 		i_error("open(%s) failed: %m", ctx->path);
 		ctx->ctx.failed = TRUE;
 	} else {
-		ctx->input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+		ctx->input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	}
 	return &ctx->ctx;
 }
--- a/src/config/config-parser.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/config/config-parser.c	Fri Jun 13 02:19:15 2014 +0300
@@ -476,7 +476,7 @@
 	new_input = p_new(ctx->pool, struct input_stack, 1);
 	new_input->prev = ctx->cur_input;
 	new_input->path = p_strdup(ctx->pool, path);
-	new_input->input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	new_input->input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	i_stream_set_return_partial_line(new_input->input, TRUE);
 	ctx->cur_input = new_input;
 	return 0;
@@ -936,7 +936,7 @@
 	ctx.str = str_new(ctx.pool, 256);
 	full_line = str_new(default_pool, 512);
 	ctx.cur_input->input = fd != -1 ?
-		i_stream_create_fd(fd, (size_t)-1, TRUE) :
+		i_stream_create_fd_autoclose(&fd, (size_t)-1) :
 		i_stream_create_from_data("", 0);
 	i_stream_set_return_partial_line(ctx.cur_input->input, TRUE);
 	old_settings_init(&ctx);
--- a/src/doveadm/doveadm-director.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/doveadm/doveadm-director.c	Fri Jun 13 02:19:15 2014 +0300
@@ -53,7 +53,7 @@
 	fd = doveadm_connect(ctx->socket_path);
 	net_set_nonblock(fd, FALSE);
 
-	ctx->input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	ctx->input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	director_send(ctx, DIRECTOR_HANDSHAKE);
 
 	alarm(5);
@@ -243,7 +243,7 @@
 	fd = open(path, O_RDONLY);
 	if (fd == -1)
 		i_fatal("open(%s) failed: %m", path);
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	while ((username = i_stream_read_next_line(input)) != NULL)
 		user_list_add(username, pool, users);
 	i_stream_unref(&input);
--- a/src/doveadm/doveadm-dump-dbox.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/doveadm/doveadm-dump-dbox.c	Fri Jun 13 02:19:15 2014 +0300
@@ -200,7 +200,7 @@
 	if (fd < 0)
 		i_fatal("open(%s) failed: %m", argv[1]);
 
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	i_stream_set_name(input, argv[1]);
 	hdr_size = dump_file_hdr(input);
 	do {
--- a/src/doveadm/doveadm-log.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/doveadm/doveadm-log.c	Fri Jun 13 02:19:15 2014 +0300
@@ -153,7 +153,7 @@
 	if (fd == -1)
 		return;
 	
-	input = i_stream_create_fd(fd, 1024, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, 1024);
 	i_stream_seek(input, file->size);
 	while ((line = i_stream_read_next_line(input)) != NULL) {
 		p = strstr(line, TEST_LOG_MSG_PREFIX);
@@ -331,7 +331,7 @@
 		i_fatal("net_connect_unix(%s) failed: %m", path);
 	net_set_nonblock(fd, FALSE);
 
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	while ((line = i_stream_read_next_line(input)) != NULL) T_BEGIN {
 		args = t_strsplit_tabescaped(line);
 		if (str_array_length(args) == 4)
--- a/src/doveadm/doveadm-penalty.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/doveadm/doveadm-penalty.c	Fri Jun 13 02:19:15 2014 +0300
@@ -70,10 +70,10 @@
 
 	fd = doveadm_connect(ctx->anvil_path);
 	net_set_nonblock(fd, FALSE);
-
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
 	if (write(fd, ANVIL_CMD, strlen(ANVIL_CMD)) < 0)
 		i_fatal("write(%s) failed: %m", ctx->anvil_path);
+
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	while ((line = i_stream_read_next_line(input)) != NULL) {
 		if (*line == '\0')
 			break;
--- a/src/doveadm/doveadm-replicator.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/doveadm/doveadm-replicator.c	Fri Jun 13 02:19:15 2014 +0300
@@ -42,7 +42,7 @@
 	fd = doveadm_connect(ctx->socket_path);
 	net_set_nonblock(fd, FALSE);
 
-	ctx->input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	ctx->input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	replicator_send(ctx, REPLICATOR_HANDSHAKE);
 
 	alarm(5);
--- a/src/doveadm/doveadm-stats.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/doveadm/doveadm-stats.c	Fri Jun 13 02:19:15 2014 +0300
@@ -83,11 +83,11 @@
 
 	fd = doveadm_connect(path);
 	net_set_nonblock(fd, FALSE);
-
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
 	if (write_full(fd, cmd, strlen(cmd)) < 0)
 		i_fatal("write(%s) failed: %m", path);
 
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
+
 	/* read header */
 	args = read_next_line(input);
 	if (args == NULL)
--- a/src/doveadm/doveadm-who.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/doveadm/doveadm-who.c	Fri Jun 13 02:19:15 2014 +0300
@@ -139,10 +139,10 @@
 
 	fd = doveadm_connect(ctx->anvil_path);
 	net_set_nonblock(fd, FALSE);
-
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
 	if (write(fd, ANVIL_CMD, strlen(ANVIL_CMD)) < 0)
 		i_fatal("write(%s) failed: %m", ctx->anvil_path);
+
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	while ((line = i_stream_read_next_line(input)) != NULL) {
 		if (*line == '\0')
 			break;
--- a/src/doveadm/doveadm-zlib.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/doveadm/doveadm-zlib.c	Fri Jun 13 02:19:15 2014 +0300
@@ -52,7 +52,7 @@
 	fd = open(argv[1], O_RDONLY);
 	if (fd < 0)
 		i_fatal("open(%s) failed: %m", argv[1]);
-	input = i_stream_create_fd(fd, 1024*32, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, 1024*32);
 	while ((line = i_stream_read_next_line(input)) != NULL) {
 		/* skip tag */
 		printf("%s\r\n", line);
--- a/src/lib-compression/test-compression.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-compression/test-compression.c	Fri Jun 13 02:19:15 2014 +0300
@@ -125,7 +125,7 @@
 	sha1_init(&sha1);
 	file_output = o_stream_create_fd_file(fd_out, 0, FALSE);
 	output = handler->create_ostream(file_output, 1);
-	input = i_stream_create_fd(fd_in, IO_BLOCK_SIZE, TRUE);
+	input = i_stream_create_fd_autoclose(&fd_in, IO_BLOCK_SIZE);
 	while (i_stream_read_data(input, &data, &size, 0) > 0) {
 		sha1_loop(&sha1, data, size);
 		o_stream_nsend(output, data, size);
--- a/src/lib-imap-urlauth/imap-urlauth-connection.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-imap-urlauth/imap-urlauth-connection.c	Fri Jun 13 02:19:15 2014 +0300
@@ -607,8 +607,8 @@
 	uoff_t fd_size;
 
 	if (conn->literal_fd != -1) {
-		reply->input = i_stream_create_fd(conn->literal_fd,
-						  (size_t)-1, TRUE);
+		reply->input = i_stream_create_fd_autoclose(&conn->literal_fd,
+							    (size_t)-1);
 		if (i_stream_get_size(reply->input, TRUE, &fd_size) < 1 ||
 		    fd_size != conn->literal_size) {
 			i_stream_unref(&reply->input);
--- a/src/lib-lda/smtp-client.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-lda/smtp-client.c	Fri Jun 13 02:19:15 2014 +0300
@@ -144,7 +144,7 @@
 	}
 	i_close_fd(&fd[0]);
 
-	client->output = o_stream_create_fd(fd[1], IO_BLOCK_SIZE, TRUE);
+	client->output = o_stream_create_fd_autoclose(&fd[1], IO_BLOCK_SIZE);
 	o_stream_set_no_error_handling(client->output, TRUE);
 	client->pid = pid;
 	return client->output;
@@ -164,7 +164,7 @@
 		return o_stream_create_error(errno);
 	client->temp_path = i_strdup(path);
 	client->temp_fd = fd;
-	client->output = o_stream_create_fd(fd, IO_BLOCK_SIZE, TRUE);
+	client->output = o_stream_create_fd_autoclose(&fd, IO_BLOCK_SIZE);
 	o_stream_set_no_error_handling(client->output, TRUE);
 	return client->output;
 }
--- a/src/lib-master/master-instance.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-master/master-instance.c	Fri Jun 13 02:19:15 2014 +0300
@@ -110,7 +110,7 @@
 		i_error("open(%s) failed: %m", list->path);
 		return -1;
 	}
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	while ((line = i_stream_read_next_line(input)) != NULL) T_BEGIN {
 		if (master_instance_list_add_line(list, line) < 0)
 			i_error("Invalid line in %s: %s", list->path, line);
--- a/src/lib-master/mountpoint-list.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-master/mountpoint-list.c	Fri Jun 13 02:19:15 2014 +0300
@@ -138,7 +138,7 @@
 	}
 	if (fstat(fd, &list->load_st) < 0)
 		i_error("fstat(%s) failed: %m", list->state_path);
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	while ((line = i_stream_read_next_line(input)) != NULL) {
 		p = strchr(line, ' ');
 		if (p == NULL) {
--- a/src/lib-settings/settings-parser.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-settings/settings-parser.c	Fri Jun 13 02:19:15 2014 +0300
@@ -999,7 +999,7 @@
 		return -1;
 	}
 
-	input = i_stream_create_fd(fd, max_line_length, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, max_line_length);
 	i_stream_set_name(input, path);
 	ret = settings_parse_stream_read(ctx, input);
 	i_stream_unref(&input);
@@ -1089,7 +1089,7 @@
 	}
 	i_close_fd(&fd[1]);
 
-	input = i_stream_create_fd(fd[0], (size_t)-1, TRUE);
+	input = i_stream_create_fd_autoclose(&fd[0], (size_t)-1);
 	i_stream_set_name(input, bin_path);
 	ret = settings_parse_stream_read(ctx, input);
 	i_stream_destroy(&input);
--- a/src/lib-settings/settings.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-settings/settings.c	Fri Jun 13 02:19:15 2014 +0300
@@ -119,7 +119,7 @@
 	new_input = t_new(struct input_stack, 1);
 	new_input->prev = *inputp;
 	new_input->path = t_strdup(path);
-	new_input->input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	new_input->input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	i_stream_set_return_partial_line(new_input->input, TRUE);
 	*inputp = new_input;
 	return 0;
@@ -201,7 +201,7 @@
 
 	full_line = t_str_new(512);
 	sections = 0; root_section = 0; errormsg = NULL;
-	input->input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	input->input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	i_stream_set_return_partial_line(input->input, TRUE);
 prevfile:
 	while ((line = i_stream_read_next_line(input->input)) != NULL) {
--- a/src/lib-storage/index/cydir/cydir-mail.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-storage/index/cydir/cydir-mail.c	Fri Jun 13 02:19:15 2014 +0300
@@ -115,7 +115,7 @@
 			}
 			return -1;
 		}
-		input = i_stream_create_fd(fd, 0, TRUE);
+		input = i_stream_create_fd_autoclose(&fd, 0);
 		i_stream_set_name(input, path);
 		index_mail_set_read_buffer_size(_mail, input);
 		if (mail->mail.v.istream_opened != NULL) {
--- a/src/lib-storage/index/dbox-common/dbox-file.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-storage/index/dbox-common/dbox-file.c	Fri Jun 13 02:19:15 2014 +0300
@@ -197,7 +197,7 @@
 static int dbox_file_open_full(struct dbox_file *file, bool try_altpath,
 			       bool *notfound_r)
 {
-	int ret;
+	int ret, fd;
 
 	*notfound_r = FALSE;
 	if (file->input != NULL)
@@ -215,7 +215,10 @@
 		}
 	}
 
-	file->input = i_stream_create_fd(file->fd, DBOX_READ_BLOCK_SIZE, TRUE);
+	/* we're manually checking at dbox_file_close() if we need to close the
+	   fd or not. */
+	fd = file->fd;
+	file->input = i_stream_create_fd_autoclose(&fd, DBOX_READ_BLOCK_SIZE);
 	i_stream_set_name(file->input, file->cur_path);
 	i_stream_set_init_buffer_size(file->input, DBOX_READ_BLOCK_SIZE);
 	return dbox_file_read_header(file);
--- a/src/lib-storage/index/imapc/imapc-save.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-storage/index/imapc/imapc-save.c	Fri Jun 13 02:19:15 2014 +0300
@@ -152,9 +152,8 @@
 	imail->data.forced_no_caching = TRUE;
 
 	if (ctx->fd != -1) {
-		imail->data.stream = i_stream_create_fd(ctx->fd, 0, TRUE);
+		imail->data.stream = i_stream_create_fd_autoclose(&ctx->fd, 0);
 		imapc_mail_init_stream((struct imapc_mail *)imail, TRUE);
-		ctx->fd = -1;
 	}
 
 	ctx->save_count++;
--- a/src/lib-storage/index/maildir/maildir-mail.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-storage/index/maildir/maildir-mail.c	Fri Jun 13 02:19:15 2014 +0300
@@ -88,7 +88,7 @@
 		return NULL;
 	}
 
-	input = i_stream_create_fd(ctx.fd, 0, TRUE);
+	input = i_stream_create_fd_autoclose(&ctx.fd, 0);
 	if (input->stream_errno == EISDIR) {
 		i_stream_destroy(&input);
 		if (maildir_lose_unexpected_dir(&mbox->storage->storage,
--- a/src/lib-storage/index/raw/raw-storage.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-storage/index/raw/raw-storage.c	Fri Jun 13 02:19:15 2014 +0300
@@ -168,7 +168,7 @@
 		}
 		return -1;
 	}
-	box->input = i_stream_create_fd(fd, MAIL_READ_FULL_BLOCK_SIZE, TRUE);
+	box->input = i_stream_create_fd_autoclose(&fd, MAIL_READ_FULL_BLOCK_SIZE);
 	i_stream_set_name(box->input, path);
 	i_stream_set_init_buffer_size(box->input, MAIL_READ_FULL_BLOCK_SIZE);
 	return index_storage_mailbox_open(box, FALSE);
--- a/src/lib-storage/list/subscription-file.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib-storage/list/subscription-file.c	Fri Jun 13 02:19:15 2014 +0300
@@ -150,8 +150,7 @@
 	output = o_stream_create_fd_file(fd_out, 0, FALSE);
 	o_stream_cork(output);
 	if (fd_in != -1) {
-		input = i_stream_create_fd(fd_in, list->mailbox_name_max_length+1,
-					   TRUE);
+		input = i_stream_create_fd_autoclose(&fd_in, list->mailbox_name_max_length+1);
 		while ((line = next_line(list, path, input,
 					 &failed, FALSE)) != NULL) {
 			if (strcmp(line, name) == 0) {
@@ -225,8 +224,8 @@
 			ctx->failed = TRUE;
 		}
 	} else {
-		ctx->input = i_stream_create_fd(fd,
-					list->mailbox_name_max_length+1, TRUE);
+		ctx->input = i_stream_create_fd_autoclose(&fd,
+					list->mailbox_name_max_length+1);
 		i_stream_set_return_partial_line(ctx->input, TRUE);
 	}
 	ctx->path = i_strdup(path);
@@ -297,9 +296,8 @@
                         return NULL;
                 }
 
-		ctx->input = i_stream_create_fd(fd,
-					ctx->list->mailbox_name_max_length+1,
-					TRUE);
+		ctx->input = i_stream_create_fd_autoclose(&fd,
+					ctx->list->mailbox_name_max_length+1);
 		i_stream_set_return_partial_line(ctx->input, TRUE);
         }
         return line;
--- a/src/lib/iostream-temp.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib/iostream-temp.c	Fri Jun 13 02:19:15 2014 +0300
@@ -257,7 +257,7 @@
 		if (fd == -1)
 			input = i_stream_create_error(errno);
 		else {
-			input2 = i_stream_create_fd(fd, max_buffer_size, TRUE);
+			input2 = i_stream_create_fd_autoclose(&fd, max_buffer_size);
 			i_stream_seek(input2, abs_offset);
 			input = i_stream_create_limit(input2, size);
 			i_stream_unref(&input2);
@@ -270,11 +270,11 @@
 		/* return the original failed stream. */
 		input = tstream->dupstream;
 	} else if (tstream->fd != -1) {
-		input = i_stream_create_fd(tstream->fd, max_buffer_size, TRUE);
+		int fd = tstream->fd;
+		input = i_stream_create_fd_autoclose(&tstream->fd, max_buffer_size);
 		i_stream_set_name(input, t_strdup_printf(
 			"(Temp file fd %d in %s, %"PRIuUOFF_T" bytes)",
-			tstream->fd, tstream->temp_path_prefix, tstream->fd_size));
-		tstream->fd = -1;
+			fd, tstream->temp_path_prefix, tstream->fd_size));
 	} else {
 		input = i_stream_create_from_data(tstream->buf->data,
 						  tstream->buf->used);
--- a/src/lib/istream-seekable.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/lib/istream-seekable.c	Fri Jun 13 02:19:15 2014 +0300
@@ -104,7 +104,7 @@
 
 	sstream->fd = fd;
 	sstream->fd_input =
-		i_stream_create_fd(fd, sstream->istream.max_buffer_size, TRUE);
+		i_stream_create_fd_autoclose(&fd, sstream->istream.max_buffer_size);
 
 	/* read back the data we just had in our buffer */
 	i_stream_seek(sstream->fd_input, stream->istream.v_offset);
--- a/src/plugins/fts/fts-parser-script.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/plugins/fts/fts-parser-script.c	Fri Jun 13 02:19:15 2014 +0300
@@ -82,7 +82,7 @@
 		i_close_fd(&fd);
 		return -1;
 	}
-	input = i_stream_create_fd(fd, 1024, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, 1024);
 	while ((line = i_stream_read_next_line(input)) != NULL) {
 		/* <content-type> <extension> [<extension> ...] */
 		args = p_strsplit_spaces(user->pool, line, " ");
--- a/src/plugins/zlib/zlib-plugin.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/plugins/zlib/zlib-plugin.c	Fri Jun 13 02:19:15 2014 +0300
@@ -314,7 +314,7 @@
 			i_close_fd(&fd);
 			return 0;
 		}
-		input = i_stream_create_fd(fd, MAX_INBUF_SIZE, TRUE);
+		input = i_stream_create_fd_autoclose(&fd, MAX_INBUF_SIZE);
 		i_stream_set_name(input, box_path);
 		box->input = handler->create_istream(input, TRUE);
 		i_stream_unref(&input);
--- a/src/replication/replicator/replicator-queue.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/replication/replicator/replicator-queue.c	Fri Jun 13 02:19:15 2014 +0300
@@ -360,7 +360,7 @@
 		return -1;
 	}
 
-	input = i_stream_create_fd(fd, (size_t)-1, TRUE);
+	input = i_stream_create_fd_autoclose(&fd, (size_t)-1);
 	while ((line = i_stream_read_next_line(input)) != NULL) {
 		T_BEGIN {
 			ret = replicator_queue_import_line(queue, line);
@@ -406,7 +406,7 @@
 		i_error("creat(%s) failed: %m", path);
 		return -1;
 	}
-	output = o_stream_create_fd_file(fd, 0, TRUE);
+	output = o_stream_create_fd_file_autoclose(&fd, 0);
 	o_stream_cork(output);
 
 	str = t_str_new(128);
--- a/src/ssl-params/main.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/ssl-params/main.c	Fri Jun 13 02:19:15 2014 +0300
@@ -46,7 +46,7 @@
 {
 	struct ostream *output;
 
-	output = o_stream_create_fd(fd, (size_t)-1, TRUE);
+	output = o_stream_create_fd_autoclose(&fd, (size_t)-1);
 	if (o_stream_send(output, ssl_params->data, ssl_params->used) < 0 ||
 	    o_stream_get_buffer_used_size(output) == 0)
 		client_deinit(output);
--- a/src/util/rawlog.c	Fri Jun 13 02:18:53 2014 +0300
+++ b/src/util/rawlog.c	Fri Jun 13 02:19:15 2014 +0300
@@ -227,7 +227,7 @@
 			i_error("rawlog_open: creat(%s): %m", fname);
 			return;
 		}
-		proxy->in_output = o_stream_create_fd_file(fd, 0, TRUE);
+		proxy->in_output = o_stream_create_fd_file_autoclose(&fd, 0);
 		o_stream_cork(proxy->in_output);
 	}
 
@@ -240,7 +240,7 @@
 			o_stream_destroy(&proxy->in_output);
 			return;
 		}
-		proxy->out_output = o_stream_create_fd_file(fd, 0, TRUE);
+		proxy->out_output = o_stream_create_fd_file_autoclose(&fd, 0);
 		o_stream_cork(proxy->out_output);
 	}
 }