From 02b7ddb1404fa3969bceb03a5f35107884027ba6 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 16 Aug 2006 12:16:46 +0200 Subject: * methods/http.cc: - check for incorrect proxy settings more carefully --- methods/http.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'methods') diff --git a/methods/http.cc b/methods/http.cc index 341de94e3..c6623c46f 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -657,7 +657,7 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) will glitch HTTP/1.0 proxies because they do not filter it out and pass it on, HTTP/1.1 says the connection should default to keep alive and we expect the proxy to do this */ - if (Proxy.empty() == true) + if (Proxy.empty() == true || Proxy.Host.empty()) sprintf(Buf,"GET %s HTTP/1.1\r\nHost: %s\r\nConnection: keep-alive\r\n", QuoteString(Uri.Path,"~").c_str(),ProperHost.c_str()); else -- cgit v1.2.3-70-g09d2 From 504bbe47e634f07c3de7a4868f63ee2ec142b9e4 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 12 Sep 2006 11:19:35 +0200 Subject: * methods/gzip.cc: - if it can't write (because var is full), close the FromGz stream to not hang in ExecWait() later --- debian/changelog | 3 +++ methods/gzip.cc | 1 + po/apt-all.pot | 80 ++++++++++++++++++++++++++++---------------------------- 3 files changed, 44 insertions(+), 40 deletions(-) (limited to 'methods') diff --git a/debian/changelog b/debian/changelog index e69c5091f..05d29662c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,9 @@ apt (0.6.45.1) unstable; urgency=low suggested/recommends packages (closes: #311619) * methods/http.cc: - check more careful for incorrect proxy settings (closes: #378868) + * methods/gzip.cc: + - don't hang when /var is full (closes: #341537), thanks to + Luis Rodrigo Gallardo Cruz for the patch -- diff --git a/methods/gzip.cc b/methods/gzip.cc index 809afc0fc..55ff33270 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -111,6 +111,7 @@ bool GzipMethod::Fetch(FetchItem *Itm) if (To.Write(Buffer,Count) == false) { Failed = true; + FromGz.Close(); break; } } diff --git a/po/apt-all.pot b/po/apt-all.pot index 095de7f6d..352f2f5a6 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-08-09 16:17+0200\n" +"POT-Creation-Date: 2006-09-12 11:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -148,7 +148,7 @@ msgstr "" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "" @@ -705,11 +705,11 @@ msgstr "" msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851 msgid "Unable to lock the download directory" msgstr "" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "" @@ -738,7 +738,7 @@ msgstr "" msgid "After unpacking %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989 #, c-format msgid "Couldn't determine free space in %s" msgstr "" @@ -772,7 +772,7 @@ msgstr "" msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" @@ -781,7 +781,7 @@ msgstr "" msgid "Some files failed to download" msgstr "" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041 msgid "Download complete and in download only mode" msgstr "" @@ -938,144 +938,144 @@ msgstr "" msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1685 +#: cmdline/apt-get.cc:1692 msgid "Suggested packages:" msgstr "" -#: cmdline/apt-get.cc:1686 +#: cmdline/apt-get.cc:1693 msgid "Recommended packages:" msgstr "" -#: cmdline/apt-get.cc:1706 +#: cmdline/apt-get.cc:1713 msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "" -#: cmdline/apt-get.cc:1714 +#: cmdline/apt-get.cc:1721 msgid "Done" msgstr "" -#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 +#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:1887 +#: cmdline/apt-get.cc:1894 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 +#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:1961 +#: cmdline/apt-get.cc:1968 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1985 +#: cmdline/apt-get.cc:1992 #, c-format msgid "You don't have enough free space in %s" msgstr "" -#: cmdline/apt-get.cc:1990 +#: cmdline/apt-get.cc:1997 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:1993 +#: cmdline/apt-get.cc:2000 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:1999 +#: cmdline/apt-get.cc:2006 #, c-format msgid "Fetch source %s\n" msgstr "" -#: cmdline/apt-get.cc:2030 +#: cmdline/apt-get.cc:2037 msgid "Failed to fetch some archives." msgstr "" -#: cmdline/apt-get.cc:2058 +#: cmdline/apt-get.cc:2065 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2070 +#: cmdline/apt-get.cc:2077 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2071 +#: cmdline/apt-get.cc:2078 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2088 +#: cmdline/apt-get.cc:2095 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2107 +#: cmdline/apt-get.cc:2114 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2123 +#: cmdline/apt-get.cc:2130 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2151 +#: cmdline/apt-get.cc:2158 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2171 +#: cmdline/apt-get.cc:2178 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2223 +#: cmdline/apt-get.cc:2230 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2275 +#: cmdline/apt-get.cc:2282 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -#: cmdline/apt-get.cc:2310 +#: cmdline/apt-get.cc:2317 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2335 +#: cmdline/apt-get.cc:2342 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2349 +#: cmdline/apt-get.cc:2356 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2353 +#: cmdline/apt-get.cc:2360 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2385 +#: cmdline/apt-get.cc:2392 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2426 +#: cmdline/apt-get.cc:2433 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1490,12 +1490,12 @@ msgstr "" msgid "File not found" msgstr "" -#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 -#: methods/gzip.cc:142 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134 +#: methods/gzip.cc:143 msgid "Failed to stat" msgstr "" -#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140 msgid "Failed to set modification time" msgstr "" -- cgit v1.2.3-70-g09d2 From 84cc6f7364d31321698ab3182bcd10d575710a49 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Sat, 30 Sep 2006 14:14:04 +0200 Subject: * methods/gzip.cc: - just stop on empty files, don't call the extractor * debian/changelog: - merged the last debian upload - added entry for extractor --- debian/changelog | 9 ++++++++- methods/gzip.cc | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'methods') diff --git a/debian/changelog b/debian/changelog index 385c8ca23..a828d02c1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apt (0.6.46.1) unstable; urgency=low + + * methods/gzip.cc: + - deal with empty files + + -- + apt (0.6.46) unstable; urgency=low * debian/control: @@ -32,7 +39,7 @@ apt (0.6.46) unstable; urgency=low - reverted MMap use in the tagfile because it does not work across pipes (closes: #383487) - -- + -- Michael Vogt Thu, 21 Sep 2006 10:25:03 +0200 apt (0.6.45) unstable; urgency=low diff --git a/methods/gzip.cc b/methods/gzip.cc index 55ff33270..a8e816bf3 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -52,6 +52,13 @@ bool GzipMethod::Fetch(FetchItem *Itm) // Open the source and destination files FileFd From(Path,FileFd::ReadOnly); + // if the file is empty, just rename it and return + if(From.Size() == 0) + { + Rename(Path, Itm->DestFile); + return true; + } + int GzOut[2]; if (pipe(GzOut) < 0) return _error->Errno("pipe",_("Couldn't open pipe for %s"),Prog); -- cgit v1.2.3-70-g09d2 From 60a9e375317c42f6682704e2769b7b2776c7ec12 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Sat, 30 Sep 2006 16:30:42 +0200 Subject: * methods/gzip.cc: - fix invalid reanem --- methods/gzip.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'methods') diff --git a/methods/gzip.cc b/methods/gzip.cc index a8e816bf3..f732c0b86 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -55,7 +55,7 @@ bool GzipMethod::Fetch(FetchItem *Itm) // if the file is empty, just rename it and return if(From.Size() == 0) { - Rename(Path, Itm->DestFile); + rename(Path.c_str(), Itm->DestFile.c_str()); return true; } -- cgit v1.2.3-70-g09d2