11#define kLibraryVersion "@(#) LibNcFTP 3.0.6 (April 14, 2001)"
13#if defined(WIN32) || defined(_WINDOWS)
14# define longest_int LONGLONG
15# define longest_uint ULONGLONG
16# ifndef HAVE_LONG_LONG
17# define HAVE_LONG_LONG 1
19# ifndef SCANF_LONG_LONG
20# define SCANF_LONG_LONG "%I64d"
22# ifndef PRINTF_LONG_LONG
23# define PRINTF_LONG_LONG "%I64d"
25# ifndef PRINTF_LONG_LONG_I64D
26# define PRINTF_LONG_LONG_I64D 1
28# ifndef SCANF_LONG_LONG_I64D
29# define SCANF_LONG_LONG_I64D 1
40# if !defined(__ultrix) || !defined(XTI)
43# include <netinet/in.h>
65#define kLibraryMagic "LibNcFTP 3.0.6"
68#define longest_int long long
69#define longest_uint unsigned long long
73# define forever for ( ; ; )
98#if USE_SIO && !defined(_SReadlineInfo_)
99#define _SReadlineInfo_ 1
291#define kPrUpdateMsg 2
295#define kSendPortMode 0
296#define kPassiveMode 1
297#define kFallBackToSendPortMode 2
300#define kAcceptForWriting 00100
301#define kAcceptForReading 00101
302#define kNetWriting kAcceptForWriting
303#define kNetReading kAcceptForReading
308#define kResponseNoPrint 00001
309#define kResponseNoSave 00002
310#define kResponseNoProc 00002
312#define kDefaultFTPPort 21
314#define kDefaultFTPBufSize 32768
320#define kDefaultXferTimeout 600
321#define kDefaultConnTimeout 30
322#define kDefaultCtrlTimeout 135
323#define kDefaultAbortTimeout 10
328#define kDefaultXferTimeout (0)
329#define kDefaultConnTimeout (0)
330#define kDefaultCtrlTimeout (0)
331#define kDefaultAbortTimeout 10
336#define kSuggestedDefaultXferTimeout (0)
337#define kSuggestedDefaultConnTimeout 30
338#define kSuggestedDefaultCtrlTimeout 135
339#define kSuggestedAbortTimeout 10
341#define kDefaultMaxDials 3
342#define kDefaultRedialDelay 20
344#define kDefaultDataPortMode kSendPortMode
346#define kRedialStatusDialing 0
347#define kRedialStatusSleeping 1
350# define INADDR_NONE (0xffffffff)
353#define kTypeAscii 'A'
354#define kTypeBinary 'I'
355#define kTypeEbcdic 'E'
357#define kGlobChars "[*?"
358#define GLOBCHARSINSTR(a) (strpbrk(a, kGlobChars) != NULL)
362#define kRecursiveYes 1
363#define kRecursiveNo 0
373#define UNIMPLEMENTED_CMD(a) ((a == 500) || (a == 502) || (a == 504))
376#define kSizeUnknown ((longest_int) (-1))
377#define kModTimeUnknown ((time_t) (-1))
379#define kCommandAvailabilityUnknown (-1)
380#define kCommandAvailable 1
381#define kCommandNotAvailable 0
385#define kMalformedURL (-2)
388#define kFirewallNotInUse 0
389#define kFirewallUserAtSite 1
390#define kFirewallLoginThenUserAtSite 2
391#define kFirewallSiteSite 3
392#define kFirewallOpenSite 4
393#define kFirewallUserAtUserPassAtPass 5
394#define kFirewallFwuAtSiteFwpUserPass 6
395#define kFirewallUserAtSiteFwuPassFwp 7
396#define kFirewallLastType kFirewallUserAtSiteFwuPassFwp
399#define kPreferredMlsOpts (kMlsOptType | kMlsOptSize | kMlsOptModify | kMlsOptUNIXmode | kMlsOptUNIXowner | kMlsOptUNIXgroup | kMlsOptUNIXuid | kMlsOptUNIXgid | kMlsOptPerm)
401#define kMlsOptType 00001
402#define kMlsOptSize 00002
403#define kMlsOptModify 00004
404#define kMlsOptUNIXmode 00010
405#define kMlsOptUNIXowner 00020
406#define kMlsOptUNIXgroup 00040
407#define kMlsOptPerm 00100
408#define kMlsOptUNIXuid 00200
409#define kMlsOptUNIXgid 00400
410#define kMlsOptUnique 01000
417#define kChdirOnly 00000
418#define kChdirAndMkdir 00001
419#define kChdirAndGetCWD 00002
420#define kChdirOneSubdirAtATime 00004
423#define kConfirmResumeProcNotUsed 0
424#define kConfirmResumeProcSaidSkip 1
425#define kConfirmResumeProcSaidResume 2
426#define kConfirmResumeProcSaidOverwrite 3
427#define kConfirmResumeProcSaidAppend 4
428#define kConfirmResumeProcSaidBestGuess 5
429#define kConfirmResumeProcSaidCancel 6
432 const char *
volatile *localpath,
434 volatile time_t localmtime,
435 const char *
volatile remotepath,
437 volatile time_t remotetime,
442 const char *
volatile localpath,
444 volatile time_t localmtime,
445 const char *
volatile *remotepath,
447 volatile time_t remotetime,
451#define NoConfirmResumeDownloadProc ((ConfirmResumeDownloadProc) 0)
452#define NoConfirmResumeUploadProc ((ConfirmResumeUploadProc) 0)
453#define NoGetPassphraseProc ((FTPGetPassphraseProc) 0)
461#define kServerTypeUnknown 0
462#define kServerTypeWuFTPd 1
463#define kServerTypeNcFTPd 2
464#define kServerTypeProFTPD 3
465#define kServerTypeMicrosoftFTP 4
466#define kServerTypeWarFTPd 5
467#define kServerTypeServ_U 6
468#define kServerTypeWFTPD 7
469#define kServerTypeVFTPD 8
470#define kServerTypeFTP_Max 9
471#define kServerTypeRoxen 10
472#define kServerTypeNetWareFTP 11
473#define kServerTypeWS_FTP 12
476#if !defined(WIN32) && !defined(_WINDOWS) && !defined(closesocket)
477# define closesocket close
480#if !defined(WIN32) && !defined(_WINDOWS) && !defined(ioctlsocket)
481# define ioctlsocket ioctl
484#if defined(WIN32) || defined(_WINDOWS)
485# define LOCAL_PATH_DELIM '\\'
486# define LOCAL_PATH_DELIM_STR "\\"
487# define LOCAL_PATH_ALTDELIM '/'
488# define IsLocalPathDelim(c) ((c == LOCAL_PATH_DELIM) || (c == LOCAL_PATH_ALTDELIM))
489# define UNC_PATH_PREFIX "\\\\"
490# define IsUNCPrefixed(s) (IsLocalPathDelim(s[0]) && IsLocalPathDelim(s[1]))
492# define LOCAL_PATH_DELIM '/'
493# define LOCAL_PATH_DELIM_STR "/"
494# define StrFindLocalPathDelim(a) strchr(a, LOCAL_PATH_DELIM)
495# define StrRFindLocalPathDelim(a) strrchr(a, LOCAL_PATH_DELIM)
496# define StrRemoveTrailingLocalPathDelim StrRemoveTrailingSlashes
497# define IsLocalPathDelim(c) (c == LOCAL_PATH_DELIM)
498# define TVFSPathToLocalPath(s)
499# define LocalPathToTVFSPath(s)
507#ifndef _libncftp_ftp_c_
511#ifndef _libncftp_errno_c_
515#if (defined(__GNUC__)) && (__GNUC__ >= 2)
517# define UNUSED(a) a __attribute__ ((unused))
519# define LIBNCFTP_USE_VAR(a)
521# define LIBNCFTP_USE_VAR(a) gLibNcFTP_Uses_Me_To_Quiet_Variable_Unused_Warnings = (a == 0)
531int FTPChdir3(
FTPCIPtr cip,
const char *
const cdCwd,
char *
const newCwd,
const size_t newCwdSize,
int flags);
535#if (defined(__GNUC__)) && (__GNUC__ >= 2)
547int FTPGetFiles3(
const FTPCIPtr cip,
const char *
pattern,
const char *
const dstdir,
const int recurse,
int doGlob,
const int xtype,
const int resumeflag,
int appendflag,
const int deleteflag,
const int tarflag,
const ConfirmResumeDownloadProc resumeProc,
int reserved);
553int FTPList(
const FTPCIPtr cip,
const int outfd,
const int longMode,
const char *
const lsflag);
557int FTPMkdir(
const FTPCIPtr cip,
const char *
const newDir,
const int recurse);
558int FTPMkdir2(
const FTPCIPtr cip,
const char *
const newDir,
const int recurse,
const char *
const curDir);
562int FTPPutOneFile3(
const FTPCIPtr cip,
const char *
const file,
const char *
const dstfile,
const int xtype,
const int fdtouse,
const int appendflag,
const char *
const tmppfx,
const char *
const tmpsfx,
const int resumeflag,
const int deleteflag,
const ConfirmResumeUploadProc resumeProc,
int reserved);
563int FTPPutFiles3(
const FTPCIPtr cip,
const char *
const pattern,
const char *
const dstdir,
const int recurse,
const int doGlob,
const int xtype,
int appendflag,
const char *
const tmppfx,
const char *
const tmpsfx,
const int resumeflag,
const int deleteflag,
const ConfirmResumeUploadProc resumeProc,
int reserved);
565int FTPRename(
const FTPCIPtr cip,
const char *
const oldname,
const char *
const newname);
581char *
StrDup(
const char *);
587int MkDirs(
const char *
const,
int mode1);
588char *
GetPass(
const char *
const prompt);
591#if defined(WIN32) || defined(_WINDOWS)
598void WinSleep(
unsigned int seconds);
603#elif !defined(NcSignal)
604# define NcSignal signal
609int FTPGetOneFile2(
const FTPCIPtr cip,
const char *
const file,
const char *
const dstfile,
const int xtype,
const int fdtouse,
const int resumeflag,
const int appendflag);
611int FTPGetFiles2(
const FTPCIPtr cip,
const char *
const pattern,
const char *
const dstdir,
const int recurse,
const int doGlob,
const int xtype,
const int resumeflag,
const int appendflag);
615int FTPPutOneFile2(
const FTPCIPtr cip,
const char *
const file,
const char *
const dstfile,
const int xtype,
const int fdtouse,
const int appendflag,
const char *
const tmppfx,
const char *
const tmpsfx);
617int FTPPutFiles2(
const FTPCIPtr cip,
const char *
const pattern,
const char *
const dstdir,
const int recurse,
const int doGlob,
const int xtype,
const int appendflag,
const char *
const tmppfx,
const char *
const tmpsfx);
630#if (defined(__GNUC__)) && (__GNUC__ >= 2)
641#if (defined(__GNUC__)) && (__GNUC__ >= 2)
653int FTPFileExists2(
const FTPCIPtr cip,
const char *
const file,
const int tryMDTM,
const int trySIZE,
const int tryMLST,
const int trySTAT,
const int tryNLST);
655int BufferGets(
char *,
size_t,
int,
char *,
char **,
char **,
size_t);
682#if (defined(__GNUC__)) && (__GNUC__ >= 2)
#define gettimeofday(tv, tz)
void modtime(int argc, const char *argv[])
UINT(* handler)(MSIPACKAGE *)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
_In_ uint64_t _In_ uint64_t _In_ uint64_t _In_opt_ traverse_ptr * tp
GLuint GLuint GLsizei GLenum type
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLuint GLsizei bufsize
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
int WaitResponse(const FTPCIPtr, unsigned int)
int FTPPutFiles2(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob, const int xtype, const int appendflag, const char *const tmppfx, const char *const tmpsfx)
void URLCopyToken(char *, size_t, const char *, size_t)
int FTPCmd(const FTPCIPtr cip, const char *const cmdspec,...)
int FTPGetFiles2(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob, const int xtype, const int resumeflag, const int appendflag)
int FTPRemoteRecursiveFileList1(FTPCIPtr, char *const, FileInfoListPtr)
int FTPFtw(const FTPCIPtr cip, const char *const dir, FTPFtwProc proc, int maxdepth)
int FTPPutFilesAscii(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob)
int FTPMListOneFile(const FTPCIPtr cip, const char *const file, const MLstItemPtr mlip)
int RCmd(const FTPCIPtr, ResponsePtr, const char *,...)
int ConcatFileInfoList(FileInfoListPtr, FileInfoListPtr)
void InitFileInfoList(FileInfoListPtr)
int GetTelnetString(const FTPCIPtr, char *, size_t, FILE *, FILE *)
struct FTPConnectionInfo * FTPCIPtr
int FTPPutFiles(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob)
int FTPGetFiles3(const FTPCIPtr cip, const char *pattern, const char *const dstdir, const int recurse, int doGlob, const int xtype, const int resumeflag, int appendflag, const int deleteflag, const int tarflag, const ConfirmResumeDownloadProc resumeProc, int reserved)
int BufferGets(char *, size_t, int, char *, char **, char **, size_t)
int FTPOpenHostNoLogin(const FTPCIPtr cip)
int FTPRmdir(const FTPCIPtr cip, const char *const pattern, const int recurse, const int doGlob)
int ComputeRNames(FileInfoListPtr, const char *, int, int)
int FTPSymlink(const FTPCIPtr cip, const char *const lfrom, const char *const lto)
void FTPShutdownHost(const FTPCIPtr cip)
int FTPListToMemory(const FTPCIPtr cip, const char *const pattern, const LineListPtr llines, const char *const lsflags)
int FTPFileSizeAndModificationTime(const FTPCIPtr cip, const char *const file, longest_int *const size, const int type, time_t *const mdtm)
int FTPRemoteRecursiveFileList(FTPCIPtr, LineListPtr, FileInfoListPtr)
int FTPFileExistsStat(const FTPCIPtr cip, const char *const file)
#define StrRFindLocalPathDelim(a)
void GetHomeDir(char *, size_t)
struct SReadlineInfo SReadlineInfo
void InitLineList(LineListPtr)
LinePtr RemoveLine(LineListPtr, LinePtr)
int FTPListToMemory2(const FTPCIPtr cip, const char *const pattern, const LineListPtr llines, const char *const lsflags, const int blanklines, int *const tryMLSD)
void UnvectorizeFileInfoList(FileInfoListPtr)
struct MLstItem * MLstItemPtr
int FTPGetOneFileAscii(const FTPCIPtr cip, const char *const file, const char *const dstfile)
void DisposeLineListContents(LineListPtr)
char * FTPGetLocalCWD(char *buf, size_t size)
struct FileInfo * FileInfoPtr
int UnMlsD(FileInfoListPtr, LineListPtr)
int FTPEndDataCmd(const FTPCIPtr, int)
int MkDirs(const char *const, int mode1)
int FTPCloseHost(const FTPCIPtr cip)
int FTPOpenHost(const FTPCIPtr cip)
void PrintResponse(const FTPCIPtr, LineListPtr)
int FTPPutOneFile3(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int appendflag, const char *const tmppfx, const char *const tmpsfx, const int resumeflag, const int deleteflag, const ConfirmResumeUploadProc resumeProc, int reserved)
int FTPLocalRecursiveFileList2(FTPCIPtr cip, LineListPtr fileList, FileInfoListPtr files, int erelative)
struct LineList * LineListPtr
int FTPMkdir(const FTPCIPtr cip, const char *const newDir, const int recurse)
int(* ConfirmResumeDownloadProc)(const char *volatile *localpath, volatile longest_int localsize, volatile time_t localmtime, const char *volatile remotepath, volatile longest_int remotesize, volatile time_t remotetime, volatile longest_int *volatile startPoint)
int UnMlsT(const char *const, const MLstItemPtr)
char gLibNcFTPVersion[64]
int FTPInitConnectionInfo(const FTPLIPtr lip, const FTPCIPtr cip, size_t bufsize)
int FTPFileType(const FTPCIPtr cip, const char *const file, int *const ftype)
void FTPStartIOTimer(const FTPCIPtr)
void FTPInitializeOurHostName(const FTPLIPtr)
void FTPPerror(const FTPCIPtr cip, const int err, const int eerr, const char *const s1, const char *const s2)
int FTPUtime(const FTPCIPtr cip, const char *const file, time_t actime, time_t modtime, time_t crtime)
int FTPFileModificationTime(const FTPCIPtr cip, const char *const file, time_t *const mdtm)
int FTPMkdir2(const FTPCIPtr cip, const char *const newDir, const int recurse, const char *const curDir)
void(* FTPConnectMessageProc)(const FTPCIPtr, ResponsePtr)
void InitFileInfo(FileInfoPtr)
struct FTPLibraryInfo * FTPLIPtr
int FilenameExtensionIndicatesASCII(const char *const pathName, const char *const extnList)
int FTPFileExistsNlst(const FTPCIPtr cip, const char *const file)
void DoneWithResponse(const FTPCIPtr, ResponsePtr)
void(* FTPLoginMessageProc)(const FTPCIPtr, ResponsePtr)
#define StrFindLocalPathDelim(a)
int FTPFileExists2(const FTPCIPtr cip, const char *const file, const int tryMDTM, const int trySIZE, const int tryMLST, const int trySTAT, const int tryNLST)
void FTPAbortDataTransfer(const FTPCIPtr cip)
int FTPGetFiles(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob)
void GetUsrName(char *, size_t)
int FTPPutOneFile2(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int appendflag, const char *const tmppfx, const char *const tmpsfx)
int FTPGetFilesAscii(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob)
int FTPSetTransferType(const FTPCIPtr, int)
int FTPPutFiles3(const FTPCIPtr cip, const char *const pattern, const char *const dstdir, const int recurse, const int doGlob, const int xtype, int appendflag, const char *const tmppfx, const char *const tmpsfx, const int resumeflag, const int deleteflag, const ConfirmResumeUploadProc resumeProc, int reserved)
int FTPChmod(const FTPCIPtr cip, const char *const pattern, const char *const mode, const int doGlob)
void FTPUpdateIOTimer(const FTPCIPtr)
int LineToFileInfoList(LinePtr, FileInfoListPtr)
int ConcatFileToFileInfoList(FileInfoListPtr, char *)
FileInfoPtr RemoveFileInfo(FileInfoListPtr, FileInfoPtr)
int FTPUmask(const FTPCIPtr cip, const char *const umsk)
int LineListToFileInfoList(LineListPtr, FileInfoListPtr)
int FTPRebuildConnectionInfo(const FTPLIPtr lip, const FTPCIPtr cip)
#define StrRemoveTrailingLocalPathDelim
int FTPPutOneFile(const FTPCIPtr cip, const char *const file, const char *const dstfile)
#define LocalPathToTVFSPath(s)
int FTPDelete(const FTPCIPtr cip, const char *const pattern, const int recurse, const int doGlob)
int FTPStartDataCmd(const FTPCIPtr, int, int, longest_int, const char *,...)
int FTPGetCWD(const FTPCIPtr cip, char *const newCwd, const size_t newCwdSize)
int FTPRename(const FTPCIPtr cip, const char *const oldname, const char *const newname)
void VectorizeFileInfoList(FileInfoListPtr)
int FTPIsDir(const FTPCIPtr cip, const char *const dir)
time_t UnMDTMDate(char *)
void ReInitResponse(const FTPCIPtr, ResponsePtr)
void TraceResponse(const FTPCIPtr, ResponsePtr)
void FTPInitializeAnonPassword(const FTPLIPtr)
int FTPChdir(const FTPCIPtr cip, const char *const cdCwd)
int FTPIsRegularFile(const FTPCIPtr cip, const char *const file)
int ComputeLNames(FileInfoListPtr, const char *, const char *, int)
int FTPGetOneFile3(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int resumeflag, const int appendflag, const int deleteflag, const ConfirmResumeDownloadProc resumeProc, int reserved)
void SortFileInfoList(FileInfoListPtr, int, int)
const char * FTPStrError(int e)
int(* ConfirmResumeUploadProc)(const char *volatile localpath, volatile longest_int localsize, volatile time_t localmtime, const char *volatile *remotepath, volatile longest_int remotesize, volatile time_t remotetime, volatile longest_int *volatile startPoint)
void(* FTPGetPassphraseProc)(const FTPCIPtr, LineListPtr pwPrompt, char *pass, size_t dsize)
int FTPLoginHost(const FTPCIPtr cip)
#define TVFSPathToLocalPath(s)
int CopyLineList(LineListPtr, LineListPtr)
int FTPLocalGlob(FTPCIPtr cip, LineListPtr fileList, const char *pattern, int doGlob)
int FTPChdir3(FTPCIPtr cip, const char *const cdCwd, char *const newCwd, const size_t newCwdSize, int flags)
int FTPRemoteHelp(const FTPCIPtr, const char *const, const LineListPtr)
int FTPPutOneFileAscii(const FTPCIPtr cip, const char *const file, const char *const dstfile)
struct FileInfoList * FileInfoListPtr
void(* FTPLogProc)(const FTPCIPtr, char *)
int FTPLocalRecursiveFileList(FTPCIPtr, LineListPtr, FileInfoListPtr)
int FTPDecodeURL(const FTPCIPtr cip, char *const url, LineListPtr cdlist, char *const fn, const size_t fnsize, int *const xtype, int *const wantnlst)
void DisposeFileInfoListContents(FileInfoListPtr)
int GetResponse(const FTPCIPtr, ResponsePtr)
int FTPCmdNoResponse(const FTPCIPtr, const char *const cmdspec,...)
int FTPList(const FTPCIPtr cip, const int outfd, const int longMode, const char *const lsflag)
int(* FTPFtwProc)(const FTPCIPtr cip, const char *fn, int flag)
struct FileInfo ** FileInfoVec
int FTPGetOneFile2(const FTPCIPtr cip, const char *const file, const char *const dstfile, const int xtype, const int fdtouse, const int resumeflag, const int appendflag)
int FTPGetOneFile(const FTPCIPtr cip, const char *const file, const char *const dstfile)
LinePtr AddLine(LineListPtr, const char *)
int FTPRemoteGlob(FTPCIPtr cip, LineListPtr fileList, const char *pattern, int doGlob)
FileInfoPtr AddFileInfo(FileInfoListPtr, FileInfoPtr)
int FTPInitLibrary(const FTPLIPtr lip)
void(* FTPProgressMeterProc)(const FTPCIPtr, int)
int FTPFileSize(const FTPCIPtr cip, const char *const file, longest_int *const size, const int type)
int UnLslR(FileInfoListPtr, LineListPtr, int)
int FTPFileExists(const FTPCIPtr cip, const char *const file)
void StrRemoveTrailingSlashes(char *dst)
struct Response * ResponsePtr
void(* FTPRedialStatusProc)(const FTPCIPtr, int, int)
void FTPInitIOTimer(const FTPCIPtr)
char * GetPass(const char *const prompt)
int FTPQueryFeatures(const FTPCIPtr)
int gLibNcFTP_Uses_Me_To_Quiet_Variable_Unused_Warnings
void(* FTPPrintResponseProc)(const FTPCIPtr, ResponsePtr)
ResponsePtr InitResponse(void)
void Scramble(unsigned char *dst, size_t dsize, unsigned char *src, char *key)
char * FGets(char *, size_t, FILE *)
int FTPChdirAndGetCWD(const FTPCIPtr cip, const char *const cdCwd, char *const newCwd, const size_t newCwdSize)
void FTPStopIOTimer(const FTPCIPtr)
struct sockaddr_in ourCtlAddr
time_t nextProgressUpdate
struct sockaddr_in servDataAddr
unsigned int firewallPort
FTPPrintResponseProc printResponseProc
int doNotGetStartingWorkingDirectory
char * startingWorkingDirectory
LineList lastFTPCmdResultLL
size_t dataSocketRBufSize
FTPProgressMeterProc progress
size_t ctrlSocketRBufSize
unsigned int abortTimeout
const char * asciiFilenameExtensions
FTPGetPassphraseProc passphraseProc
FTPConnectMessageProc onConnectMsgProc
struct sockaddr_in servCtlAddr
size_t ctrlSocketSBufSize
size_t dataSocketSBufSize
FTPRedialStatusProc redialStatusProc
FTPLoginMessageProc onLoginMsgProc
longest_int bytesTransferred
struct sockaddr_in ourDataAddr
char lastFTPCmdResultStr[128]
char defaultAnonPassword[80]
static GLenum _GLUfuncptr fn