Compare commits

...

4 Commits
v16.1 ... v16.3

Author SHA1 Message Date
Andrey Prygunkov
050dc8d55f updated version string to "16.3" 2015-10-29 20:59:27 +01:00
Andrey Prygunkov
4a5063c14e #100: fixed: downloads may sometimes fail due to incorrect decoding of articles 2015-10-28 18:09:29 +01:00
Andrey Prygunkov
665645b510 updated version string to "16.2" 2015-10-24 15:26:50 +02:00
Andrey Prygunkov
eb87111204 fixed #100: workaround to deal with malformed responses
…which still may contain useful data.
2015-10-24 15:13:04 +02:00
7 changed files with 32 additions and 17 deletions

View File

@@ -1,3 +1,11 @@
nzbget-16.3:
- fixed: certain downloads may fail due to a bug in the workaround
implemented in v16.2.
nzbget-16.2:
- implemented workaround to deal with malformed news server responses,
which may still contain useful data.
nzbget-16.1:
- fixed issues with reverse proxies;
- fixed unpack failure on older AMD CPUs, when installed via

20
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for nzbget 16.1.
# Generated by GNU Autoconf 2.61 for nzbget 16.3.
#
# Report bugs to <hugbug@users.sourceforge.net>.
#
@@ -574,8 +574,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='nzbget'
PACKAGE_TARNAME='nzbget'
PACKAGE_VERSION='16.1'
PACKAGE_STRING='nzbget 16.1'
PACKAGE_VERSION='16.3'
PACKAGE_STRING='nzbget 16.3'
PACKAGE_BUGREPORT='hugbug@users.sourceforge.net'
ac_unique_file="daemon/main/nzbget.cpp"
@@ -1223,7 +1223,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures nzbget 16.1 to adapt to many kinds of systems.
\`configure' configures nzbget 16.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1289,7 +1289,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of nzbget 16.1:";;
short | recursive ) echo "Configuration of nzbget 16.3:";;
esac
cat <<\_ACEOF
@@ -1421,7 +1421,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
nzbget configure 16.1
nzbget configure 16.3
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1435,7 +1435,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by nzbget $as_me 16.1, which was
It was created by nzbget $as_me 16.3, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2105,7 +2105,7 @@ fi
# Define the identity of the package.
PACKAGE='nzbget'
VERSION='16.1'
VERSION='16.3'
cat >>confdefs.h <<_ACEOF
@@ -10642,7 +10642,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by nzbget $as_me 16.1, which was
This file was extended by nzbget $as_me 16.3, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -10695,7 +10695,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
nzbget config.status 16.1
nzbget config.status 16.3
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

View File

@@ -23,7 +23,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(nzbget, 16.1, hugbug@users.sourceforge.net)
AC_INIT(nzbget, 16.3, hugbug@users.sourceforge.net)
AC_CONFIG_AUX_DIR(posix)
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_SRCDIR([daemon/main/nzbget.cpp])

View File

@@ -452,9 +452,16 @@ ArticleDownloader::EStatus ArticleDownloader::Download()
}
}
}
else if (m_eFormat == Decoder::efUnknown && g_pOptions->GetDecode())
if (m_eFormat == Decoder::efUnknown && g_pOptions->GetDecode())
{
m_eFormat = Decoder::DetectFormat(line, iLen);
m_eFormat = Decoder::DetectFormat(line, iLen, bBody);
if (m_eFormat != Decoder::efUnknown)
{
// sometimes news servers misbehave and send article body without new line separator between headers and body
// if we found decoder signature we know the body is already arrived
bBody = true;
}
}
// write to output file

View File

@@ -65,14 +65,14 @@ void Decoder::Clear()
m_szArticleFilename = NULL;
}
Decoder::EFormat Decoder::DetectFormat(const char* buffer, int len)
Decoder::EFormat Decoder::DetectFormat(const char* buffer, int len, bool inBody)
{
if (!strncmp(buffer, "=ybegin ", 8))
{
return efYenc;
}
if ((len == 62 || len == 63) && (buffer[62] == '\n' || buffer[62] == '\r') && *buffer == 'M')
if (inBody && (len == 62 || len == 63) && (buffer[62] == '\n' || buffer[62] == '\r') && *buffer == 'M')
{
return efUx;
}

View File

@@ -58,7 +58,7 @@ public:
virtual void Clear();
virtual int DecodeBuffer(char* buffer, int len) = 0;
const char* GetArticleFilename() { return m_szArticleFilename; }
static EFormat DetectFormat(const char* buffer, int len);
static EFormat DetectFormat(const char* buffer, int len, bool inBody);
};
class YDecoder: public Decoder

View File

@@ -68,7 +68,7 @@
/* Define to 1 if you have the <regex.h> header file. */
#define HAVE_REGEX_H 1
#define VERSION "16.1"
#define VERSION "16.3"
/* Suppress warnings */
#define _CRT_SECURE_NO_DEPRECATE