From 48bd9fdb2d904cbdd8267c20d07d424b0cb43ae9 Mon Sep 17 00:00:00 2001 From: Colum Paget Date: Fri, 23 Jun 2017 16:24:07 +0100 Subject: [PATCH] detects 403 forbidden on downloads. SSL bug fixed --- Makefile | 8 ++++---- download.c | 8 +++++++- libUseful-2.8/Makefile | 4 ++-- libUseful-2.8/file.c | 8 ++++++-- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index c271c61..7935b32 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,12 @@ -CC = cc +CC = gcc VERSION = 1.2.1 CFLAGS = -g -O2 -LIBS = -lz -INSTALL=/usr/bin/install -c +LIBS = -lcrypto -lssl -lz +INSTALL=/bin/install -c prefix=/usr/local bindir=$(prefix)${exec_prefix}/bin DESTDIR= -FLAGS=$(CFLAGS) -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_LIBZ=1 -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 +FLAGS=$(CFLAGS) -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_LIBZ=1 -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DHAVE_LIBSSL=1 -DHAVE_LIBCRYPTO=1 OBJ=common.o settings.o containerfiles.o outputfiles.o servicetypes.o extract_text.o download.o display.o players.o selectformat.o ehow.o ign.o youtube.o all: $(OBJ) diff --git a/download.c b/download.c index fd50318..cce43bf 100755 --- a/download.c +++ b/download.c @@ -15,7 +15,7 @@ ListNode *DownloadQueue=NULL; STREAM *ConnectAndSendHeaders(const char *URL, int Flags, double BytesRange) { STREAM *Con; -char *Tempstr=NULL, *Method=NULL, *ptr; +char *Tempstr=NULL, *Method=NULL, *ptr, *rcode; HTTPInfoStruct *Info; static char *LastPage=NULL; @@ -44,6 +44,12 @@ if ((! Con) && (! (Flags & FLAG_QUIET))) if (StrValid(Info->ResponseCode)) fprintf(stderr,"ERROR: Server %s item '%s' not retrieved\nResponseCode: %s\n",Info->Host, Info->Doc,Info->ResponseCode); else fprintf(stderr,"ERROR: Connection failed to %s can't get file=%s \n",Info->Host, Info->Doc); } +else if (StrValid(Info->ResponseCode) && (*Info->ResponseCode !='2')) +{ + fprintf(stderr,"ERROR: Document unavailable. HTTP-Response: %s \n",STREAMGetValue(Con, "HTTP:ResponseCode")); + STREAMClose(Con); + Con=NULL; +} else if (Flags & FLAG_DEBUG) { ptr=STREAMGetValue(Con, "SSL-Cipher"); diff --git a/libUseful-2.8/Makefile b/libUseful-2.8/Makefile index 0c2eb3d..cc4d01d 100644 --- a/libUseful-2.8/Makefile +++ b/libUseful-2.8/Makefile @@ -1,8 +1,8 @@ CC = gcc VERSION = 0.0.1 CFLAGS = -g -O2 -LIBS = -lc -lc -lc -lc -FLAGS=$(LDFLAGS) $(CPPFLAGS) $(CFLAGS) -fPIC -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -D_FILE_OFFSET_BITS=64 -DHAVE_LIBC=1 -DHAVE_PTSNAME_R=1 -DHAVE_LIBC=1 -DHAVE_UNSHARE=1 -DHAVE_LIBC=1 -DHAVE_UMOUNT2=1 -DHAVE_LIBC=1 -DHAVE_UMOUNT=1 -DHAVE_MKOSTMP=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DUSE_SENDFILE=1 -DHAVE_OSS=1 -DHAVE_MADVISE -DHAVE_MADVISE_NOFORK -DHAVE_MADVISE_DONTDUMP -DHAVE_MLOCK +LIBS = -lz -lcrypto -lssl -lc -lc -lc -lc -lc +FLAGS=$(LDFLAGS) $(CPPFLAGS) $(CFLAGS) -fPIC -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -D_FILE_OFFSET_BITS=64 -DHAVE_LIBC=1 -DHAVE_PTSNAME_R=1 -DHAVE_LIBC=1 -DHAVE_UNSHARE=1 -DHAVE_LIBC=1 -DHAVE_UMOUNT2=1 -DHAVE_LIBC=1 -DHAVE_UMOUNT=1 -DHAVE_LIBC=1 -DHAVE_MKOSTEMP=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DUSE_SENDFILE=1 -DHAVE_LIBSSL=1 -DHAVE_LIBCRYPTO=1 -DHAVE_EVP_BF_CBC=1 -DHAVE_EVP_RC2_CBC=1 -DHAVE_EVP_RC4=1 -DHAVE_EVP_DES_CBC=1 -DHAVE_EVP_DESX_CBC=1 -DHAVE_EVP_CAST5_CBC=1 -DHAVE_EVP_IDEA_CBC=1 -DHAVE_EVP_AES_128_CBC=1 -DHAVE_EVP_AES_256_CBC=1 -DUSE_OPENSSL_ADD_ALL_ALGORITHMS=1 -DHAVE_LIBZ=1 -DHAVE_OSS=1 -DHAVE_MADVISE -DHAVE_MADVISE_NOFORK -DHAVE_MADVISE_DONTDUMP -DHAVE_MLOCK prefix=/usr/local OBJ=string.o list.o socket.o unix_socket.o file.o tar.o Terminal.o FileSystem.o GeneralFunctions.o DataProcessing.o EncryptedFiles.o g711.o sound.o pty.o Log.o http.o inet.o expect.o base64.o crc32.o md5c.o sha1.o sha2.o whirlpool.o jh_ref.o Hash.o ssh.o Compression.o oauth.o libsettings.o Vars.o Time.o Markup.o SpawnPrograms.o Tokenizer.o PatternMatch.o URL.o DataParser.o ConnectionChain.o openssl.o Process.o Encodings.o RawData.o securemem.o diff --git a/libUseful-2.8/file.c b/libUseful-2.8/file.c index 83a0de9..69f6780 100755 --- a/libUseful-2.8/file.c +++ b/libUseful-2.8/file.c @@ -1012,7 +1012,11 @@ else diff=0; } -if (S->InStart > (S->BuffSize / 2)) +//if buffer is half full, or full 'cept for space at the start, then make room +if ( + (S->InStart > (S->BuffSize / 2)) || + ((S->InEnd >= S->BuffSize) && (S->InStart > 0)) + ) { memmove(S->InputBuff,S->InputBuff + S->InStart,diff); S->InStart=0; @@ -1081,7 +1085,7 @@ if (read_result==0) if (S->State & SS_SSL) { read_result=SSL_read((SSL *) SSL_CTX, tmpBuff, S->BuffSize-S->InEnd); - S->State |= SS_EMBARGOED; +// S->State |= SS_EMBARGOED; } else #endif