Skip to content

Commit

Permalink
Update partial HTTP transfers.
Browse files Browse the repository at this point in the history
Add the sanity checks discussed on the list with Nick Hengeveld in
<20050927000931.GA15615@reactrix.com>.

 * unlink of previous and rename from temp to previous can fail for
   reasons other than benign ones (missing previous and missing temp).
   Report these failures when we encounter them, to make diagnosing
   problems easier.

 * when rewinding the partially written result, make sure to
   truncate the file.

Also verify the pack after downloading by calling
verify_packfile().

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Oct 2, 2005
1 parent 49a0f24 commit 271421c
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions http-fetch.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "cache.h"
#include "commit.h"

#include "pack.h"
#include "fetch.h"

#include <curl/curl.h>
Expand Down Expand Up @@ -431,6 +431,8 @@ static int fetch_pack(struct alt_base *repo, unsigned char *sha1)
lst = &((*lst)->next);
*lst = (*lst)->next;

if (verify_pack(target, 0))
return -1;
install_packed_git(target);

return 0;
Expand All @@ -456,9 +458,13 @@ static int fetch_object(struct alt_base *repo, unsigned char *sha1)

snprintf(tmpfile, sizeof(tmpfile), "%s.temp", filename);
snprintf(prevfile, sizeof(prevfile), "%s.prev", filename);
unlink(prevfile);
rename(tmpfile, prevfile);
unlink(tmpfile);

if (unlink(prevfile) && (errno != ENOENT))
return error("Failed to unlink %s (%s)",
prevfile, strerror(errno));
if (rename(tmpfile, prevfile) && (errno != ENOENT))
return error("Failed to rename %s to %s (%s)",
tmpfile, prevfile, strerror(errno));

local = open(tmpfile, O_WRONLY | O_CREAT | O_EXCL, 0666);

Expand Down Expand Up @@ -523,6 +529,7 @@ static int fetch_object(struct alt_base *repo, unsigned char *sha1)
if (prev_posn>0) {
prev_posn = 0;
lseek(local, SEEK_SET, 0);
ftruncate(local, 0);
}
}

Expand Down

0 comments on commit 271421c

Please sign in to comment.