/* errno.c * * Copyright (c) 1996-2001 Mike Gleason, NCEMRSoft. * All rights reserved. * */ #define _libncftp_errno_c_ 1 #include "syshdrs.h" static const char *gErrList[kErrLast - kErrFirst + 2] = { "gethostname() failed", /* -100 */ "hostname does not include domain name", /* -101 */ "could not set linger mode", /* -102 */ "could not set type of service", /* -103 */ "could not enable out-of-band data inline", /* -104 */ "unknown host", /* -105 */ "could not get a new stream socket", /* -106 */ "could not duplicate a socket", /* -107 */ "fdopen for reading failed", /* -108 */ "fdopen for writing failed", /* -109 */ "getsockname failed", /* -110 */ "could not bind the data socket", /* -111 */ "could not listen on the data socket", /* -112 */ "passive mode failed", /* -113 */ "server sent bogus port number", /* -114 */ "could not connect data socket", /* -115 */ "could not accept data socket", /* -116 */ "could not set restart point", /* -117 */ "could not connect to remote host", /* -118 */ "could not connect to remote host, but can try again", /* -119 */ "remote host refused connection", /* -120 */ "bad transfer type", /* -121 */ "invalid directory parameter", /* -122 */ "malloc failed", /* -123 */ "PWD failed", /* -124 */ "remote chdir failed", /* -125 */ "remote rmdir failed", /* -126 */ "bad line list", /* -127 */ "unimplemented option", /* -128 */ "unimplemented function", /* -129 */ "remote directory listing failed", /* -130 */ "could not retrieve remote file", /* -131 */ "could not send file to remote host", /* -132 */ "file write error", /* -133 */ "file read error", /* -134 */ "socket write error", /* -135 */ "socket read error", /* -136 */ "could not open file", /* -137 */ "bad magic number in FTP library structure", /* -138 */ "bad parameter given to library", /* -139 */ "remote mkdir failed", /* -140 */ "remote cd .. failed", /* -141 */ "remote chmod failed", /* -142 */ "remote umask failed", /* -143 */ "remote delete failed", /* -144 */ "remote file size inquiry failed", /* -145 */ "remote file timestamp inquiry failed", /* -146 */ "remote transfer type change failed", /* -147 */ "file size inquiries not understood by remote server", /* -148 */ "file timestamp inquiries not understood by remote server", /* -149 */ "could not rename remote file", /* -150 */ "could not do remote wildcard expansion", /* -151 */ "could not set keepalive option", /* -152 */ "remote host disconnected during login", /* -153 */ "username was not accepted for login", /* -154 */ "username and/or password was not accepted for login", /* -155 */ "login failed", /* -156 */ "invalid reply from server", /* -157 */ "remote host closed control connection", /* -158 */ "not connected", /* -159 */ "could not start data transfer", /* -160 */ "data transfer failed", /* -161 */ "PORT failed", /* -162 */ "PASV failed", /* -163 */ "UTIME failed", /* -164 */ "utime requests not understood by remote server", /* -165 */ "HELP failed", /* -166 */ "file deletion on local host failed", /* -167 */ "lseek failed", /* -168 */ "data transfer aborted by local user", /* -169 */ "SYMLINK failed", /* -170 */ "symlink requests not understood by remote server", /* -171 */ "no match", /* -172 */ "server features request failed", /* -173 */ "no valid files were specified", /* -174 */ "file transfer buffer has not been allocated", /* -175 */ "will not overwrite local file with older remote file", /* -176 */ "will not overwrite remote file with older local file", /* -177 */ "local file appears to be the same as the remote file, no transfer necessary", /* -178 */ "could not get extended directory information (MLSD)", /* -179 */ "could not get extended file or directory information (MLST)", /* -180 */ "could not parse extended file or directory information", /* -181 */ "server does not support extended file or directory information", /* -182 */ "server does not support extended directory information", /* -183 */ "could not get information about specified file", /* -184 */ "server does not support file or directory information", /* -185 */ "could not get directory information about specified file", /* -186 */ "server does not support directory information", /* -187 */ "no such file or directory", /* -188 */ "server provides no way to determine file existence", /* -189 */ "item exists, but cannot tell if it is a file or directory", /* -190 */ "not a directory", /* -191 */ "directory recursion limit reached", /* -192 */ "timed out while waiting for server response", /* -193 */ "data transfer timed out", /* -194 */ "canceled by user", /* -195 */ NULL, }; int gLibNcFTP_Uses_Me_To_Quiet_Variable_Unused_Warnings = 0; const char * FTPStrError(int e) { if (e == kErrGeneric) { return ("miscellaneous error"); } else if (e == kNoErr) { return ("no error"); } else { if (e < 0) e = -e; if ((e >= kErrFirst) && (e <= kErrLast)) { return (gErrList[e - kErrFirst]); } } return ("unrecognized error number"); } /* FTPStrError */ void FTPPerror(const FTPCIPtr cip, const int err, const int eerr, const char *const s1, const char *const s2) { if (err != kNoErr) { if (err == eerr) { if ((s2 == NULL) || (s2[0] == '\0')) { if ((s1 == NULL) || (s1[0] == '\0')) { (void) fprintf(stderr, "server said: %s\n", cip->lastFTPCmdResultStr); } else { (void) fprintf(stderr, "%s: server said: %s\n", s1, cip->lastFTPCmdResultStr); } } else if ((s1 == NULL) || (s1[0] == '\0')) { (void) fprintf(stderr, "%s: server said: %s\n", s2, cip->lastFTPCmdResultStr); } else { (void) fprintf(stderr, "%s %s: server said: %s\n", s1, s2, cip->lastFTPCmdResultStr); } } else { if ((s2 == NULL) || (s2[0] == '\0')) { if ((s1 == NULL) || (s1[0] == '\0')) { (void) fprintf(stderr, "%s.\n", FTPStrError(cip->errNo)); } else { (void) fprintf(stderr, "%s: %s.\n", s1, FTPStrError(cip->errNo)); } } else if ((s1 == NULL) || (s1[0] == '\0')) { (void) fprintf(stderr, "%s: %s.\n", s2, FTPStrError(cip->errNo)); } else { (void) fprintf(stderr, "%s %s: %s.\n", s1, s2, FTPStrError(cip->errNo)); } } } } /* FTPPerror */