basebuilder_pel7x64builder0
6 years ago
24 changed files with 2303 additions and 0 deletions
@ -0,0 +1,151 @@
@@ -0,0 +1,151 @@
|
||||
From 043366ac3248a58662a6fbf47a1dd688a75d0e78 Mon Sep 17 00:00:00 2001 |
||||
From: Darshit Shah <darnir@gmail.com> |
||||
Date: Mon, 8 Sep 2014 00:41:17 +0530 |
||||
Subject: [PATCH 1/2] Fix R7-2014-15: Arbitrary Symlink Access |
||||
|
||||
Wget was susceptible to a symlink attack which could create arbitrary |
||||
files, directories or symbolic links and set their permissions when |
||||
retrieving a directory recursively through FTP. This commit changes the |
||||
default settings in Wget such that Wget no longer creates local symbolic |
||||
links, but rather traverses them and retrieves the pointed-to file in |
||||
such a retrieval. |
||||
|
||||
The old behaviour can be attained by passing the --retr-symlinks=no |
||||
option to the Wget invokation command. |
||||
--- |
||||
doc/wget.texi | 23 ++++++++++++----------- |
||||
src/init.c | 16 ++++++++++++++++ |
||||
2 files changed, 28 insertions(+), 11 deletions(-) |
||||
|
||||
diff --git a/doc/wget.texi b/doc/wget.texi |
||||
index a31eb5e..f54e98d 100644 |
||||
--- a/doc/wget.texi |
||||
+++ b/doc/wget.texi |
||||
@@ -1883,17 +1883,18 @@ Preserve remote file permissions instead of permissions set by umask. |
||||
|
||||
@cindex symbolic links, retrieving |
||||
@item --retr-symlinks |
||||
-Usually, when retrieving @sc{ftp} directories recursively and a symbolic |
||||
-link is encountered, the linked-to file is not downloaded. Instead, a |
||||
-matching symbolic link is created on the local filesystem. The |
||||
-pointed-to file will not be downloaded unless this recursive retrieval |
||||
-would have encountered it separately and downloaded it anyway. |
||||
- |
||||
-When @samp{--retr-symlinks} is specified, however, symbolic links are |
||||
-traversed and the pointed-to files are retrieved. At this time, this |
||||
-option does not cause Wget to traverse symlinks to directories and |
||||
-recurse through them, but in the future it should be enhanced to do |
||||
-this. |
||||
+By default, when retrieving @sc{ftp} directories recursively and a symbolic link |
||||
+is encountered, the symbolic link is traversed and the pointed-to files are |
||||
+retrieved. Currently, Wget does not traverse symbolic links to directories to |
||||
+download them recursively, though this feature may be added in the future. |
||||
+ |
||||
+When @samp{--retr-symlinks=no} is specified, the linked-to file is not |
||||
+downloaded. Instead, a matching symbolic link is created on the local |
||||
+filesystem. The pointed-to file will not be retrieved unless this recursive |
||||
+retrieval would have encountered it separately and downloaded it anyway. This |
||||
+option poses a security risk where a malicious FTP Server may cause Wget to |
||||
+write to files outside of the intended directories through a specially crafted |
||||
+@sc{.listing} file. |
||||
|
||||
Note that when retrieving a file (not a directory) because it was |
||||
specified on the command-line, rather than because it was recursed to, |
||||
diff --git a/src/init.c b/src/init.c |
||||
index 93e95f8..94b6f8b 100644 |
||||
--- a/src/init.c |
||||
+++ b/src/init.c |
||||
@@ -366,6 +366,22 @@ defaults (void) |
||||
|
||||
opt.dns_cache = true; |
||||
opt.ftp_pasv = true; |
||||
+ /* 2014-09-07 Darshit Shah <darnir@gmail.com> |
||||
+ * opt.retr_symlinks is set to true by default. Creating symbolic links on the |
||||
+ * local filesystem pose a security threat by malicious FTP Servers that |
||||
+ * server a specially crafted .listing file akin to this: |
||||
+ * |
||||
+ * lrwxrwxrwx 1 root root 33 Dec 25 2012 JoCxl6d8rFU -> / |
||||
+ * drwxrwxr-x 15 1024 106 4096 Aug 28 02:02 JoCxl6d8rFU |
||||
+ * |
||||
+ * A .listing file in this fashion makes Wget susceptiple to a symlink attack |
||||
+ * wherein the attacker is able to create arbitrary files, directories and |
||||
+ * symbolic links on the target system and even set permissions. |
||||
+ * |
||||
+ * Hence, by default Wget attempts to retrieve the pointed-to files and does |
||||
+ * not create the symbolic links locally. |
||||
+ */ |
||||
+ opt.retr_symlinks = true; |
||||
|
||||
#ifdef HAVE_SSL |
||||
opt.check_cert = true; |
||||
-- |
||||
2.1.0 |
||||
|
||||
From bfa8c9cc9937f686a4de110e49710061267f8d9e Mon Sep 17 00:00:00 2001 |
||||
From: Darshit Shah <darnir@gmail.com> |
||||
Date: Mon, 8 Sep 2014 15:07:45 +0530 |
||||
Subject: [PATCH 2/2] Add checks for valid listing file in FTP |
||||
|
||||
When Wget retrieves a file through FTP, it first downloads a .listing |
||||
file and parses it for information about the files and other metadata. |
||||
Some servers may serve invalid .listing files. This patch checks for one |
||||
such known inconsistency wherein multiple lines in a listing file have |
||||
the same name. Such a filesystem is clearly not possible and hence we |
||||
eliminate duplicate entries here. |
||||
|
||||
Signed-off-by: Darshit Shah <darnir@gmail.com> |
||||
--- |
||||
src/ftp.c | 27 +++++++++++++++++++++++++-- |
||||
1 file changed, 25 insertions(+), 2 deletions(-) |
||||
|
||||
diff --git a/src/ftp.c b/src/ftp.c |
||||
index 2d54333..054cb61 100644 |
||||
--- a/src/ftp.c |
||||
+++ b/src/ftp.c |
||||
@@ -2211,6 +2211,29 @@ has_insecure_name_p (const char *s) |
||||
return false; |
||||
} |
||||
|
||||
+/* Test if the file node is invalid. This can occur due to malformed or |
||||
+ * maliciously crafted listing files being returned by the server. |
||||
+ * |
||||
+ * Currently, this function only tests if there are multiple entries in the |
||||
+ * listing file by the same name. However this function can be expanded as more |
||||
+ * such illegal listing formats are discovered. */ |
||||
+static bool |
||||
+is_invalid_entry (struct fileinfo *f) |
||||
+{ |
||||
+ struct fileinfo *cur; |
||||
+ cur = f; |
||||
+ char *f_name = f->name; |
||||
+ /* If the node we're currently checking has a duplicate later, we eliminate |
||||
+ * the current node and leave the next one intact. */ |
||||
+ while (cur->next) |
||||
+ { |
||||
+ cur = cur->next; |
||||
+ if (strcmp(f_name, cur->name) == 0) |
||||
+ return true; |
||||
+ } |
||||
+ return false; |
||||
+} |
||||
+ |
||||
/* A near-top-level function to retrieve the files in a directory. |
||||
The function calls ftp_get_listing, to get a linked list of files. |
||||
Then it weeds out the file names that do not match the pattern. |
||||
@@ -2248,11 +2271,11 @@ ftp_retrieve_glob (struct url *u, ccon *con, int action) |
||||
f = f->next; |
||||
} |
||||
} |
||||
- /* Remove all files with possible harmful names */ |
||||
+ /* Remove all files with possible harmful names or invalid entries. */ |
||||
f = start; |
||||
while (f) |
||||
{ |
||||
- if (has_insecure_name_p (f->name)) |
||||
+ if (has_insecure_name_p (f->name) || is_invalid_entry (f)) |
||||
{ |
||||
logprintf (LOG_VERBOSE, _("Rejecting %s.\n"), |
||||
quote (f->name)); |
||||
-- |
||||
2.1.0 |
||||
|
@ -0,0 +1,261 @@
@@ -0,0 +1,261 @@
|
||||
diff --git a/src/ftp.c b/src/ftp.c |
||||
index 2be2c76..345718f 100644 |
||||
--- a/src/ftp.c |
||||
+++ b/src/ftp.c |
||||
@@ -234,14 +234,15 @@ print_length (wgint size, wgint start, bool authoritative) |
||||
logputs (LOG_VERBOSE, !authoritative ? _(" (unauthoritative)\n") : "\n"); |
||||
} |
||||
|
||||
-static uerr_t ftp_get_listing (struct url *, ccon *, struct fileinfo **); |
||||
+static uerr_t ftp_get_listing (struct url *, struct url *, ccon *, struct fileinfo **); |
||||
|
||||
/* Retrieves a file with denoted parameters through opening an FTP |
||||
connection to the server. It always closes the data connection, |
||||
and closes the control connection in case of error. If warc_tmp |
||||
is non-NULL, the downloaded data will be written there as well. */ |
||||
static uerr_t |
||||
-getftp (struct url *u, wgint passed_expected_bytes, wgint *qtyread, |
||||
+getftp (struct url *u, struct url *original_url, |
||||
+ wgint passed_expected_bytes, wgint *qtyread, |
||||
wgint restval, ccon *con, int count, FILE *warc_tmp) |
||||
{ |
||||
int csock, dtsock, local_sock, res; |
||||
@@ -944,7 +945,7 @@ Error in server response, closing control connection.\n")); |
||||
bool exists = false; |
||||
uerr_t res; |
||||
struct fileinfo *f; |
||||
- res = ftp_get_listing (u, con, &f); |
||||
+ res = ftp_get_listing (u, original_url, con, &f); |
||||
/* Set the DO_RETR command flag again, because it gets unset when |
||||
calling ftp_get_listing() and would otherwise cause an assertion |
||||
failure earlier on when this function gets repeatedly called |
||||
@@ -1392,7 +1393,8 @@ Error in server response, closing control connection.\n")); |
||||
This loop either gets commands from con, or (if ON_YOUR_OWN is |
||||
set), makes them up to retrieve the file given by the URL. */ |
||||
static uerr_t |
||||
-ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con, char **local_file) |
||||
+ftp_loop_internal (struct url *u, struct url *original_url, struct fileinfo *f, |
||||
+ ccon *con, char **local_file) |
||||
{ |
||||
int count, orig_lp; |
||||
wgint restval, len = 0, qtyread = 0; |
||||
@@ -1415,7 +1417,7 @@ ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con, char **local_fi |
||||
else |
||||
{ |
||||
/* URL-derived file. Consider "-O file" name. */ |
||||
- con->target = url_file_name (u, NULL); |
||||
+ con->target = url_file_name (opt.trustservernames || !original_url ? u : original_url, NULL); |
||||
if (!opt.output_document) |
||||
locf = con->target; |
||||
else |
||||
@@ -1524,7 +1526,7 @@ ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con, char **local_fi |
||||
|
||||
/* If we are working on a WARC record, getftp should also write |
||||
to the warc_tmp file. */ |
||||
- err = getftp (u, len, &qtyread, restval, con, count, warc_tmp); |
||||
+ err = getftp (u, original_url, len, &qtyread, restval, con, count, warc_tmp); |
||||
|
||||
if (con->csock == -1) |
||||
con->st &= ~DONE_CWD; |
||||
@@ -1677,7 +1679,8 @@ Removing file due to --delete-after in ftp_loop_internal():\n")); |
||||
/* Return the directory listing in a reusable format. The directory |
||||
is specifed in u->dir. */ |
||||
static uerr_t |
||||
-ftp_get_listing (struct url *u, ccon *con, struct fileinfo **f) |
||||
+ftp_get_listing (struct url *u, struct url *original_url, ccon *con, |
||||
+ struct fileinfo **f) |
||||
{ |
||||
uerr_t err; |
||||
char *uf; /* url file name */ |
||||
@@ -1698,7 +1701,7 @@ ftp_get_listing (struct url *u, ccon *con, struct fileinfo **f) |
||||
|
||||
con->target = xstrdup (lf); |
||||
xfree (lf); |
||||
- err = ftp_loop_internal (u, NULL, con, NULL); |
||||
+ err = ftp_loop_internal (u, original_url, NULL, con, NULL); |
||||
lf = xstrdup (con->target); |
||||
xfree (con->target); |
||||
con->target = old_target; |
||||
@@ -1721,8 +1724,9 @@ ftp_get_listing (struct url *u, ccon *con, struct fileinfo **f) |
||||
return err; |
||||
} |
||||
|
||||
-static uerr_t ftp_retrieve_dirs (struct url *, struct fileinfo *, ccon *); |
||||
-static uerr_t ftp_retrieve_glob (struct url *, ccon *, int); |
||||
+static uerr_t ftp_retrieve_dirs (struct url *, struct url *, |
||||
+ struct fileinfo *, ccon *); |
||||
+static uerr_t ftp_retrieve_glob (struct url *, struct url *, ccon *, int); |
||||
static struct fileinfo *delelement (struct fileinfo *, struct fileinfo **); |
||||
static void freefileinfo (struct fileinfo *f); |
||||
|
||||
@@ -1734,7 +1738,8 @@ static void freefileinfo (struct fileinfo *f); |
||||
If opt.recursive is set, after all files have been retrieved, |
||||
ftp_retrieve_dirs will be called to retrieve the directories. */ |
||||
static uerr_t |
||||
-ftp_retrieve_list (struct url *u, struct fileinfo *f, ccon *con) |
||||
+ftp_retrieve_list (struct url *u, struct url *original_url, |
||||
+ struct fileinfo *f, ccon *con) |
||||
{ |
||||
static int depth = 0; |
||||
uerr_t err; |
||||
@@ -1893,7 +1898,9 @@ Already have correct symlink %s -> %s\n\n"), |
||||
else /* opt.retr_symlinks */ |
||||
{ |
||||
if (dlthis) |
||||
- err = ftp_loop_internal (u, f, con, NULL); |
||||
+ { |
||||
+ err = ftp_loop_internal (u, original_url, f, con, NULL); |
||||
+ } |
||||
} /* opt.retr_symlinks */ |
||||
break; |
||||
case FT_DIRECTORY: |
||||
@@ -1904,7 +1911,9 @@ Already have correct symlink %s -> %s\n\n"), |
||||
case FT_PLAINFILE: |
||||
/* Call the retrieve loop. */ |
||||
if (dlthis) |
||||
- err = ftp_loop_internal (u, f, con, NULL); |
||||
+ { |
||||
+ err = ftp_loop_internal (u, original_url, f, con, NULL); |
||||
+ } |
||||
break; |
||||
case FT_UNKNOWN: |
||||
logprintf (LOG_NOTQUIET, _("%s: unknown/unsupported file type.\n"), |
||||
@@ -1969,7 +1978,7 @@ Already have correct symlink %s -> %s\n\n"), |
||||
/* We do not want to call ftp_retrieve_dirs here */ |
||||
if (opt.recursive && |
||||
!(opt.reclevel != INFINITE_RECURSION && depth >= opt.reclevel)) |
||||
- err = ftp_retrieve_dirs (u, orig, con); |
||||
+ err = ftp_retrieve_dirs (u, original_url, orig, con); |
||||
else if (opt.recursive) |
||||
DEBUGP ((_("Will not retrieve dirs since depth is %d (max %d).\n"), |
||||
depth, opt.reclevel)); |
||||
@@ -1982,7 +1991,8 @@ Already have correct symlink %s -> %s\n\n"), |
||||
ftp_retrieve_glob on each directory entry. The function knows |
||||
about excluded directories. */ |
||||
static uerr_t |
||||
-ftp_retrieve_dirs (struct url *u, struct fileinfo *f, ccon *con) |
||||
+ftp_retrieve_dirs (struct url *u, struct url *original_url, |
||||
+ struct fileinfo *f, ccon *con) |
||||
{ |
||||
char *container = NULL; |
||||
int container_size = 0; |
||||
@@ -2032,7 +2042,7 @@ Not descending to %s as it is excluded/not-included.\n"), |
||||
odir = xstrdup (u->dir); /* because url_set_dir will free |
||||
u->dir. */ |
||||
url_set_dir (u, newdir); |
||||
- ftp_retrieve_glob (u, con, GLOB_GETALL); |
||||
+ ftp_retrieve_glob (u, original_url, con, GLOB_GETALL); |
||||
url_set_dir (u, odir); |
||||
xfree (odir); |
||||
|
||||
@@ -2091,14 +2101,15 @@ is_invalid_entry (struct fileinfo *f) |
||||
GLOB_GLOBALL, use globbing; if it's GLOB_GETALL, download the whole |
||||
directory. */ |
||||
static uerr_t |
||||
-ftp_retrieve_glob (struct url *u, ccon *con, int action) |
||||
+ftp_retrieve_glob (struct url *u, struct url *original_url, |
||||
+ ccon *con, int action) |
||||
{ |
||||
struct fileinfo *f, *start; |
||||
uerr_t res; |
||||
|
||||
con->cmd |= LEAVE_PENDING; |
||||
|
||||
- res = ftp_get_listing (u, con, &start); |
||||
+ res = ftp_get_listing (u, original_url, con, &start); |
||||
if (res != RETROK) |
||||
return res; |
||||
/* First: weed out that do not conform the global rules given in |
||||
@@ -2194,7 +2205,7 @@ ftp_retrieve_glob (struct url *u, ccon *con, int action) |
||||
if (start) |
||||
{ |
||||
/* Just get everything. */ |
||||
- res = ftp_retrieve_list (u, start, con); |
||||
+ res = ftp_retrieve_list (u, original_url, start, con); |
||||
} |
||||
else |
||||
{ |
||||
@@ -2210,7 +2221,7 @@ ftp_retrieve_glob (struct url *u, ccon *con, int action) |
||||
{ |
||||
/* Let's try retrieving it anyway. */ |
||||
con->st |= ON_YOUR_OWN; |
||||
- res = ftp_loop_internal (u, NULL, con, NULL); |
||||
+ res = ftp_loop_internal (u, original_url, NULL, con, NULL); |
||||
return res; |
||||
} |
||||
|
||||
@@ -2230,8 +2241,8 @@ ftp_retrieve_glob (struct url *u, ccon *con, int action) |
||||
of URL. Inherently, its capabilities are limited on what can be |
||||
encoded into a URL. */ |
||||
uerr_t |
||||
-ftp_loop (struct url *u, char **local_file, int *dt, struct url *proxy, |
||||
- bool recursive, bool glob) |
||||
+ftp_loop (struct url *u, struct url *original_url, char **local_file, int *dt, |
||||
+ struct url *proxy, bool recursive, bool glob) |
||||
{ |
||||
ccon con; /* FTP connection */ |
||||
uerr_t res; |
||||
@@ -2252,16 +2263,17 @@ ftp_loop (struct url *u, char **local_file, int *dt, struct url *proxy, |
||||
if (!*u->file && !recursive) |
||||
{ |
||||
struct fileinfo *f; |
||||
- res = ftp_get_listing (u, &con, &f); |
||||
+ res = ftp_get_listing (u, original_url, &con, &f); |
||||
|
||||
if (res == RETROK) |
||||
{ |
||||
if (opt.htmlify && !opt.spider) |
||||
{ |
||||
+ struct url *url_file = opt.trustservernames ? u : original_url; |
||||
char *filename = (opt.output_document |
||||
? xstrdup (opt.output_document) |
||||
: (con.target ? xstrdup (con.target) |
||||
- : url_file_name (u, NULL))); |
||||
+ : url_file_name (url_file, NULL))); |
||||
res = ftp_index (filename, u, f); |
||||
if (res == FTPOK && opt.verbose) |
||||
{ |
||||
@@ -2306,11 +2318,13 @@ ftp_loop (struct url *u, char **local_file, int *dt, struct url *proxy, |
||||
/* ftp_retrieve_glob is a catch-all function that gets called |
||||
if we need globbing, time-stamping, recursion or preserve |
||||
permissions. Its third argument is just what we really need. */ |
||||
- res = ftp_retrieve_glob (u, &con, |
||||
+ res = ftp_retrieve_glob (u, original_url, &con, |
||||
ispattern ? GLOB_GLOBALL : GLOB_GETONE); |
||||
} |
||||
else |
||||
- res = ftp_loop_internal (u, NULL, &con, local_file); |
||||
+ { |
||||
+ res = ftp_loop_internal (u, original_url, NULL, &con, local_file); |
||||
+ } |
||||
} |
||||
if (res == FTPOK) |
||||
res = RETROK; |
||||
diff --git a/src/ftp.h b/src/ftp.h |
||||
index be00d88..2abc9c0 100644 |
||||
--- a/src/ftp.h |
||||
+++ b/src/ftp.h |
||||
@@ -129,7 +129,8 @@ enum wget_ftp_fstatus |
||||
}; |
||||
|
||||
struct fileinfo *ftp_parse_ls (const char *, const enum stype); |
||||
-uerr_t ftp_loop (struct url *, char **, int *, struct url *, bool, bool); |
||||
+uerr_t ftp_loop (struct url *, struct url *, char **, int *, struct url *, |
||||
+ bool, bool); |
||||
|
||||
uerr_t ftp_index (const char *, struct url *, struct fileinfo *); |
||||
|
||||
diff --git a/src/retr.c b/src/retr.c |
||||
index 66624dc..21fad56 100644 |
||||
--- a/src/retr.c |
||||
+++ b/src/retr.c |
||||
@@ -794,7 +794,8 @@ retrieve_url (struct url * orig_parsed, const char *origurl, char **file, |
||||
if (redirection_count) |
||||
oldrec = glob = false; |
||||
|
||||
- result = ftp_loop (u, &local_file, dt, proxy_url, recursive, glob); |
||||
+ result = ftp_loop (u, orig_parsed, &local_file, dt, proxy_url, |
||||
+ recursive, glob); |
||||
recursive = oldrec; |
||||
|
||||
/* There is a possibility of having HTTP being redirected to |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
@@ -, +, @@ |
||||
(CVE-2017-13089) |
||||
--- |
||||
src/http.c | 3 +++ |
||||
1 file changed, 3 insertions(+) |
||||
--- a/src/http.c |
||||
+++ a/src/http.c |
||||
@@ -973,6 +973,9 @@ skip_short_body (int fd, wgint contlen, bool chunked) |
||||
remaining_chunk_size = strtol (line, &endl, 16); |
||||
xfree (line); |
||||
|
||||
+ if (remaining_chunk_size < 0) |
||||
+ return false; |
||||
+ |
||||
if (remaining_chunk_size == 0) |
||||
{ |
||||
line = fd_read_line (fd); |
||||
-- |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
@@ -, +, @@ |
||||
(CVE-2017-13090) |
||||
--- |
||||
src/retr.c | 6 ++++++ |
||||
1 file changed, 6 insertions(+) |
||||
--- a/src/retr.c |
||||
+++ a/src/retr.c |
||||
@@ -378,6 +378,12 @@ fd_read_body (const char *downloaded_filename, int fd, FILE *out, wgint toread, |
||||
remaining_chunk_size = strtol (line, &endl, 16); |
||||
xfree (line); |
||||
|
||||
+ if (remaining_chunk_size < 0) |
||||
+ { |
||||
+ ret = -1; |
||||
+ break; |
||||
+ } |
||||
+ |
||||
if (remaining_chunk_size == 0) |
||||
{ |
||||
ret = 0; |
||||
-- |
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
diff --git a/src/http.c b/src/http.c |
||||
index b45c404..aa4fd25 100644 |
||||
--- a/src/http.c |
||||
+++ b/src/http.c |
||||
@@ -605,9 +605,9 @@ struct response { |
||||
resp_header_*. */ |
||||
|
||||
static struct response * |
||||
-resp_new (const char *head) |
||||
+resp_new (char *head) |
||||
{ |
||||
- const char *hdr; |
||||
+ char *hdr; |
||||
int count, size; |
||||
|
||||
struct response *resp = xnew0 (struct response); |
||||
@@ -636,15 +636,23 @@ resp_new (const char *head) |
||||
break; |
||||
|
||||
/* Find the end of HDR, including continuations. */ |
||||
- do |
||||
+ for (;;) |
||||
{ |
||||
- const char *end = strchr (hdr, '\n'); |
||||
+ char *end = strchr (hdr, '\n'); |
||||
+ |
||||
if (end) |
||||
hdr = end + 1; |
||||
else |
||||
hdr += strlen (hdr); |
||||
+ |
||||
+ if (*hdr != ' ' && *hdr != '\t') |
||||
+ break; |
||||
+ |
||||
+ // continuation, transform \r and \n into spaces |
||||
+ *end = ' '; |
||||
+ if (end > head && end[-1] == '\r') |
||||
+ end[-1] = ' '; |
||||
} |
||||
- while (*hdr == ' ' || *hdr == '\t'); |
||||
} |
||||
DO_REALLOC (resp->headers, size, count + 1, const char *); |
||||
resp->headers[count] = NULL; |
@ -0,0 +1,47 @@
@@ -0,0 +1,47 @@
|
||||
From 613d8639c48b950f76d132b70d27e518ba6d6891 Mon Sep 17 00:00:00 2001 |
||||
From: Tomas Hozza <thozza@redhat.com> |
||||
Date: Fri, 26 Apr 2013 14:42:30 +0200 |
||||
Subject: [PATCH] Fix using deadcode and possible use of NULL pointer |
||||
|
||||
Fix for deadcode in unique_create() so that "opened_name" parameter is |
||||
always initialized to a valid string or NULL when returning from |
||||
function. |
||||
|
||||
Fix for redirect_output() so that "logfile" is not blindly used in |
||||
fprintf() call and checked if it is not NULL. |
||||
|
||||
Signed-off-by: Tomas Hozza <thozza@redhat.com> |
||||
--- |
||||
src/log.c | 2 +- |
||||
src/utils.c | 2 +- |
||||
2 files changed, 2 insertions(+), 2 deletions(-) |
||||
|
||||
diff --git a/src/log.c b/src/log.c |
||||
index 0185df1..4f93a21 100644 |
||||
--- a/src/log.c |
||||
+++ b/src/log.c |
||||
@@ -871,7 +871,7 @@ redirect_output (void) |
||||
can do but disable printing completely. */ |
||||
fprintf (stderr, _("\n%s received.\n"), redirect_request_signal_name); |
||||
fprintf (stderr, _("%s: %s; disabling logging.\n"), |
||||
- logfile, strerror (errno)); |
||||
+ (logfile) ? logfile : DEFAULT_LOGFILE, strerror (errno)); |
||||
inhibit_logging = true; |
||||
} |
||||
save_context_p = false; |
||||
diff --git a/src/utils.c b/src/utils.c |
||||
index 567dc35..7cc942f 100644 |
||||
--- a/src/utils.c |
||||
+++ b/src/utils.c |
||||
@@ -703,7 +703,7 @@ unique_create (const char *name, bool binary, char **opened_name) |
||||
xfree (uname); |
||||
uname = unique_name (name, false); |
||||
} |
||||
- if (opened_name && fp != NULL) |
||||
+ if (opened_name) |
||||
{ |
||||
if (fp) |
||||
*opened_name = uname; |
||||
-- |
||||
1.8.1.4 |
||||
|
@ -0,0 +1,122 @@
@@ -0,0 +1,122 @@
|
||||
diff --git a/doc/wget.texi b/doc/wget.texi |
||||
index 118fce9..3bd8dd7 100644 |
||||
--- a/doc/wget.texi |
||||
+++ b/doc/wget.texi |
||||
@@ -1555,16 +1555,17 @@ without SSL support, none of these options are available. |
||||
@cindex SSL protocol, choose |
||||
@item --secure-protocol=@var{protocol} |
||||
Choose the secure protocol to be used. Legal values are @samp{auto}, |
||||
-@samp{SSLv2}, @samp{SSLv3}, and @samp{TLSv1}. If @samp{auto} is used, |
||||
-the SSL library is given the liberty of choosing the appropriate |
||||
-protocol automatically, which is achieved by sending an SSLv2 greeting |
||||
-and announcing support for SSLv3 and TLSv1. This is the default. |
||||
- |
||||
-Specifying @samp{SSLv2}, @samp{SSLv3}, or @samp{TLSv1} forces the use |
||||
-of the corresponding protocol. This is useful when talking to old and |
||||
-buggy SSL server implementations that make it hard for OpenSSL to |
||||
-choose the correct protocol version. Fortunately, such servers are |
||||
-quite rare. |
||||
+@samp{SSLv2}, @samp{SSLv3}, @samp{TLSv1}, @samp{TLSv1_1} and |
||||
+@samp{TLSv1_2}. If @samp{auto} is used, the SSL library is given the |
||||
+liberty of choosing the appropriate protocol automatically, which is |
||||
+achieved by sending a SSLv2 greeting and announcing support for SSLv3 |
||||
+and TLSv1. This is the default. |
||||
+ |
||||
+Specifying @samp{SSLv2}, @samp{SSLv3}, @samp{TLSv1}, @samp{TLSv1_1} or |
||||
+@samp{TLSv1_2} forces the use of the corresponding protocol. This is |
||||
+useful when talking to old and buggy SSL server implementations that |
||||
+make it hard for the underlying SSL library to choose the correct |
||||
+protocol version. Fortunately, such servers are quite rare. |
||||
|
||||
@cindex SSL certificate, check |
||||
@item --no-check-certificate |
||||
diff --git a/src/init.c b/src/init.c |
||||
index 4cee677..f160bec 100644 |
||||
--- a/src/init.c |
||||
+++ b/src/init.c |
||||
@@ -1488,6 +1488,8 @@ cmd_spec_secure_protocol (const char *com, const char *val, void *place) |
||||
{ "sslv2", secure_protocol_sslv2 }, |
||||
{ "sslv3", secure_protocol_sslv3 }, |
||||
{ "tlsv1", secure_protocol_tlsv1 }, |
||||
+ { "tlsv1_1", secure_protocol_tlsv1_1 }, |
||||
+ { "tlsv1_2", secure_protocol_tlsv1_2 }, |
||||
}; |
||||
int ok = decode_string (val, choices, countof (choices), place); |
||||
if (!ok) |
||||
diff --git a/src/main.c b/src/main.c |
||||
index 9cbad9f..3d50dad 100644 |
||||
--- a/src/main.c |
||||
+++ b/src/main.c |
||||
@@ -625,7 +625,7 @@ HTTP options:\n"), |
||||
HTTPS (SSL/TLS) options:\n"), |
||||
N_("\ |
||||
--secure-protocol=PR choose secure protocol, one of auto, SSLv2,\n\ |
||||
- SSLv3, and TLSv1.\n"), |
||||
+ SSLv3, TLSv1, TLSv1_1 and TLSv1_2.\n"), |
||||
N_("\ |
||||
--no-check-certificate don't validate the server's certificate.\n"), |
||||
N_("\ |
||||
diff --git a/src/openssl.c b/src/openssl.c |
||||
index b3c31ce..141a8a3 100644 |
||||
--- a/src/openssl.c |
||||
+++ b/src/openssl.c |
||||
@@ -40,6 +40,9 @@ as that of the covered work. */ |
||||
#include <openssl/x509v3.h> |
||||
#include <openssl/err.h> |
||||
#include <openssl/rand.h> |
||||
+#if OPENSSL_VERSION_NUMBER >= 0x00907000 |
||||
+#include <openssl/conf.h> |
||||
+#endif |
||||
|
||||
#include "utils.h" |
||||
#include "connect.h" |
||||
@@ -176,6 +179,12 @@ ssl_init (void) |
||||
goto error; |
||||
} |
||||
|
||||
+#if OPENSSL_VERSION_NUMBER >= 0x00907000 |
||||
+ OPENSSL_load_builtin_modules(); |
||||
+ ENGINE_load_builtin_engines(); |
||||
+ CONF_modules_load_file(NULL, NULL, |
||||
+ CONF_MFLAGS_DEFAULT_SECTION|CONF_MFLAGS_IGNORE_MISSING_FILE); |
||||
+#endif |
||||
SSL_library_init (); |
||||
SSL_load_error_strings (); |
||||
SSLeay_add_all_algorithms (); |
||||
@@ -197,6 +206,21 @@ ssl_init (void) |
||||
case secure_protocol_tlsv1: |
||||
meth = TLSv1_client_method (); |
||||
break; |
||||
+#if OPENSSL_VERSION_NUMBER >= 0x10001000 |
||||
+ case secure_protocol_tlsv1_1: |
||||
+ meth = TLSv1_1_client_method (); |
||||
+ break; |
||||
+ case secure_protocol_tlsv1_2: |
||||
+ meth = TLSv1_2_client_method (); |
||||
+ break; |
||||
+#else |
||||
+ case secure_protocol_tlsv1_1: |
||||
+ logprintf (LOG_NOTQUIET, _("Your OpenSSL version is too old to support TLSv1.1\n")); |
||||
+ goto error; |
||||
+ case secure_protocol_tlsv1_2: |
||||
+ logprintf (LOG_NOTQUIET, _("Your OpenSSL version is too old to support TLSv1.2\n")); |
||||
+ goto error; |
||||
+#endif |
||||
default: |
||||
abort (); |
||||
} |
||||
diff --git a/src/options.h b/src/options.h |
||||
index 326123a..575e647 100644 |
||||
--- a/src/options.h |
||||
+++ b/src/options.h |
||||
@@ -200,7 +200,9 @@ struct options |
||||
secure_protocol_auto, |
||||
secure_protocol_sslv2, |
||||
secure_protocol_sslv3, |
||||
- secure_protocol_tlsv1 |
||||
+ secure_protocol_tlsv1, |
||||
+ secure_protocol_tlsv1_1, |
||||
+ secure_protocol_tlsv1_2 |
||||
} secure_protocol; /* type of secure protocol to use. */ |
||||
bool check_cert; /* whether to validate the server's cert */ |
||||
char *cert_file; /* external client certificate to use. */ |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
From 8dc52c6eaa1993d140a52bc0627e436efd9870d0 Mon Sep 17 00:00:00 2001 |
||||
From: Giuseppe Scrivano <gscrivano@gnu.org> |
||||
Date: Sun, 28 Apr 2013 22:41:24 +0200 |
||||
Subject: [PATCH] doc: add documentation for --accept-regex and --reject-regex |
||||
|
||||
--- |
||||
doc/wget.texi | 4 ++++ |
||||
1 files changed, 4 insertions(+) |
||||
|
||||
diff --git a/doc/wget.texi b/doc/wget.texi |
||||
index fed188a..039f700 100644 |
||||
--- a/doc/wget.texi |
||||
+++ b/doc/wget.texi |
||||
@@ -2049,6 +2049,10 @@ any of the wildcard characters, @samp{*}, @samp{?}, @samp{[} or |
||||
@samp{]}, appear in an element of @var{acclist} or @var{rejlist}, |
||||
it will be treated as a pattern, rather than a suffix. |
||||
|
||||
+@item --accept-regex @var{urlregex} |
||||
+@itemx --reject-regex @var{urlregex} |
||||
+Specify a regular expression to accept or reject the complete URL. |
||||
+ |
||||
@item -D @var{domain-list} |
||||
@itemx --domains=@var{domain-list} |
||||
Set domains to be followed. @var{domain-list} is a comma-separated list |
||||
-- |
||||
1.8.1.4 |
||||
|
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
diff --git a/src/http.c b/src/http.c |
||||
index 5ee1c93..b45c404 100644 |
||||
--- a/src/http.c |
||||
+++ b/src/http.c |
||||
@@ -3728,7 +3728,7 @@ digest_authentication_encode (const char *au, const char *user, |
||||
md5_finish_ctx (&ctx, hash); |
||||
dump_hash (a2buf, hash); |
||||
|
||||
- if (!strcmp(qop,"auth")) |
||||
+ if (qop && !strcmp(qop,"auth")) |
||||
{ |
||||
/* RFC 2617 Digest Access Authentication */ |
||||
/* generate random hex string */ |
||||
@@ -3776,7 +3776,7 @@ digest_authentication_encode (const char *au, const char *user, |
||||
|
||||
res = xmalloc (res_size); |
||||
|
||||
- if (!strcmp(qop,"auth")) |
||||
+ if (qop && !strcmp (qop, "auth")) |
||||
{ |
||||
snprintf (res, res_size, "Digest "\ |
||||
"username=\"%s\", realm=\"%s\", nonce=\"%s\", uri=\"%s\", response=\"%s\""\ |
@ -0,0 +1,61 @@
@@ -0,0 +1,61 @@
|
||||
From c78caecbb4209ce2e36a587497cf1d6b350e513a Mon Sep 17 00:00:00 2001 |
||||
From: Tomas Hozza <thozza@redhat.com> |
||||
Date: Thu, 11 Jul 2013 15:52:28 +0000 |
||||
Subject: Document missing options and fix --preserve-permissions |
||||
|
||||
Added documentation for --regex-type and --preserve-permissions |
||||
options. |
||||
|
||||
Fixed --preserve-permissions to work properly also if downloading a |
||||
single file from FTP. |
||||
|
||||
Signed-off-by: Tomas Hozza <thozza@redhat.com> |
||||
--- |
||||
diff --git a/doc/wget.texi b/doc/wget.texi |
||||
index 710f0ac..5054382 100644 |
||||
--- a/doc/wget.texi |
||||
+++ b/doc/wget.texi |
||||
@@ -1816,6 +1816,10 @@ in some rare firewall configurations, active FTP actually works when |
||||
passive FTP doesn't. If you suspect this to be the case, use this |
||||
option, or set @code{passive_ftp=off} in your init file. |
||||
|
||||
+@cindex file permissions |
||||
+@item --preserve-permissions |
||||
+Preserve remote file permissions instead of permissions set by umask. |
||||
+ |
||||
@cindex symbolic links, retrieving |
||||
@item --retr-symlinks |
||||
Usually, when retrieving @sc{ftp} directories recursively and a symbolic |
||||
@@ -2057,6 +2061,11 @@ it will be treated as a pattern, rather than a suffix. |
||||
@itemx --reject-regex @var{urlregex} |
||||
Specify a regular expression to accept or reject the complete URL. |
||||
|
||||
+@item --regex-type @var{regextype} |
||||
+Specify the regular expression type. Possible types are @samp{posix} or |
||||
+@samp{pcre}. Note that to be able to use @samp{pcre} type, wget has to be |
||||
+compiled with libpcre support. |
||||
+ |
||||
@item -D @var{domain-list} |
||||
@itemx --domains=@var{domain-list} |
||||
Set domains to be followed. @var{domain-list} is a comma-separated list |
||||
diff --git a/src/ftp.c b/src/ftp.c |
||||
index 9b3d81c..1fe2bac 100644 |
||||
--- a/src/ftp.c |
||||
+++ b/src/ftp.c |
||||
@@ -2285,11 +2285,11 @@ ftp_loop (struct url *u, char **local_file, int *dt, struct url *proxy, |
||||
file_part = u->path; |
||||
ispattern = has_wildcards_p (file_part); |
||||
} |
||||
- if (ispattern || recursive || opt.timestamping) |
||||
+ if (ispattern || recursive || opt.timestamping || opt.preserve_perm) |
||||
{ |
||||
/* ftp_retrieve_glob is a catch-all function that gets called |
||||
- if we need globbing, time-stamping or recursion. Its |
||||
- third argument is just what we really need. */ |
||||
+ if we need globbing, time-stamping, recursion or preserve |
||||
+ permissions. Its third argument is just what we really need. */ |
||||
res = ftp_retrieve_glob (u, &con, |
||||
ispattern ? GLOB_GLOBALL : GLOB_GETONE); |
||||
} |
||||
-- |
||||
cgit v0.9.0.2 |
@ -0,0 +1,60 @@
@@ -0,0 +1,60 @@
|
||||
From 44ba49b31f4ea515f8a6ef2642a34c0fd2024b90 Mon Sep 17 00:00:00 2001 |
||||
From: Giuseppe Scrivano <gscrivano@gnu.org> |
||||
Date: Tue, 9 Jul 2013 00:50:30 +0200 |
||||
Subject: [PATCH] doc: document --backups |
||||
|
||||
--- |
||||
doc/wget.texi | 15 ++++++++++++--- |
||||
src/main.c | 3 +++ |
||||
2 files changed, 15 insertions(+), 3 deletions(-) |
||||
|
||||
diff --git a/doc/wget.texi b/doc/wget.texi |
||||
index 5054382..7a1670e 100644 |
||||
--- a/doc/wget.texi |
||||
+++ b/doc/wget.texi |
||||
@@ -630,6 +630,13 @@ Note that when @samp{-nc} is specified, files with the suffixes |
||||
@samp{.html} or @samp{.htm} will be loaded from the local disk and |
||||
parsed as if they had been retrieved from the Web. |
||||
|
||||
+@cindex backing up files |
||||
+@item --backups=@var{backups} |
||||
+Before (over)writing a file, back up an existing file by adding a |
||||
+@samp{.1} suffix (@samp{_1} on VMS) to the file name. Such backup |
||||
+files are rotated to @samp{.2}, @samp{.3}, and so on, up to |
||||
+@var{backups} (and lost beyond that). |
||||
+ |
||||
@cindex continue retrieval |
||||
@cindex incomplete downloads |
||||
@cindex resume download |
||||
@@ -2882,9 +2889,11 @@ enables it). |
||||
Enable/disable saving pre-converted files with the suffix |
||||
@samp{.orig}---the same as @samp{-K} (which enables it). |
||||
|
||||
-@c @item backups = @var{number} |
||||
-@c #### Document me! |
||||
-@c |
||||
+@item backups = @var{number} |
||||
+Use up to @var{number} backups for a file. Backups are rotated by |
||||
+adding an incremental counter that starts at @samp{1}. The default is |
||||
+@samp{0}. |
||||
+ |
||||
@item base = @var{string} |
||||
Consider relative @sc{url}s in input files (specified via the |
||||
@samp{input} command or the @samp{--input-file}/@samp{-i} option, |
||||
diff --git a/src/main.c b/src/main.c |
||||
index c895c4e..8ce0eb3 100644 |
||||
--- a/src/main.c |
||||
+++ b/src/main.c |
||||
@@ -714,6 +714,9 @@ Recursive download:\n"), |
||||
N_("\ |
||||
-k, --convert-links make links in downloaded HTML or CSS point to\n\ |
||||
local files.\n"), |
||||
+ N_("\ |
||||
+ --backups=N before writing file X, rotate up to N backup files.\n"), |
||||
+ |
||||
#ifdef __VMS |
||||
N_("\ |
||||
-K, --backup-converted before converting file X, back up as X_orig.\n"), |
||||
-- |
||||
1.8.3.1 |
||||
|
@ -0,0 +1,80 @@
@@ -0,0 +1,80 @@
|
||||
From c52bbad9e4bad1393a9d6ba37e600d388f5ab419 Mon Sep 17 00:00:00 2001 |
||||
From: Giuseppe Scrivano <gscrivano@gnu.org> |
||||
Date: Wed, 10 Jul 2013 20:59:34 +0200 |
||||
Subject: [PATCH] Make --backups work as documented |
||||
|
||||
--- |
||||
src/http.c | 6 ------ |
||||
src/options.h | 2 +- |
||||
src/url.c | 3 ++- |
||||
src/url.h | 6 ++++++ |
||||
4 files changed, 9 insertions(+), 8 deletions(-) |
||||
|
||||
diff --git a/src/http.c b/src/http.c |
||||
index 9f274dc..b0c782b 100644 |
||||
--- a/src/http.c |
||||
+++ b/src/http.c |
||||
@@ -1641,12 +1641,6 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, |
||||
} while (0) |
||||
#endif /* def __VMS [else] */ |
||||
|
||||
-/* The flags that allow clobbering the file (opening with "wb"). |
||||
- Defined here to avoid repetition later. #### This will require |
||||
- rework. */ |
||||
-#define ALLOW_CLOBBER (opt.noclobber || opt.always_rest || opt.timestamping \ |
||||
- || opt.dirstruct || opt.output_document) |
||||
- |
||||
/* Retrieve a document through HTTP protocol. It recognizes status |
||||
code, and correctly handles redirections. It closes the network |
||||
socket. If it receives an error from the functions below it, it |
||||
diff --git a/src/options.h b/src/options.h |
||||
index ed38617..0a10c9b 100644 |
||||
--- a/src/options.h |
||||
+++ b/src/options.h |
||||
@@ -166,7 +166,7 @@ struct options |
||||
bool timestamping; /* Whether to use time-stamping. */ |
||||
|
||||
bool backup_converted; /* Do we save pre-converted files as *.orig? */ |
||||
- bool backups; /* Are numeric backups made? */ |
||||
+ int backups; /* Are numeric backups made? */ |
||||
|
||||
char *useragent; /* User-Agent string, which can be set |
||||
to something other than Wget. */ |
||||
diff --git a/src/url.c b/src/url.c |
||||
index 5e2b9a3..bf9d697 100644 |
||||
--- a/src/url.c |
||||
+++ b/src/url.c |
||||
@@ -1669,11 +1669,12 @@ url_file_name (const struct url *u, char *replaced_filename) |
||||
2) Retrieval with regetting. |
||||
3) Timestamping is used. |
||||
4) Hierarchy is built. |
||||
+ 5) Backups are specified. |
||||
|
||||
The exception is the case when file does exist and is a |
||||
directory (see `mkalldirs' for explanation). */ |
||||
|
||||
- if ((opt.noclobber || opt.always_rest || opt.timestamping || opt.dirstruct) |
||||
+ if (ALLOW_CLOBBER |
||||
&& !(file_exists_p (fname) && !file_non_directory_p (fname))) |
||||
{ |
||||
unique = fname; |
||||
diff --git a/src/url.h b/src/url.h |
||||
index b7f4366..cd3782b 100644 |
||||
--- a/src/url.h |
||||
+++ b/src/url.h |
||||
@@ -47,6 +47,12 @@ as that of the covered work. */ |
||||
#define DEFAULT_FTP_PORT 21 |
||||
#define DEFAULT_HTTPS_PORT 443 |
||||
|
||||
+/* The flags that allow clobbering the file (opening with "wb"). |
||||
+ Defined here to avoid repetition later. #### This will require |
||||
+ rework. */ |
||||
+#define ALLOW_CLOBBER (opt.noclobber || opt.always_rest || opt.timestamping \ |
||||
+ || opt.dirstruct || opt.output_document || opt.backups > 0) |
||||
+ |
||||
/* Specifies how, or whether, user auth information should be included |
||||
* in URLs regenerated from URL parse structures. */ |
||||
enum url_auth_mode { |
||||
-- |
||||
1.8.3.1 |
||||
|
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
From bdf2764457bef7c33be289b889ddf6df91773296 Mon Sep 17 00:00:00 2001 |
||||
From: Tomas Hozza <thozza@redhat.com> |
||||
Date: Wed, 10 Jul 2013 13:23:37 +0200 |
||||
Subject: [PATCH] Set iri->orig_url to NULL after free. |
||||
|
||||
Set iri->orig_url to NULL after free to prevent double |
||||
free in retrieve_url() and iri_free() when using IRI |
||||
and downloading site that redirects itself. |
||||
|
||||
Signed-off-by: Tomas Hozza <thozza@redhat.com> |
||||
--- |
||||
src/retr.c | 1 + |
||||
1 file changed, 1 insertion(+) |
||||
|
||||
diff --git a/src/retr.c b/src/retr.c |
||||
index 6204839..66624dc 100644 |
||||
--- a/src/retr.c |
||||
+++ b/src/retr.c |
||||
@@ -838,6 +838,7 @@ retrieve_url (struct url * orig_parsed, const char *origurl, char **file, |
||||
iri->utf8_encode = opt.enable_iri; |
||||
set_content_encoding (iri, NULL); |
||||
xfree_null (iri->orig_url); |
||||
+ iri->orig_url = NULL; |
||||
|
||||
/* Now, see if this new location makes sense. */ |
||||
newloc_parsed = url_parse (mynewloc, &up_error_code, iri, true); |
||||
-- |
||||
1.8.3.1 |
||||
|
@ -0,0 +1,164 @@
@@ -0,0 +1,164 @@
|
||||
From 082e7194605e99f0e50f8909fcaf10adee747cc8 Mon Sep 17 00:00:00 2001 |
||||
From: Tomas Hozza <thozza@redhat.com> |
||||
Date: Fri, 5 May 2017 13:46:11 +0200 |
||||
Subject: [PATCH] Fix client/server synchronization in |
||||
Test-proxied-https-auth.px test |
||||
|
||||
Combination of upstream commits vithout adding support for Valgrind: |
||||
3eff3ad69a46364475e1f4abdf9412cfa87e3d6c |
||||
2303793a626158627bdb2ac255e0f58697682b24 |
||||
|
||||
Signed-off-by: Tomas Hozza <thozza@redhat.com> |
||||
--- |
||||
tests/Test-proxied-https-auth.px | 82 +++++++++++++++++++++++----------------- |
||||
1 file changed, 48 insertions(+), 34 deletions(-) |
||||
|
||||
diff --git a/tests/Test-proxied-https-auth.px b/tests/Test-proxied-https-auth.px |
||||
index 1de5357..e1a6c44 100755 |
||||
--- a/tests/Test-proxied-https-auth.px |
||||
+++ b/tests/Test-proxied-https-auth.px |
||||
@@ -1,4 +1,6 @@ |
||||
#!/usr/bin/env perl |
||||
+# Simulate a tunneling proxy to a HTTPS URL that needs authentication. |
||||
+# Use two connections (Connection: close) |
||||
|
||||
use strict; |
||||
use warnings; |
||||
@@ -39,31 +41,33 @@ sub get_request { |
||||
} |
||||
|
||||
sub do_server { |
||||
- my $alrm = alarm 10; |
||||
- |
||||
+ my ($synch_callback) = @_; |
||||
my $s = $SOCKET; |
||||
my $conn; |
||||
my $rqst; |
||||
my $rspn; |
||||
+ |
||||
+ my %options = ( |
||||
+ SSL_server => 1, |
||||
+ SSL_passwd_cb => sub { return "Hello"; }); |
||||
+ $options{SSL_cert_file} = $cert_path if ($cert_path); |
||||
+ $options{SSL_key_file} = $key_path if ($key_path); |
||||
+ my @options = %options; |
||||
+ |
||||
+ # sync with the parent |
||||
+ $synch_callback->(); |
||||
+ |
||||
+ # Simulate a HTTPS proxy server with tunneling. |
||||
+ |
||||
for my $expect_inner_auth (0, 1) { |
||||
$conn = $s->accept; |
||||
$rqst = $conn->get_request; |
||||
- |
||||
- # TODO: expect no auth the first time, request it, expect it the second |
||||
- # time. |
||||
- |
||||
die "Method not CONNECT\n" if ($rqst->method ne 'CONNECT'); |
||||
$rspn = HTTP::Response->new(200, 'OK'); |
||||
$conn->send_response($rspn); |
||||
|
||||
- my %options = ( |
||||
- SSL_server => 1, |
||||
- SSL_passwd_cb => sub { return "Hello"; }); |
||||
- |
||||
- $options{SSL_cert_file} = $cert_path if ($cert_path); |
||||
- $options{SSL_key_file} = $key_path if ($key_path); |
||||
- |
||||
- my @options = %options; |
||||
+ # Now switch from plain to SSL (for simulating a transparent tunnel |
||||
+ # to an HTTPS server). |
||||
|
||||
$conn = IO::Socket::SSL->new_from_fd($conn->fileno, @options) |
||||
or die "Couldn't initiate SSL"; |
||||
@@ -74,14 +78,10 @@ sub do_server { |
||||
unless ($expect_inner_auth) { |
||||
die "Early proxied auth\n" if $rqst->header('Authorization'); |
||||
|
||||
- # TODO: handle non-persistent connection here. |
||||
$rspn = HTTP::Response->new(401, 'Unauthorized', [ |
||||
'WWW-Authenticate' => 'Basic realm="gondor"', |
||||
Connection => 'close' |
||||
]); |
||||
- $rspn->protocol('HTTP/1.0'); |
||||
- print $rspn->as_string; |
||||
- print $conn $rspn->as_string; |
||||
} else { |
||||
die "No proxied auth\n" unless $rqst->header('Authorization'); |
||||
|
||||
@@ -89,41 +89,55 @@ sub do_server { |
||||
'Content-Type' => 'text/plain', |
||||
'Connection' => 'close', |
||||
], "foobarbaz\n"); |
||||
- $rspn->protocol('HTTP/1.0'); |
||||
- print "=====\n"; |
||||
- print $rspn->as_string; |
||||
- print "\n=====\n"; |
||||
- print $conn $rspn->as_string; |
||||
} |
||||
+ |
||||
+ $rspn->protocol('HTTP/1.0'); |
||||
+ print STDERR "=====\n"; |
||||
+ print STDERR $rspn->as_string; |
||||
+ print STDERR "\n=====\n"; |
||||
+ print $conn $rspn->as_string; |
||||
+ |
||||
$conn->close; |
||||
} |
||||
+ |
||||
undef $conn; |
||||
undef $s; |
||||
- alarm $alrm; |
||||
} |
||||
|
||||
sub fork_server { |
||||
- my $pid = fork; |
||||
- die "Couldn't fork" if ($pid < 0); |
||||
- return $pid if $pid; |
||||
+ pipe(FROM_CHILD, TO_PARENT) or die "Cannot create pipe!"; |
||||
+ select((select(TO_PARENT), $| = 1)[0]); |
||||
+ |
||||
+ my $pid = fork(); |
||||
+ if ($pid < 0) { |
||||
+ die "Cannot fork"; |
||||
+ } elsif ($pid == 0) { |
||||
+ # child |
||||
+ close FROM_CHILD; |
||||
+ do_server(sub { print TO_PARENT "SYNC\n"; close TO_PARENT }); |
||||
+ exit 0; |
||||
+ } else { |
||||
+ # parent |
||||
+ close TO_PARENT; |
||||
+ chomp(my $line = <FROM_CHILD>); |
||||
+ close FROM_CHILD; |
||||
+ } |
||||
|
||||
- &do_server; |
||||
- exit; |
||||
+ return $pid; |
||||
} |
||||
|
||||
-system ('rm -f needs-auth.txt'); |
||||
+unlink "needs-auth.txt"; |
||||
my $pid = &fork_server; |
||||
|
||||
-sleep 1; |
||||
my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee" |
||||
. " --password=Dodgson -e https_proxy=localhost:{{port}}" |
||||
. " --no-check-certificate" |
||||
. " https://no.such.domain/needs-auth.txt"; |
||||
$cmdline =~ s/{{port}}/$SOCKET->sockport()/e; |
||||
|
||||
-my $code = system($cmdline); |
||||
-system ('rm -f needs-auth.txt'); |
||||
+my $code = system($cmdline . " 2>&1") >> 8; |
||||
+unlink "needs-auth.txt"; |
||||
|
||||
warn "Got code: $code\n" if $code; |
||||
kill ('TERM', $pid); |
||||
-exit ($code >> 8); |
||||
+exit ($code != 0); |
||||
-- |
||||
2.7.4 |
||||
|
@ -0,0 +1,55 @@
@@ -0,0 +1,55 @@
|
||||
From a2a34ad8e09117041761fa96830f289aa6e67042 Mon Sep 17 00:00:00 2001 |
||||
From: Tomas Hozza <thozza@redhat.com> |
||||
Date: Fri, 22 Feb 2013 12:29:37 +0100 |
||||
Subject: [PATCH] Fix @itemx issue when building doc |
||||
|
||||
@itemx should be used ONLY for second and subsequent item(s). |
||||
|
||||
Signed-off-by: Tomas Hozza <thozza@redhat.com> |
||||
--- |
||||
doc/wget.texi | 8 ++++---- |
||||
1 file changed, 4 insertions(+), 4 deletions(-) |
||||
|
||||
diff --git a/doc/wget.texi b/doc/wget.texi |
||||
index c1fc82f..3768156 100644 |
||||
--- a/doc/wget.texi |
||||
+++ b/doc/wget.texi |
||||
@@ -876,7 +876,7 @@ recommendation to block many unrelated users from a web site due to the |
||||
actions of one. |
||||
|
||||
@cindex proxy |
||||
-@itemx --no-proxy |
||||
+@item --no-proxy |
||||
Don't use proxies, even if the appropriate @code{*_proxy} environment |
||||
variable is defined. |
||||
|
||||
@@ -977,7 +977,7 @@ are outside the range of @sc{ascii} characters (that is, greater than |
||||
whose encoding does not match the one used locally. |
||||
|
||||
@cindex IPv6 |
||||
-@itemx -4 |
||||
+@item -4 |
||||
@itemx --inet4-only |
||||
@itemx -6 |
||||
@itemx --inet6-only |
||||
@@ -3094,7 +3094,7 @@ display properly---the same as @samp{-p}. |
||||
Change setting of passive @sc{ftp}, equivalent to the |
||||
@samp{--passive-ftp} option. |
||||
|
||||
-@itemx password = @var{string} |
||||
+@item password = @var{string} |
||||
Specify password @var{string} for both @sc{ftp} and @sc{http} file retrieval. |
||||
This command can be overridden using the @samp{ftp_password} and |
||||
@samp{http_password} command for @sc{ftp} and @sc{http} respectively. |
||||
@@ -3605,7 +3605,7 @@ In addition to the environment variables, proxy location and settings |
||||
may be specified from within Wget itself. |
||||
|
||||
@table @samp |
||||
-@itemx --no-proxy |
||||
+@item --no-proxy |
||||
@itemx proxy = on/off |
||||
This option and the corresponding command may be used to suppress the |
||||
use of proxy, even if the appropriate environment variables are set. |
||||
-- |
||||
1.8.1.2 |
||||
|
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
From 798f554773baf1adca376500ca120a992e6d7492 Mon Sep 17 00:00:00 2001 |
||||
From: Tim Ruehsen <tim.ruehsen@gmx.de> |
||||
Date: Tue, 28 Aug 2012 16:38:21 +0200 |
||||
Subject: [PATCH] remove -nv from --report-speed in doc/wget.texi |
||||
|
||||
--- |
||||
doc/wget.texi | 3 +-- |
||||
2 files changed, 5 insertions(+), 2 deletions(-) |
||||
|
||||
diff --git a/doc/wget.texi b/doc/wget.texi |
||||
index 7efdc72..400debe 100644 |
||||
--- a/doc/wget.texi |
||||
+++ b/doc/wget.texi |
||||
@@ -479,8 +479,7 @@ Turn off verbose without being completely quiet (use @samp{-q} for |
||||
that), which means that error messages and basic information still get |
||||
printed. |
||||
|
||||
-@item -nv |
||||
-@itemx --report-speed=@var{type} |
||||
+@item --report-speed=@var{type} |
||||
Output bandwidth as @var{type}. The only accepted value is @samp{bits}. |
||||
|
||||
@cindex input-file |
||||
-- |
||||
1.9.3 |
||||
|
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
From aed7d4163a9e2083d294a9471e1347ab13d6f2ab Mon Sep 17 00:00:00 2001 |
||||
From: Pavel Mateja <pavel@netsafe.cz> |
||||
Date: Sat, 2 Nov 2013 11:27:58 +0100 |
||||
Subject: [PATCH] http: specify Host when CONNECT is used. |
||||
|
||||
--- |
||||
src/http.c | 7 +++---- |
||||
2 files changed, 7 insertions(+), 4 deletions(-) |
||||
|
||||
diff --git a/src/http.c b/src/http.c |
||||
index dbfcdfb..8917fa5 100644 |
||||
--- a/src/http.c |
||||
+++ b/src/http.c |
||||
@@ -2013,10 +2013,9 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, |
||||
the regular request below. */ |
||||
proxyauth = NULL; |
||||
} |
||||
- /* Examples in rfc2817 use the Host header in CONNECT |
||||
- requests. I don't see how that gains anything, given |
||||
- that the contents of Host would be exactly the same as |
||||
- the contents of CONNECT. */ |
||||
+ request_set_header (connreq, "Host", |
||||
+ aprintf ("%s:%d", u->host, u->port), |
||||
+ rel_value); |
||||
|
||||
write_error = request_send (connreq, sock, 0); |
||||
request_free (connreq); |
||||
-- |
||||
2.1.0 |
||||
|
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
From 8760123cee87e07a276b8b13ef48ada3a490ad47 Mon Sep 17 00:00:00 2001 |
||||
From: Tomas Hozza <thozza@redhat.com> |
||||
Date: Thu, 11 Jul 2013 11:22:43 +0000 |
||||
Subject: Set sock variable to -1 if no persistent conn exists |
||||
|
||||
Wget should set sock variable to -1 if no persistent |
||||
connection exists. Function persistent_available_p() |
||||
tests persistent connection but if test_socket_open() |
||||
fails it closes the socket but will not set sock variable |
||||
to -1. After returning from persistent_available_p() |
||||
it is possible that sock has still value of already |
||||
closed connection. |
||||
|
||||
Signed-off-by: Tomas Hozza <thozza@redhat.com> |
||||
--- |
||||
diff --git a/src/http.c b/src/http.c |
||||
index 669f0fe..a693355 100644 |
||||
--- a/src/http.c |
||||
+++ b/src/http.c |
||||
@@ -1983,6 +1983,10 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, |
||||
exec_name, quote (relevant->host)); |
||||
return HOSTERR; |
||||
} |
||||
+ else if (sock != -1) |
||||
+ { |
||||
+ sock = -1; |
||||
+ } |
||||
} |
||||
|
||||
if (sock < 0) |
||||
-- |
||||
cgit v0.9.0.2 |
@ -0,0 +1,105 @@
@@ -0,0 +1,105 @@
|
||||
diff -up wget-1.14/src/openssl.c.ssltimeout wget-1.14/src/openssl.c |
||||
--- wget-1.14/src/openssl.c.ssltimeout 2012-08-09 14:30:14.987964706 +0200 |
||||
+++ wget-1.14/src/openssl.c 2012-08-09 14:44:05.467660741 +0200 |
||||
@@ -256,19 +256,42 @@ struct openssl_transport_context { |
||||
char *last_error; /* last error printed with openssl_errstr */ |
||||
}; |
||||
|
||||
-static int |
||||
-openssl_read (int fd, char *buf, int bufsize, void *arg) |
||||
-{ |
||||
- int ret; |
||||
- struct openssl_transport_context *ctx = arg; |
||||
+struct openssl_read_args { |
||||
+ int fd; |
||||
+ struct openssl_transport_context *ctx; |
||||
+ char *buf; |
||||
+ int bufsize; |
||||
+ int retval; |
||||
+}; |
||||
+ |
||||
+static void openssl_read_callback(void *arg) { |
||||
+ struct openssl_read_args *args = (struct openssl_read_args *) arg; |
||||
+ struct openssl_transport_context *ctx = args->ctx; |
||||
SSL *conn = ctx->conn; |
||||
+ char *buf = args->buf; |
||||
+ int bufsize = args->bufsize; |
||||
+ int ret; |
||||
+ |
||||
do |
||||
ret = SSL_read (conn, buf, bufsize); |
||||
- while (ret == -1 |
||||
- && SSL_get_error (conn, ret) == SSL_ERROR_SYSCALL |
||||
+ while (ret == -1 && SSL_get_error (conn, ret) == SSL_ERROR_SYSCALL |
||||
&& errno == EINTR); |
||||
+ args->retval = ret; |
||||
+} |
||||
|
||||
- return ret; |
||||
+static int |
||||
+openssl_read (int fd, char *buf, int bufsize, void *arg) |
||||
+{ |
||||
+ struct openssl_read_args args; |
||||
+ args.fd = fd; |
||||
+ args.buf = buf; |
||||
+ args.bufsize = bufsize; |
||||
+ args.ctx = (struct openssl_transport_context*) arg; |
||||
+ |
||||
+ if (run_with_timeout(opt.read_timeout, openssl_read_callback, &args)) { |
||||
+ return -1; |
||||
+ } |
||||
+ return args.retval; |
||||
} |
||||
|
||||
static int |
||||
@@ -386,6 +409,18 @@ static struct transport_implementation o |
||||
openssl_peek, openssl_errstr, openssl_close |
||||
}; |
||||
|
||||
+struct scwt_context { |
||||
+ SSL *ssl; |
||||
+ int result; |
||||
+}; |
||||
+ |
||||
+static void |
||||
+ssl_connect_with_timeout_callback(void *arg) |
||||
+{ |
||||
+ struct scwt_context *ctx = (struct scwt_context *)arg; |
||||
+ ctx->result = SSL_connect(ctx->ssl); |
||||
+} |
||||
+ |
||||
/* Perform the SSL handshake on file descriptor FD, which is assumed |
||||
to be connected to an SSL server. The SSL handle provided by |
||||
OpenSSL is registered with the file descriptor FD using |
||||
@@ -398,6 +433,7 @@ bool |
||||
ssl_connect_wget (int fd, const char *hostname) |
||||
{ |
||||
SSL *conn; |
||||
+ struct scwt_context scwt_ctx; |
||||
struct openssl_transport_context *ctx; |
||||
|
||||
DEBUGP (("Initiating SSL handshake.\n")); |
||||
@@ -425,7 +461,14 @@ ssl_connect_wget (int fd, const char *ho |
||||
if (!SSL_set_fd (conn, FD_TO_SOCKET (fd))) |
||||
goto error; |
||||
SSL_set_connect_state (conn); |
||||
- if (SSL_connect (conn) <= 0 || conn->state != SSL_ST_OK) |
||||
+ |
||||
+ scwt_ctx.ssl = conn; |
||||
+ if (run_with_timeout(opt.read_timeout, ssl_connect_with_timeout_callback, |
||||
+ &scwt_ctx)) { |
||||
+ DEBUGP (("SSL handshake timed out.\n")); |
||||
+ goto timeout; |
||||
+ } |
||||
+ if (scwt_ctx.result <= 0 || conn->state != SSL_ST_OK) |
||||
goto error; |
||||
|
||||
ctx = xnew0 (struct openssl_transport_context); |
||||
@@ -441,6 +484,7 @@ ssl_connect_wget (int fd, const char *ho |
||||
error: |
||||
DEBUGP (("SSL handshake failed.\n")); |
||||
print_errors (); |
||||
+ timeout: |
||||
if (conn) |
||||
SSL_free (conn); |
||||
return false; |
@ -0,0 +1,154 @@
@@ -0,0 +1,154 @@
|
||||
From 0a33fa22c597234ab133f63127b4a5e00cf048b9 Mon Sep 17 00:00:00 2001 |
||||
From: Tomas Hozza <thozza@redhat.com> |
||||
Date: Mon, 20 Jun 2016 12:10:38 +0200 |
||||
Subject: [PATCH] Support non-ASCII characters |
||||
|
||||
Upstream commit 59b920874daa565a1323ffa1e756e80493190686 |
||||
|
||||
Signed-off-by: Tomas Hozza <thozza@redhat.com> |
||||
--- |
||||
src/url.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++-- |
||||
tests/Test-ftp-iri.px | 4 +-- |
||||
2 files changed, 87 insertions(+), 4 deletions(-) |
||||
|
||||
diff --git a/src/url.c b/src/url.c |
||||
index 6bca719..d0d9e27 100644 |
||||
--- a/src/url.c |
||||
+++ b/src/url.c |
||||
@@ -42,6 +42,11 @@ as that of the covered work. */ |
||||
#include "url.h" |
||||
#include "host.h" /* for is_valid_ipv6_address */ |
||||
|
||||
+#if HAVE_ICONV |
||||
+#include <iconv.h> |
||||
+#include <langinfo.h> |
||||
+#endif |
||||
+ |
||||
#ifdef __VMS |
||||
#include "vms.h" |
||||
#endif /* def __VMS */ |
||||
@@ -1335,8 +1340,8 @@ UWC, C, C, C, C, C, C, C, /* NUL SOH STX ETX EOT ENQ ACK BEL */ |
||||
0, 0, 0, 0, 0, 0, 0, 0, /* p q r s t u v w */ |
||||
0, 0, 0, 0, W, 0, 0, C, /* x y z { | } ~ DEL */ |
||||
|
||||
- C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, /* 128-143 */ |
||||
- C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, /* 144-159 */ |
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 128-143 */ |
||||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 144-159 */ |
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
||||
|
||||
@@ -1456,6 +1461,82 @@ append_uri_pathel (const char *b, const char *e, bool escaped, |
||||
TAIL_INCR (dest, outlen); |
||||
} |
||||
|
||||
+static char * |
||||
+convert_fname (const char *fname) |
||||
+{ |
||||
+ char *converted_fname = (char *)fname; |
||||
+#if HAVE_ICONV |
||||
+ const char *from_encoding = opt.encoding_remote; |
||||
+ const char *to_encoding = opt.locale; |
||||
+ iconv_t cd; |
||||
+ size_t len, done, inlen, outlen; |
||||
+ char *s; |
||||
+ const char *orig_fname = fname;; |
||||
+ |
||||
+ /* Defaults for remote and local encodings. */ |
||||
+ if (!from_encoding) |
||||
+ from_encoding = "UTF-8"; |
||||
+ if (!to_encoding) |
||||
+ to_encoding = nl_langinfo (CODESET); |
||||
+ |
||||
+ cd = iconv_open (to_encoding, from_encoding); |
||||
+ if (cd == (iconv_t)(-1)) |
||||
+ logprintf (LOG_VERBOSE, _("Conversion from %s to %s isn't supported\n"), |
||||
+ quote (from_encoding), quote (to_encoding)); |
||||
+ else |
||||
+ { |
||||
+ inlen = strlen (fname); |
||||
+ len = outlen = inlen * 2; |
||||
+ converted_fname = s = xmalloc (outlen + 1); |
||||
+ done = 0; |
||||
+ |
||||
+ for (;;) |
||||
+ { |
||||
+ if (iconv (cd, &fname, &inlen, &s, &outlen) != (size_t)(-1) |
||||
+ && iconv (cd, NULL, NULL, &s, &outlen) != (size_t)(-1)) |
||||
+ { |
||||
+ *(converted_fname + len - outlen - done) = '\0'; |
||||
+ iconv_close(cd); |
||||
+ DEBUGP (("Converted file name '%s' (%s) -> '%s' (%s)\n", |
||||
+ orig_fname, from_encoding, converted_fname, to_encoding)); |
||||
+ xfree (orig_fname); |
||||
+ return converted_fname; |
||||
+ } |
||||
+ |
||||
+ /* Incomplete or invalid multibyte sequence */ |
||||
+ if (errno == EINVAL || errno == EILSEQ) |
||||
+ { |
||||
+ logprintf (LOG_VERBOSE, |
||||
+ _("Incomplete or invalid multibyte sequence encountered\n")); |
||||
+ xfree (converted_fname); |
||||
+ converted_fname = (char *)orig_fname; |
||||
+ break; |
||||
+ } |
||||
+ else if (errno == E2BIG) /* Output buffer full */ |
||||
+ { |
||||
+ done = len; |
||||
+ len = outlen = done + inlen * 2; |
||||
+ converted_fname = xrealloc (converted_fname, outlen + 1); |
||||
+ s = converted_fname + done; |
||||
+ } |
||||
+ else /* Weird, we got an unspecified error */ |
||||
+ { |
||||
+ logprintf (LOG_VERBOSE, _("Unhandled errno %d\n"), errno); |
||||
+ xfree (converted_fname); |
||||
+ converted_fname = (char *)orig_fname; |
||||
+ break; |
||||
+ } |
||||
+ } |
||||
+ DEBUGP (("Failed to convert file name '%s' (%s) -> '?' (%s)\n", |
||||
+ orig_fname, from_encoding, to_encoding)); |
||||
+ } |
||||
+ |
||||
+ iconv_close(cd); |
||||
+#endif |
||||
+ |
||||
+ return converted_fname; |
||||
+} |
||||
+ |
||||
/* Append to DEST the directory structure that corresponds the |
||||
directory part of URL's path. For example, if the URL is |
||||
http://server/dir1/dir2/file, this appends "/dir1/dir2". |
||||
@@ -1582,6 +1663,8 @@ url_file_name (const struct url *u, char *replaced_filename) |
||||
|
||||
fname = fnres.base; |
||||
|
||||
+ fname = convert_fname (fname); |
||||
+ |
||||
/* Check the cases in which the unique extensions are not used: |
||||
1) Clobbering is turned off (-nc). |
||||
2) Retrieval with regetting. |
||||
diff --git a/tests/Test-ftp-iri.px b/tests/Test-ftp-iri.px |
||||
index a4b7fe1..24ac467 100755 |
||||
--- a/tests/Test-ftp-iri.px |
||||
+++ b/tests/Test-ftp-iri.px |
||||
@@ -26,12 +26,12 @@ my %urls = ( |
||||
}, |
||||
); |
||||
|
||||
-my $cmdline = $WgetTest::WGETPATH . " --local-encoding=iso-8859-1 -S ftp://localhost:{{port}}/fran${ccedilla_l1}ais.txt"; |
||||
+my $cmdline = $WgetTest::WGETPATH . " --local-encoding=iso-8859-1 --remote-encoding=utf-8 -S ftp://localhost:{{port}}/fran${ccedilla_l1}ais.txt"; |
||||
|
||||
my $expected_error_code = 0; |
||||
|
||||
my %expected_downloaded_files = ( |
||||
- "fran${ccedilla_u8}ais.txt" => { |
||||
+ "fran${ccedilla_l1}ais.txt" => { |
||||
content => $francais, |
||||
}, |
||||
); |
||||
-- |
||||
2.5.5 |
||||
|
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
From 7f43748544f26008d0dd337704f02a6ed3200aaf Mon Sep 17 00:00:00 2001 |
||||
From: Dave Reisner <dreisner@archlinux.org> |
||||
Date: Mon, 17 Jun 2013 23:31:46 +0530 |
||||
Subject: [PATCH] Fix error in texi2pod intriduced with Perl 5.18 |
||||
|
||||
--- |
||||
doc/texi2pod.pl | 2 +- |
||||
1 files changed, 1 insertions(+), 1 deletion(-) |
||||
|
||||
diff --git a/doc/texi2pod.pl b/doc/texi2pod.pl |
||||
index 86c4b18..9db6de1 100755 |
||||
--- a/doc/texi2pod.pl |
||||
+++ b/doc/texi2pod.pl |
||||
@@ -291,7 +291,7 @@ while(<$inf>) { |
||||
if (defined $1) { |
||||
my $thing = $1; |
||||
if ($ic =~ /\@asis/) { |
||||
- $_ = "\n=item $thing\n"; |
||||
+ $_ = "\n=item C<$thing>\n"; |
||||
} else { |
||||
# Entity escapes prevent munging by the <> processing below. |
||||
$_ = "\n=item $ic\<$thing\>\n"; |
||||
-- |
||||
1.8.1.4 |
||||
|
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
--- configure~ 2011-09-13 03:15:38.000000000 -0500 |
||||
+++ configure 2011-12-16 09:19:34.574773958 -0600 |
||||
@@ -561,7 +561,7 @@ |
||||
PACKAGE_NAME='wget' |
||||
PACKAGE_TARNAME='wget' |
||||
PACKAGE_VERSION='1.14' |
||||
-PACKAGE_STRING='wget 1.14' |
||||
+PACKAGE_STRING='wget 1.14 (Red Hat modified)' |
||||
PACKAGE_BUGREPORT='bug-wget@gnu.org' |
||||
PACKAGE_URL='' |
||||
|
@ -0,0 +1,590 @@
@@ -0,0 +1,590 @@
|
||||
Summary: A utility for retrieving files using the HTTP or FTP protocols |
||||
Name: wget |
||||
Version: 1.14 |
||||
Release: 18%{?dist} |
||||
License: GPLv3+ |
||||
Group: Applications/Internet |
||||
Url: http://www.gnu.org/software/wget/ |
||||
Source: ftp://ftp.gnu.org/gnu/wget/wget-%{version}.tar.xz |
||||
|
||||
Patch1: wget-rh-modified.patch |
||||
Patch2: wget-1.12-path.patch |
||||
Patch3: wget-1.14-sslreadtimeout.patch |
||||
Patch4: wget-1.14-manpage-tex5.patch |
||||
Patch5: wget-1.14-add_missing_options_doc.patch |
||||
Patch6: wget-1.14-texi2pod_error_perl518.patch |
||||
Patch7: wget-1.14-fix-double-free-of-iri-orig_url.patch |
||||
Patch8: wget-1.14-Fix-deadcode-and-possible-NULL-use.patch |
||||
Patch9: wget-1.14-doc-missing-opts-and-fix-preserve-permissions.patch |
||||
Patch10: wget-1.14-set_sock_to_-1_if_no_persistent_conn.patch |
||||
Patch11: wget-1.14-document-backups.patch |
||||
Patch12: wget-1.14-fix-backups-to-work-as-documented.patch |
||||
Patch13: wget-1.14-CVE-2014-4877.patch |
||||
Patch14: wget-1.14-rh1203384.patch |
||||
Patch15: wget-1.14-rh1147572.patch |
||||
Patch16: wget-1.14-CVE-2016-4971.patch |
||||
# needed because fix for CVE-2016-4971 changes default behavior |
||||
# and the file is not saved in correct encoding. This caused the |
||||
# Test-ftp-iri-fallback test to fail. This additional change makes |
||||
# Test-ftp-iri-fallback test pass again. |
||||
Patch17: wget-1.14-support-non-ASCII-characters.patch |
||||
Patch18: wget-1.14-add-openssl-tlsv11-tlsv12-support.patch |
||||
# Fix for randomly failing unit test |
||||
# combination of upstream commits without the support for Valgrind |
||||
# commit 3eff3ad69a46364475e1f4abdf9412cfa87e3d6c |
||||
# commit 2303793a626158627bdb2ac255e0f58697682b24 |
||||
Patch19: wget-1.14-fix-synchronization-in-Test-proxied-https-auth.patch |
||||
Patch20: wget-1.14-CVE-2017-13089.patch |
||||
Patch21: wget-1.14-CVE-2017-13090.patch |
||||
# Partial backport without setting the default algorithm |
||||
# http://git.savannah.gnu.org/cgit/wget.git/commit/?id=e9cc8b2f7c4678b832ad56f7119bba86a8db08ef |
||||
Patch22: wget-1.14-digest-auth-qop-segfault-fix.patch |
||||
# https://git.savannah.gnu.org/cgit/wget.git/commit/?id=1fc9c95ec144499e69dc8ec76dbe07799d7d82cd |
||||
Patch23: wget-1.14-CVE-2018-0494.patch |
||||
|
||||
Provides: webclient |
||||
Provides: bundled(gnulib) |
||||
Requires(post): /sbin/install-info |
||||
Requires(preun): /sbin/install-info |
||||
BuildRequires: openssl-devel, pkgconfig, texinfo, gettext, autoconf, libidn-devel, libuuid-devel, perl-podlators |
||||
# dependencies for the test suite |
||||
BuildRequires: perl-libwww-perl |
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) |
||||
|
||||
%description |
||||
GNU Wget is a file retrieval utility which can use either the HTTP or |
||||
FTP protocols. Wget features include the ability to work in the |
||||
background while you are logged out, recursive retrieval of |
||||
directories, file name wildcard matching, remote file timestamp |
||||
storage and comparison, use of Rest with FTP servers and Range with |
||||
HTTP servers to retrieve files over slow or unstable connections, |
||||
support for Proxy servers, and configurability. |
||||
|
||||
%prep |
||||
%setup -q |
||||
%patch1 -p0 |
||||
%patch2 -p1 |
||||
%patch3 -p1 -b .sslreadtimeout |
||||
%patch4 -p1 |
||||
%patch5 -p1 |
||||
%patch6 -p1 |
||||
%patch7 -p1 |
||||
%patch8 -p1 |
||||
%patch9 -p1 |
||||
%patch10 -p1 |
||||
%patch11 -p1 |
||||
%patch12 -p1 |
||||
%patch13 -p1 |
||||
%patch14 -p1 |
||||
%patch15 -p1 |
||||
%patch16 -p1 |
||||
%patch17 -p1 |
||||
%patch18 -p1 -b .tls11_tls12 |
||||
%patch19 -p1 -b .test_synch_fix |
||||
%patch20 -p1 -b .CVE-2017-13089 |
||||
%patch21 -p1 -b .CVE-2017-13090 |
||||
%patch22 -p1 -b .digest-auth-segfault |
||||
%patch23 -p1 -b .CVE-2018-0494 |
||||
|
||||
%build |
||||
if pkg-config openssl ; then |
||||
CPPFLAGS=`pkg-config --cflags openssl`; export CPPFLAGS |
||||
LDFLAGS=`pkg-config --libs openssl`; export LDFLAGS |
||||
fi |
||||
%configure --with-ssl=openssl --enable-largefile --enable-opie --enable-digest --enable-ntlm --enable-nls --enable-ipv6 --disable-rpath |
||||
make %{?_smp_mflags} |
||||
|
||||
%install |
||||
rm -rf $RPM_BUILD_ROOT |
||||
make install DESTDIR=$RPM_BUILD_ROOT CFLAGS="$RPM_OPT_FLAGS" |
||||
rm -f $RPM_BUILD_ROOT/%{_infodir}/dir |
||||
|
||||
%find_lang %{name} |
||||
|
||||
%post |
||||
/sbin/install-info %{_infodir}/wget.info.gz %{_infodir}/dir || : |
||||
|
||||
%preun |
||||
if [ "$1" = 0 ]; then |
||||
/sbin/install-info --delete %{_infodir}/wget.info.gz %{_infodir}/dir || : |
||||
fi |
||||
|
||||
%clean |
||||
rm -rf $RPM_BUILD_ROOT |
||||
|
||||
%check |
||||
make check |
||||
|
||||
%files -f %{name}.lang |
||||
%defattr(-,root,root) |
||||
%doc AUTHORS MAILING-LIST NEWS README COPYING doc/sample.wgetrc |
||||
%config(noreplace) %{_sysconfdir}/wgetrc |
||||
%{_mandir}/man1/wget.* |
||||
%{_bindir}/wget |
||||
%{_infodir}/* |
||||
|
||||
%changelog |
||||
* Wed May 09 2018 Tomas Hozza <thozza@redhat.com> - 1.14-18 |
||||
- Fix CVE-2018-0494 (#1576106) |
||||
|
||||
* Mon Apr 23 2018 Tomas Hozza <thozza@redhat.com> - 1.14-17 |
||||
- Fix segfault when Digest Authentication header is missing 'qop' part (#1545310) |
||||
|
||||
* Tue Oct 24 2017 Tomas Hozza <thozza@redhat.com> - 1.14-16 |
||||
- Fixed various security flaws (CVE-2017-13089, CVE-2017-13090) |
||||
|
||||
* Fri May 05 2017 Tomas Hozza <thozza@redhat.com> - 1.14-15 |
||||
- Added TLSv1_1 and TLSv1_2 as secure-protocol values to help (#1439811) |
||||
- Fixed synchronization in randomly failing unit test Test-proxied-https-auth (#1448440) |
||||
|
||||
* Wed Apr 12 2017 Tomas Hozza <thozza@redhat.com> - 1.14-14 |
||||
- TLS v1.1 and v1.2 can now be specified with --secure-protocol option (#1439811) |
||||
|
||||
* Mon Jun 20 2016 Tomas Hozza <thozza@redhat.com> - 1.14-13 |
||||
- Fix CVE-2016-4971 (#1345778) |
||||
- Added support for non-ASCII URLs (Related: CVE-2016-4971) |
||||
|
||||
* Mon Mar 21 2016 Tomas Hozza <thozza@redhat.com> - 1.14-12 |
||||
- Fix wget to include Host header on CONNECT as required by HTTP 1.1 (#1203384) |
||||
- Run internal test suite during build (#1295846) |
||||
- Fix -nv being documented as synonym for two options (#1147572) |
||||
|
||||
* Fri Oct 24 2014 Tomas Hozza <thozza@redhat.com> - 1.14-11 |
||||
- Fix CVE-2014-4877 wget: FTP symlink arbitrary filesystem access (#1156136) |
||||
|
||||
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.14-10 |
||||
- Mass rebuild 2014-01-24 |
||||
|
||||
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.14-9 |
||||
- Mass rebuild 2013-12-27 |
||||
|
||||
* Mon Jul 15 2013 Tomas Hozza <thozza@redhat.com> - 1.14-8 |
||||
- Fix deadcode and possible use of NULL in vprintf (#913153) |
||||
- Add documentation for --regex-type and --preserve-permissions |
||||
- Fix --preserve-permissions to work as documented (and expected) |
||||
- Fix bug when authenticating using user:password@url syntax (#912358) |
||||
- Document and fix --backups option |
||||
|
||||
* Wed Jul 10 2013 Tomas Hozza <thozza@redhat.com> - 1.14-7 |
||||
- Fix double free of iri->orig_url (#981778) |
||||
|
||||
* Mon Jun 24 2013 Tomas Hozza <thozza@redhat.com> - 1.14-6 |
||||
- add missing options accept-regex and reject-regex to man page |
||||
- fix errors in texi2pod introduced in Perl-5.18 |
||||
|
||||
* Fri Feb 22 2013 Tomas Hozza <thozza@redhat.com> - 1.14-5 |
||||
- Added BuildRequires: perl-podlators for pod2man |
||||
- Patched manpage to silent new Tex errors |
||||
- Resolves: (#914571) |
||||
|
||||
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.14-4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild |
||||
|
||||
* Thu Oct 11 2012 Tomas Hozza <thozza@redhat.com> 1.14-3 |
||||
- Added libuuid-devel to BuildRequires to use libuuid functions |
||||
in "src/warc.c" functions (#865421) |
||||
|
||||
* Wed Oct 10 2012 Tomas Hozza <thozza@redhat.com> 1.14-2 |
||||
- Added libidn-devel to BuildRequires to support IDN domains (#680394) |
||||
|
||||
* Thu Aug 09 2012 Karsten Hopp <karsten@redhat.com> 1.14-1 |
||||
- Update to wget-1.14 |
||||
|
||||
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.13.4-5 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild |
||||
|
||||
* Tue May 29 2012 Karsten Hopp <karsten@redhat.com> 1.13.4-4 |
||||
- fix timeout if http server doesn't answer to SSL handshake (#860727) |
||||
|
||||
* Tue May 15 2012 Karsten Hopp <karsten@redhat.com> 1.13.4-3 |
||||
- add virtual provides per https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries |
||||
|
||||
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.13.4-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild |
||||
|
||||
* Fri Dec 16 2011 Jon Ciesla <limburgher@gmail.com> - 1.13.4-1 |
||||
- New upstream, BZ 730286. |
||||
- Modified path patch. |
||||
- subjectAltNames patch upstreamed. |
||||
- Specified openssl at config time. |
||||
|
||||
* Thu Jun 23 2011 Volker Fröhlich <volker27@gmx.at> - 1.12-4 |
||||
- Applied patch to accept subjectAltNames in X509 certificates (#674186) |
||||
- New URL (#658969) |
||||
|
||||
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild |
||||
|
||||
* Wed Nov 18 2009 Karsten Hopp <karsten@redhat.com> 1.12-2 |
||||
- don't provide /usr/share/info/dir |
||||
|
||||
* Tue Nov 17 2009 Karsten Hopp <karsten@redhat.com> 1.12-1 |
||||
- update to wget-1.12 |
||||
- fixes CVE-2009-3490 wget: incorrect verification of SSL certificate |
||||
with NUL in name |
||||
|
||||
* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 1.11.4-5 |
||||
- rebuilt with new openssl |
||||
|
||||
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.11.4-4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild |
||||
|
||||
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.11.4-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild |
||||
|
||||
* Sun Jan 18 2009 Tomas Mraz <tmraz@redhat.com> 1.11.4-2 |
||||
- rebuild with new openssl |
||||
|
||||
* Wed Aug 13 2008 Karsten Hopp <karsten@redhat.com> 1.11.4-1 |
||||
- update |
||||
|
||||
* Wed Jun 04 2008 Karsten Hopp <karsten@redhat.com> 1.11.3-1 |
||||
- wget-1.11.3, downgrades the combination of the -N and -O options |
||||
to a warning instead of an error |
||||
|
||||
* Fri May 09 2008 Karsten Hopp <karsten@redhat.com> 1.11.2-1 |
||||
- wget-1.11.2, fixes #179962 |
||||
|
||||
* Mon Mar 31 2008 Karsten Hopp <karsten@redhat.com> 1.11.1-1 |
||||
- update to bugfix release 1.11.1, fixes p.e. #433606 |
||||
|
||||
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.11-2 |
||||
- Autorebuild for GCC 4.3 |
||||
|
||||
* Tue Dec 04 2007 Karsten Hopp <karsten@redhat.com> 1.10.2-17 |
||||
- rebuild to pick up new openssl SONAME |
||||
|
||||
* Mon Aug 27 2007 Karsten Hopp <karsten@redhat.com> 1.10.2-16 |
||||
- fix license tag |
||||
- rebuild |
||||
|
||||
* Mon Feb 12 2007 Karsten Hopp <karsten@redhat.com> 1.10.2-15 |
||||
- fix discarding of expired cookies |
||||
- escape non-printable characters |
||||
- drop to11 patch for now (#223754, #227853, #227498) |
||||
|
||||
* Mon Feb 05 2007 Karsten Hopp <karsten@redhat.com> 1.10.2-14 |
||||
- shut up rpmlint, even though xx isn't a macro |
||||
|
||||
* Mon Feb 05 2007 Karsten Hopp <karsten@redhat.com> 1.10.2-13 |
||||
- merge review changes (#226538) |
||||
- use version/release/... in buildroot tag |
||||
- remove BR perl |
||||
- use SMP flags |
||||
- use make install instead of %%makeinstall |
||||
- include copy of license |
||||
- use Requires(post)/Requires(preun) |
||||
- use optflags |
||||
- remove trailing dot from summary |
||||
- change tabs to spaces |
||||
|
||||
* Thu Jan 18 2007 Karsten Hopp <karsten@redhat.com> 1.10.2-12 |
||||
- don't abort (un)install scriptlets when _excludedocs is set (Ville Skyttä) |
||||
|
||||
* Wed Jan 10 2007 Karsten Hopp <karsten@redhat.com> 1.10.2-11 |
||||
- add fix for CVE-2006-6719 |
||||
|
||||
* Fri Dec 08 2006 Karsten Hopp <karsten@redhat.com> 1.10.2-10 |
||||
- fix repeated downloads (Tomas Heinrich, #186195) |
||||
|
||||
* Thu Dec 07 2006 Karsten Hopp <karsten@redhat.com> 1.10.2-9 |
||||
- add distflag, rebuild |
||||
|
||||
* Thu Dec 07 2006 Karsten Hopp <karsten@redhat.com> 1.10.2-8 |
||||
- Resolves: #218211 |
||||
fix double free corruption |
||||
|
||||
* Sun Oct 01 2006 Jesse Keating <jkeating@redhat.com> - 1.10.2-7 |
||||
- rebuilt for unwind info generation, broken in gcc-4.1.1-21 |
||||
|
||||
* Mon Sep 25 2006 Karsten Hopp <karsten@redhat.de> 1.10.2-6 |
||||
- fix resumed downloads (#205723) |
||||
|
||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 1.10.2-5.1 |
||||
- rebuild |
||||
|
||||
* Thu Jun 29 2006 Karsten Hopp <karsten@redhat.de> 1.10.2-5 |
||||
- updated german translations from Robert Scheck |
||||
|
||||
* Tue Jun 27 2006 Karsten Hopp <karsten@redhat.de> 1.10.2-4 |
||||
- upstream patches |
||||
|
||||
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.10.2-3.2.1 |
||||
- bump again for double-long bug on ppc(64) |
||||
|
||||
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.10.2-3.2 |
||||
- rebuilt for new gcc4.1 snapshot and glibc changes |
||||
|
||||
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Thu Nov 10 2005 Tomas Mraz <tmraz@redhat.com> 1.10.2-3 |
||||
- rebuilt against new openssl |
||||
|
||||
* Tue Oct 25 2005 Karsten Hopp <karsten@redhat.de> 1.10.2-2 |
||||
- use %%{_sysconfdir} (#171555) |
||||
|
||||
* Sat Oct 15 2005 Florian La Roche <laroche@redhat.com> |
||||
- 1.10.2 |
||||
|
||||
* Thu Sep 08 2005 Karsten Hopp <karsten@redhat.de> 1.10.1-7 |
||||
- fix builtin help of --load-cookies / --save-cookies (#165408) |
||||
|
||||
* Wed Sep 07 2005 Karsten Hopp <karsten@redhat.de> 1.10.1-6 |
||||
- convert changelog to UTF-8 (#159585) |
||||
|
||||
* Mon Sep 05 2005 Karsten Hopp <karsten@redhat.de> 1.10.1-5 |
||||
- update |
||||
- drop patches which are already in the upstream sources |
||||
|
||||
* Wed Jul 13 2005 Karsten Hopp <karsten@redhat.de> 1.10-5 |
||||
- update german translation |
||||
|
||||
* Mon Jul 11 2005 Karsten Hopp <karsten@redhat.de> 1.10-4 |
||||
- update german translation (Robert Scheck) |
||||
|
||||
* Tue Jul 05 2005 Karsten Hopp <karsten@redhat.de> 1.10-3 |
||||
- fix minor documentation bug |
||||
- fix --no-cookies crash |
||||
|
||||
* Mon Jul 04 2005 Karsten Hopp <karsten@redhat.de> 1.10-2 |
||||
- update to wget-1.10 |
||||
- drop passive-ftp patch, already in 1.10 |
||||
- drop CVS patch |
||||
- drop LFS patch, similar fix in 1.10 |
||||
- drop protdir patch, similar fix in 1.10 |
||||
- drop actime patch, already in 1.10 |
||||
|
||||
* Wed Mar 02 2005 Karsten Hopp <karsten@redhat.de> 1.9.1-22 |
||||
- build with gcc-4 |
||||
|
||||
* Wed Feb 02 2005 Karsten Hopp <karsten@redhat.de> 1.9.1-21 |
||||
- remove old copy of the manpage (#146875, #135597) |
||||
- fix garbage in manpage (#117519) |
||||
|
||||
* Tue Feb 01 2005 Karsten Hopp <karsten@redhat.de> 1.9.1-20 |
||||
- texi2pod doesn't handle texinfo xref's. rewrite some lines so that |
||||
the man page doesn't have incomplete sentences anymore (#140470) |
||||
|
||||
* Mon Jan 31 2005 Karsten Hopp <karsten@redhat.de> 1.9.1-19 |
||||
- Don't set actime to access time of the remote file or tmpwatch might |
||||
remove the file again (#146440). Set it to the current time instead. |
||||
timestamping checks only modtime, so this should be ok. |
||||
|
||||
* Thu Jan 20 2005 Karsten Hopp <karsten@redhat.de> 1.9.1-18 |
||||
- add support for --protocol-directories option as documented |
||||
in the man page (Ville Skyttä, #145571) |
||||
|
||||
* Wed Sep 29 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-17 |
||||
- additional LFS patch from Leonid Petrov to fix file lengths in |
||||
http downloads |
||||
|
||||
* Thu Sep 16 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-16 |
||||
- more fixes |
||||
|
||||
* Tue Sep 14 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-15 |
||||
- added strtol fix from Leonid Petrov, reenable LFS |
||||
|
||||
* Tue Sep 14 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-14 |
||||
- buildrequires gettext (#132519) |
||||
|
||||
* Wed Sep 01 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-13 |
||||
- disable LFS patch for now, it breaks normal downloads (123524#c15) |
||||
|
||||
* Tue Aug 31 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-12 |
||||
- move largefile stuff inside the configure script, it didn't |
||||
get appended to CFLAGS |
||||
|
||||
* Tue Aug 31 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-11 |
||||
- rebuild |
||||
|
||||
* Tue Aug 31 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-10 |
||||
- fix patch |
||||
|
||||
* Sun Aug 29 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-9 |
||||
- more cleanups of the manpage (#117519) |
||||
|
||||
* Fri Aug 27 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-8 |
||||
- rebuild |
||||
|
||||
* Fri Aug 27 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-7 |
||||
- clean up manpage (#117519) |
||||
- buildrequire texinfo (#123780) |
||||
- LFS patch, based on wget-LFS-20040630.patch from Leonid Petrov |
||||
(#123524, #124628, #115348) |
||||
|
||||
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Thu Mar 11 2004 Karsten Hopp <karsten@redhat.de> 1.9.1-3 |
||||
- fix documentation (#117517) |
||||
|
||||
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Fri Nov 28 2003 Karsten Hopp <karsten@redhat.de> 1.9.1-3 |
||||
- update to -stable CVS |
||||
- document the passive ftp default |
||||
|
||||
* Fri Nov 28 2003 Karsten Hopp <karsten@redhat.de> 1.9.1-2 |
||||
- add patch from -stable CVS |
||||
|
||||
* Fri Nov 28 2003 Karsten Hopp <karsten@redhat.de> 1.9.1-1 |
||||
- update to 1.9.1 |
||||
- remove obsolete patches |
||||
|
||||
* Mon Aug 04 2003 Karsten Hopp <karsten@redhat.de> 1.8.2-15.3 |
||||
- fix variable usage |
||||
|
||||
* Tue Jul 22 2003 Nalin Dahyabhai <nalin@redhat.com> 1.8.2-15.2 |
||||
- rebuild |
||||
|
||||
* Wed Jun 25 2003 Karsten Hopp <karsten@redhat.de> 1.8.2-15.1 |
||||
- rebuilt |
||||
|
||||
* Wed Jun 25 2003 Karsten Hopp <karsten@redhat.de> 1.8.2-15 |
||||
- default to passive-ftp (#97996) |
||||
|
||||
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Wed Jun 04 2003 Karsten Hopp <karsten@redhat.de> 1.8.2-13 |
||||
- rebuild |
||||
|
||||
* Wed Jun 04 2003 Karsten Hopp <karsten@redhat.de> 1.8.2-12 |
||||
- merge debian patch for long URLs |
||||
- cleanup filename patch |
||||
|
||||
* Sun May 11 2003 Karsten Hopp <karsten@redhat.de> 1.8.2-11 |
||||
- rebuild |
||||
|
||||
* Sun May 11 2003 Karsten Hopp <karsten@redhat.de> 1.8.2-10 |
||||
- upstream fix off-by-one error |
||||
|
||||
* Wed Jan 22 2003 Tim Powers <timp@redhat.com> |
||||
- rebuilt |
||||
|
||||
* Tue Jan 7 2003 Nalin Dahyabhai <nalin@redhat.com> 1.8.2-8 |
||||
- rebuild |
||||
|
||||
* Fri Dec 13 2002 Nalin Dahyabhai <nalin@redhat.com> |
||||
- use openssl pkg-config data, if present |
||||
- don't bomb out when building with newer openssl |
||||
|
||||
* Thu Dec 12 2002 Tim Powers <timp@redhat.com> 1.8.2-7 |
||||
- rebuild on all arches |
||||
|
||||
* Tue Nov 19 2002 Tim Powers <timp@redhat.com> |
||||
- rebuild on all arches |
||||
|
||||
* Fri Oct 4 2002 Karsten Hopp <karsten@redhat.de> 1.8.2-5 |
||||
- fix directory traversal bug |
||||
|
||||
* Wed Jul 24 2002 Trond Eivind Glomsrød <teg@redhat.com> 1.8.2-3 |
||||
- Don't segfault when downloading URLs A-B-A (A-A-B worked) #49859 |
||||
|
||||
* Fri Jun 21 2002 Tim Powers <timp@redhat.com> |
||||
- automated rebuild |
||||
|
||||
* Wed May 29 2002 Florian La Roche <Florian.LaRoche@redhat.de> |
||||
- update to 1.8.2 (bug-fix release) |
||||
|
||||
* Thu May 23 2002 Tim Powers <timp@redhat.com> |
||||
- automated rebuild |
||||
|
||||
* Mon Apr 29 2002 Florian La Roche <Florian.LaRoche@redhat.de> |
||||
- remove s390 patch, not needed anymore |
||||
|
||||
* Wed Feb 27 2002 Trond Eivind Glomsrød <teg@redhat.com> 1.8.1-4 |
||||
- Rebuild |
||||
|
||||
* Wed Jan 09 2002 Tim Powers <timp@redhat.com> |
||||
- automated rebuild |
||||
|
||||
* Fri Dec 28 2001 Florian La Roche <Florian.LaRoche@redhat.de> |
||||
- add hack to not link against libmd5, even if available |
||||
|
||||
* Fri Dec 28 2001 Florian La Roche <Florian.LaRoche@redhat.de> |
||||
- update to 1.8.1 |
||||
|
||||
* Thu Dec 13 2001 Florian La Roche <Florian.LaRoche@redhat.de> |
||||
- update to 1.8 |
||||
- also include md5global to get it compile |
||||
|
||||
* Sun Nov 18 2001 Florian La Roche <Florian.LaRoche@redhat.de> |
||||
- update to 1.7.1 |
||||
|
||||
* Wed Sep 5 2001 Phil Knirsch <phil@redhat.de> 1.7-3 |
||||
- Added va_args patch required for S390. |
||||
|
||||
* Mon Sep 3 2001 Trond Eivind Glomsrød <teg@redhat.com> 1.7-2 |
||||
- Configure with ssl support (duh - #53116) |
||||
- s/Copyright/License/ |
||||
|
||||
* Wed Jun 6 2001 Trond Eivind Glomsrød <teg@redhat.com> |
||||
- 1.7 |
||||
- Require perl for building (to get man pages) |
||||
- Don't include the Japanese po file, it's now included |
||||
- Use %%{_tmppath} |
||||
- no patches necessary |
||||
- Make /etc/wgetrc noreplace |
||||
- More docs |
||||
|
||||
* Tue Jan 30 2001 Trond Eivind Glomsrød <teg@redhat.com> |
||||
- Norwegian isn't a iso-8859-2 locale, neither is Danish. |
||||
This fixes #15025. |
||||
- langify |
||||
|
||||
* Sat Jan 6 2001 Bill Nottingham <notting@redhat.com> |
||||
- escape %%xx characters before fnmatch (#23475, patch from alane@geeksrus.net) |
||||
|
||||
* Fri Jan 5 2001 Bill Nottingham <notting@redhat.com> |
||||
- update to 1.6, fix patches accordingly (#23412) |
||||
- fix symlink patch (#23411) |
||||
|
||||
* Mon Dec 18 2000 Yukihiro Nakai <ynakai@redhat.com> |
||||
- Add Japanese and Korean Resources |
||||
|
||||
* Tue Aug 1 2000 Bill Nottingham <notting@redhat.com> |
||||
- setlocale for LC_CTYPE too, or else all the translations think their |
||||
characters are unprintable. |
||||
|
||||
* Thu Jul 13 2000 Prospector <bugzilla@redhat.com> |
||||
- automatic rebuild |
||||
|
||||
* Sun Jun 11 2000 Bill Nottingham <notting@redhat.com> |
||||
- build in new environment |
||||
|
||||
* Mon Jun 5 2000 Bernhard Rosenkraenzer <bero@redhat.com> |
||||
- FHS compliance |
||||
|
||||
* Thu Feb 3 2000 Bill Nottingham <notting@redhat.com> |
||||
- handle compressed man pages |
||||
|
||||
* Thu Aug 26 1999 Jeff Johnson <jbj@redhat.com> |
||||
- don't permit chmod 777 on symlinks (#4725). |
||||
|
||||
* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com> |
||||
- auto rebuild in the new build environment (release 4) |
||||
|
||||
* Fri Dec 18 1998 Bill Nottingham <notting@redhat.com> |
||||
- build for 6.0 tree |
||||
- add Provides |
||||
|
||||
* Sat Oct 10 1998 Cristian Gafton <gafton@redhat.com> |
||||
- strip binaries |
||||
- version 1.5.3 |
||||
|
||||
* Sat Jun 27 1998 Jeff Johnson <jbj@redhat.com> |
||||
- updated to 1.5.2 |
||||
|
||||
* Thu Apr 30 1998 Cristian Gafton <gafton@redhat.com> |
||||
- modified group to Applications/Networking |
||||
|
||||
* Wed Apr 22 1998 Cristian Gafton <gafton@redhat.com> |
||||
- upgraded to 1.5.0 |
||||
- they removed the man page from the distribution (Duh!) and I added it back |
||||
from 1.4.5. Hey, removing the man page is DUMB! |
||||
|
||||
* Fri Nov 14 1997 Cristian Gafton <gafton@redhat.com> |
||||
- first build against glibc |
Loading…
Reference in new issue