// -*- mode: cpp; mode: fold -*-
-// Description /*{{{*/// $Id: ftp.h,v 1.2 1999/03/15 07:20:41 jgg Exp $
+// Description /*{{{*/// $Id: ftp.h,v 1.4 2001/03/06 07:15:29 jgg Exp $
+// $Id: ftp.h,v 1.4 2001/03/06 07:15:29 jgg Exp $
/* ######################################################################
FTP Aquire Method - This is the FTP aquire method for APT.
int DataFd;
int DataListenFd;
URI ServerName;
+ bool ForceExtended;
bool TryPassive;
bool Debug;
-
- struct sockaddr_in PasvAddr;
- struct sockaddr_in Peer;
+ struct addrinfo *PasvAddr;
+
+ // Generic Peer Address
+ struct sockaddr_storage PeerAddr;
+ socklen_t PeerAddrLen;
+
+ // Generic Server Address (us)
+ struct sockaddr_storage ServerAddr;
+ socklen_t ServerAddrLen;
+
// Private helper functions
bool ReadLine(string &Text);
bool Login();
public:
- bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;};
+ bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port && Other.User == ServerName.User && Other.Password == ServerName.Password; };
// Raw connection IO
bool ReadResp(unsigned int &Ret,string &Text);
bool Open(pkgAcqMethod *Owner);
void Close();
bool GoPasv();
+ bool ExtGoPasv();
// Query
bool Size(const char *Path,unsigned long &Size);
bool ModTime(const char *Path, time_t &Time);
bool Get(const char *Path,FileFd &To,unsigned long Resume,
- MD5Summation &MD5,bool &Missing);
+ Hashes &MD5,bool &Missing);
FTPConn(URI Srv);
~FTPConn();