home *** CD-ROM | disk | FTP | other *** search
/ ftp.ncftp.com / ftp.ncftp.com.zip / ftp.ncftp.com / ncftp / older_versions / ncftp-3.2.2-src.tar.bz2 / ncftp-3.2.2-src.tar / ncftp-3.2.2 / libncftp / util.h < prev    next >
C/C++ Source or Header  |  2008-07-13  |  4KB  |  141 lines

  1. /* Util.h
  2.  *
  3.  * Copyright (c) 1996-2005 Mike Gleason, NcFTP Software.
  4.  * All rights reserved.
  5.  *
  6.  */
  7.  
  8. #ifndef _util_h_
  9. #define _util_h_ 1
  10.  
  11. typedef char string[160], str16[16], str32[32], str64[64];
  12. typedef char longstring[512];
  13. typedef char pathname[512];
  14.  
  15. #ifndef PTRZERO
  16. #    define PTRZERO(p,siz)  (void) memset(p, 0, (size_t) (siz))
  17. #endif
  18.  
  19. #define ZERO(a)    PTRZERO(&(a), sizeof(a))
  20. #define STREQ(a,b) (strcmp(a,b) == 0)
  21. #define STRNEQ(a,b,s) (strncmp(a,b,(size_t)(s)) == 0)
  22.  
  23. #if (defined(WIN32) || defined(_WINDOWS)) && !defined(__CYGWIN__)
  24. #    define ISTRCMP _stricmp
  25. #    define ISTRNCMP _strnicmp
  26. #endif
  27.  
  28. #ifndef ISTRCMP
  29. #    ifdef HAVE_STRCASECMP
  30. #        define ISTRCMP strcasecmp
  31. #        define ISTRNCMP strncasecmp
  32. #    else
  33. #        define ISTRCMP strcmp
  34. #        define ISTRNCMP strncmp
  35. #    endif
  36. #endif
  37.  
  38. #define ISTREQ(a,b) (ISTRCMP(a,b) == 0)
  39. #define ISTRNEQ(a,b,s) (ISTRNCMP(a,b,(size_t)(s)) == 0)
  40.  
  41. typedef int (*cmp_t)(const void *, const void *);
  42. #define QSORT(base,n,s,cmp) \
  43.     qsort(base, (size_t)(n), (size_t)(s), (cmp_t)(cmp))
  44.  
  45. #define BSEARCH(key,base,n,s,cmp) \
  46.     bsearch(key, base, (size_t)(n), (size_t)(s), (cmp_t)(cmp))
  47.  
  48. /* For FTPLogError(): */
  49. #define kDoPerror        1
  50. #define kDontPerror        0
  51.  
  52. #define kClosedFileDescriptor (-1)
  53.  
  54. #define SZ(a) ((size_t) (a))
  55.  
  56. #ifndef F_OK
  57. #    define F_OK 0
  58. #endif
  59.  
  60. #ifdef HAVE_REMOVE
  61. #    define UNLINK remove
  62. #else
  63. #    define UNLINK unlink
  64. #endif
  65.  
  66. #ifndef SEEK_SET
  67. #    define SEEK_SET    0
  68. #    define SEEK_CUR    1
  69. #    define SEEK_END    2
  70. #endif  /* SEEK_SET */
  71.  
  72. #ifdef SETVBUF_REVERSED
  73. #    define SETVBUF(a,b,c,d) setvbuf(a,c,b,d)
  74. #else
  75. #    define SETVBUF setvbuf
  76. #endif
  77.  
  78.  
  79. /* Util.c */
  80. #if (defined(WIN32) || defined(_WINDOWS)) && !defined(__CYGWIN__)
  81. #else
  82. int GetMyPwEnt(struct passwd *pwp, char *const pwbuf, size_t pwbufsize);
  83. int GetPwUid(struct passwd *pwp, const uid_t uid, char *const pwbuf, size_t pwbufsize);
  84. int GetPwNam(struct passwd *pwp, const char *const nam, char *const pwbuf, size_t pwbufsize);
  85. #endif
  86. void CloseFile(FILE **);
  87. #if (defined(WIN32) || defined(_WINDOWS)) && !defined(__CYGWIN__)
  88. int gettimeofday(struct timeval *const tp, void *junk);
  89. #endif
  90.  
  91. /* io_util.c */
  92. void AutomaticallyUseASCIIModeDependingOnExtension(const FTPCIPtr cip, const char *const pathName, int *const xtype);
  93. void FTPCheckForRestartModeAvailability(const FTPCIPtr cip);
  94. int WaitForRemoteInput(const FTPCIPtr cip);
  95. int WaitForRemoteOutput(const FTPCIPtr cip);
  96. void FTPSetUploadSocketBufferSize(const FTPCIPtr cip);
  97.  
  98. /* io_get.c, io_put.c */
  99. int
  100. FTPGetOneF(
  101.     const FTPCIPtr cip,
  102.     const char *const file,
  103.     const char *dstfile,
  104.     int xtype,
  105.     const int fdtouse,
  106.     longest_int expectedSize,
  107.     time_t mdtm,
  108.     const int resumeflag,
  109.     const int appendflag,
  110.     const int deleteflag,
  111.     const FTPConfirmResumeDownloadProc resumeProc);
  112.  
  113. int
  114. FTPPutOneF(
  115.     const FTPCIPtr cip,
  116.     const char *const file,
  117.     const char *volatile dstfile,
  118.     int xtype,
  119.     const int fdtouse,
  120.     const int appendflag,
  121.     const char *volatile tmppfx,
  122.     const char *volatile tmpsfx,
  123.     const int resumeflag,
  124.     const int deleteflag,
  125.     const FTPConfirmResumeUploadProc resumeProc);
  126.  
  127. int FTPGetOneTarF(const FTPCIPtr cip, const char *file, const char *const dstdir);
  128.  
  129. /* open.c */
  130. void FTPResetStatusVariables(const FTPCIPtr cip);
  131. void FTPDeallocateHost(const FTPCIPtr cip);
  132. int FTPAllocateHost(const FTPCIPtr cip);
  133.  
  134. /* cmds misc */
  135. int FTPRmdirRecursive(const FTPCIPtr cip, const char *const dir);
  136. void FTPRequestMlsOptions(const FTPCIPtr cip);
  137. void RemoteGlobCollapse(const FTPCIPtr, const char *pattern, FTPLineListPtr fileList);
  138. int PathContainsIntermediateDotDotSubDir(const char *s);
  139.  
  140. #endif    /* _util_h_ */
  141.