[pacman-dev] [PATCH 5/6] dload: delete zero length downloads

Dave Reisner d at falconindy.com
Thu Aug 18 21:09:35 EDT 2011


Signed-off-by: Dave Reisner <dreisner at archlinux.org>
---
Fewer .part files left behind...

 lib/libalpm/dload.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index f03fabd..4b6ce74 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -266,6 +266,7 @@ static int curl_download_internal(struct dload_payload *payload,
 	long timecond, respcode = 0, remote_time = -1;
 	double remote_size, bytes_dl;
 	struct sigaction sig_pipe, sig_int;
+	struct stat st;
 	/* shortcut to our handle within the payload */
 	alpm_handle_t *handle = payload->handle;
 	handle->pm_errno = 0;
@@ -338,6 +339,10 @@ static int curl_download_internal(struct dload_payload *payload,
 		case CURLE_ABORTED_BY_CALLBACK:
 			goto cleanup;
 		default:
+			/* delete zero length downloads */
+			if(stat(tempfile, &st) == 0 && st.st_size == 0) {
+				payload->unlink_on_fail = 1;
+			}
 			if(!payload->errors_ok) {
 				handle->pm_errno = ALPM_ERR_LIBCURL;
 				_alpm_log(handle, ALPM_LOG_ERROR, _("failed retrieving file '%s' from %s : %s\n"),
-- 
1.7.6



More information about the pacman-dev mailing list