summaryrefslogtreecommitdiff
path: root/src/htsback.c
diff options
context:
space:
mode:
authorXavier Roche <xroche@users.noreply.github.com>2012-03-19 13:02:50 +0000
committerXavier Roche <xroche@users.noreply.github.com>2012-03-19 13:02:50 +0000
commit1096a6b82c4110f7a15132c9a2b525899d62380c (patch)
tree253b431bc06ce806ee47aa7b7c4285da8c5503d6 /src/htsback.c
parent211c870cbaf49795e5e15b7726f5f52da7a8cf4a (diff)
httrack 3.43.12 (again)
Diffstat (limited to 'src/htsback.c')
-rw-r--r--src/htsback.c36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/htsback.c b/src/htsback.c
index 280dba0..723ad60 100644
--- a/src/htsback.c
+++ b/src/htsback.c
@@ -479,8 +479,23 @@ int back_finalize(httrackp* opt,cache_back* cache,struct_back* sback,int p) {
back[p].compressed_size=back[p].r.size;
// en mémoire -> passage sur disque
if (!back[p].r.is_write) {
+#if 1
+#ifdef _WIN32
+#undef tempnam
+#define tempnam _tempnam
+#endif
+ char *const tmp = tempnam(NULL, "httrack_temporaryGzipFile_");
+ if (tmp != NULL) {
+ strcpybuff(back[p].tmpfile_buffer, tmp);
+ free(tmp);
+ back[p].tmpfile = back[p].tmpfile_buffer;
+ } else {
+ back[p].tmpfile = NULL;
+ }
+#else
back[p].tmpfile_buffer[0]='\0';
- back[p].tmpfile=tmpnam(back[p].tmpfile_buffer);
+ back[p].tmpfile=tmpnam(back[p].tmpfile_buffer);
+#endif
if (back[p].tmpfile != NULL && back[p].tmpfile[0] != '\0') {
back[p].r.out=fopen(back[p].tmpfile,"wb");
if (back[p].r.out) {
@@ -497,7 +512,7 @@ int back_finalize(httrackp* opt,cache_back* cache,struct_back* sback,int p) {
} else {
back[p].tmpfile[0]='\0';
back[p].r.statuscode=STATUSCODE_INVALID;
- strcpybuff(back[p].r.msg,"Open error when decompressing");
+ strcpybuff(back[p].r.msg,"Open error when decompressing (can not create a temporary file)");
}
}
}
@@ -2719,8 +2734,23 @@ void back_wait(struct_back* sback,httrackp* opt,cache_back* cache,TStamp stat_ti
/* .gz are *NOT* depacked!! */
(strfield(get_ext(catbuff,back[i].url_sav),"gz") == 0)
) {
+#if 1
+#ifdef _WIN32
+#undef tempnam
+#define tempnam _tempnam
+#endif
+ char *const tmp = tempnam(NULL, "httrack_temporaryGzipFile_");
+ if (tmp != NULL) {
+ strcpybuff(back[i].tmpfile_buffer, tmp);
+ free(tmp);
+ back[i].tmpfile = back[i].tmpfile_buffer;
+ } else {
+ back[i].tmpfile = NULL;
+ }
+#else
back[i].tmpfile_buffer[0]='\0';
- back[i].tmpfile=tmpnam(back[i].tmpfile_buffer);
+ back[i].tmpfile=tmpnam(back[p].tmpfile_buffer);
+#endif
if (back[i].tmpfile != NULL && back[i].tmpfile[0]) {
if ((back[i].r.out=fopen(back[i].tmpfile,"wb")) == NULL) {
last_errno = errno;