changeset 5282:a8317e816609 HEAD

If o_stream_send_istream() fails with ENOSPC/EDQUOT, don't log a critical error but just give user a "not enough disk space" error.
author Timo Sirainen <tss@iki.fi>
date Sun, 11 Mar 2007 18:30:05 +0200
parents 2712ba108fba
children 8f9af66ee313
files src/lib-storage/index/maildir/maildir-save.c
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-save.c	Sun Mar 11 18:27:55 2007 +0200
+++ b/src/lib-storage/index/maildir/maildir-save.c	Sun Mar 11 18:30:05 2007 +0200
@@ -353,9 +353,14 @@
 		index_mail_cache_parse_continue(ctx->cur_dest_mail);
 
 	if (o_stream_send_istream(ctx->output, ctx->input) < 0) {
-		mail_storage_set_critical(STORAGE(ctx->mbox->storage),
-			"o_stream_send_istream(%s/%s) failed: %m",
-			ctx->tmpdir, ctx->file_last->basename);
+		if (ENOSPACE(errno)) {
+			mail_storage_set_error(STORAGE(ctx->mbox->storage),
+					       "Not enough disk space");
+		} else {
+			mail_storage_set_critical(STORAGE(ctx->mbox->storage),
+				"o_stream_send_istream(%s/%s) failed: %m",
+				ctx->tmpdir, ctx->file_last->basename);
+		}
 		ctx->failed = TRUE;
 		return -1;
 	}