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 / c_type.c < prev    next >
C/C++ Source or Header  |  2005-01-01  |  1KB  |  56 lines

  1. /* c_type.c
  2.  *
  3.  * Copyright (c) 1996-2005 Mike Gleason, NcFTP Software.
  4.  * All rights reserved.
  5.  *
  6.  */
  7.  
  8. #include "syshdrs.h"
  9. #ifdef PRAGMA_HDRSTOP
  10. #    pragma hdrstop
  11. #endif
  12.  
  13. int
  14. FTPSetTransferType(const FTPCIPtr cip, int type)
  15. {
  16.     int result;
  17.  
  18.     if (cip == NULL)
  19.         return (kErrBadParameter);
  20.     if (strcmp(cip->magic, kLibraryMagic))
  21.         return (kErrBadMagic);
  22.  
  23.     if (cip->curTransferType != type) {
  24.         switch (type) {
  25.             case kTypeAscii:
  26.             case kTypeBinary:
  27.             case kTypeEbcdic:
  28.                 break;
  29.             case 'i':
  30.             case 'b':
  31.             case 'B':
  32.                 type = kTypeBinary;
  33.                 break;
  34.             case 'e':
  35.                 type = kTypeEbcdic;
  36.                 break;
  37.             case 'a':
  38.                 type = kTypeAscii;
  39.                 break;
  40.             default:
  41.                 /* Yeah, we don't support Tenex.  Who cares? */
  42.                 FTPLogError(cip, kDontPerror, "Bad transfer type [%c].\n", type);
  43.                 cip->errNo = kErrBadTransferType;
  44.                 return (kErrBadTransferType);
  45.         }
  46.         result = FTPCmd(cip, "TYPE %c", type);
  47.         if (result != 2) {
  48.             result = kErrTYPEFailed;
  49.             cip->errNo = kErrTYPEFailed;
  50.             return (result);
  51.         }
  52.         cip->curTransferType = type;
  53.     }
  54.     return (kNoErr);
  55. }    /* FTPSetTransferType */
  56.