/* WebDownloader for X-Window
* Copyright (C) 1999-2002 Koshelev Maxim
* This Program is free but not GPL!!! You can't modify it
* without agreement with author. You can't distribute modified
* program but you can distribute unmodified program.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef T_FTP_DOWNLOAD
#define T_FTP_DOWNLOAD
#include "liststr.h"
#include "ftp.h"
#include "download.h"
class tFtpDownload:public tDownloader{
protected:
tFtpClient *FTP;
tStringList *DIR,*list;
d4x::Path TMP_FILEPATH;
int CWDFlag;
int DONT_CWD;
int change_dir();
int reconnect();
int download_dir();
int ftp_get_size(tStringList *l);
int ftp_get_size_no_sdc(tStringList *l);
void print_error(int error_code);
fsize_t ls_answer_short();
fsize_t ls_answer_long();
int is_dir();
public:
tFtpDownload();
tFtpDownload(tWriterLoger *log);
int init(const d4x::URL &hostinfo,tCfg *cfg,d4x::SocketPtr s=d4x::SocketPtr());
void init_download(const std::string &path,const std::string &file);
int download(fsize_t len);
fsize_t get_size_only();
fsize_t get_size();
void done();
void dont_cwd();
fsize_t get_start_size();
fsize_t get_readed();
int get_child_status();
int reget();
fsize_t another_way_get_size();
char *get_new_url();
d4x::SocketPtr export_ctrl_socket();
tStringList *dir();
~tFtpDownload();
};
int ftp_type_from_str(char *data);
void ftp_extract_link(char *src,char *dst);
void ftp_cut_string_list(char *src,tFileInfo *dst,int flag);
#endif
syntax highlighted by Code2HTML, v. 0.9.1