Note: these debugging tips do not apply when the FTP2 protocol is being used (i.e. XFTPF_VERSION flag set in FTPDLX.SBX, /2 switch in ZTXFER.LIT, /V2 switch in ATSYNC.LIT, etc.). See Xcall FTP2 for more details.
Aside from the error codes listed in this section, the FTPDLX also writes a human readable log file, ftpdlx.log in the current directory, which may identify discrepancies between what you thought you were asking it to do and what it was actually trying to do. In addition, if the environment variable ASHFTPDEBUG is defined, a more detailed, lower-level log will written to %temp%\ftpdebug.log (or, prior to A-Shell 5.1.1153 of June 2009, c:\debug.log).
The two DLLs mentioned early must be recorded in the Windows Registry, and this process will normally be taken care of automatically by the A-Shell installation program. However, if FTPDLX doesn't work even if the DLLs and the ALIASsp statement are in place, you may need to manually register to the two DLLs:
Start..Run..REGSVR32 <bin-path>\WODFTPDLX.DLL
Start..Run..REGSVR32 <bin-path>\FTPDLXCALL.DLL
FTPDLX Error Codes
The following error codes may be returned from the FTPDLX control based on logic within the subroutine itself.
Value |
Description |
---|---|
-1 |
User abort |
-2 |
Error retrieving subroutine parameters |
-3 |
Error setting remote address |
-4 |
Error setting username |
-5 |
Error setting password |
-6 |
Error setting port (may suggest you have the 1.0 version of EZFTP.OCX) |
-7 |
Error setting remote directory and file |
-8 |
Error displaying progress dialog |
-9 |
Error during connect |
-10 |
Error setting binary/ASCII transfer mode |
-11 |
Error in get or put operation |
-12 |
Error setting local file |
wodFTPDLX.DLL Error Codes
Value |
Description |
---|---|
30001 |
Cannot connect at this time. Use Disconnect first. |
30002 |
Cannot execute, not yet connected. |
30003 |
Component busy. |
30004 |
Cannot change Hostname at this time. Use Disconnect first. |
30005 |
Cannot change Port at this time. Use Disconnect first. |
30006 |
Cannot change Protocol at this time. Use Disconnect first. |
30007 |
Please set login, and password/certificate first. |
30009 |
Invalid local file name or path. |
30010 |
Could not resolve given Hostname. |
30011 |
Invalid data received from remote server. Protocol error. |
30012 |
Protocol version mismatch error. |
30013 |
Server signature does not match. Aborted by user. |
30014 |
Bad server public DH value. |
30015 |
Server signature does not match. |
30016 |
Invalid username or password reported by server. |
30017 |
Could not obtain pty on remote server. |
30018 |
Server does not support password authentication. |
30019 |
Server rejected due to bad fingerprint/certificate information. |
30020 |
Failed to open channel on the server. |
30021 |
LocalPath should specify a file, and such file does not exist. |
30022 |
Error occurred trying to open local file. |
30023 |
Error occurred trying to read from local file. |
30024 |
Error occurred trying to write to local file. |
30025 |
Server replied with invalid response ID. |
30026 |
Failed to load key or certificate. Password invalid? |
30027 |
Cannot use Append method when Resume property is set to True. |
30028 |
Please set Hostname property. |
30029 |
Component was busy while disconnected by the server. |
30030 |
Given path on the server is a directory. |
30031 |
Server returned an error: |
30032 |
Failed to create temporary file. |
30033 |
Server returned invalid response to FXP_ATTRS. |
30034 |
Server cannot write to a given path. |
30035 |
Data connection has timed out. |
30037 |
Not enabled in SFTP protocol. |
30038 |
Selected proxy type cannot be used with selected protocol. |
30039 |
Selected proxy type requires passive mode connection. |
30040 |
Proxy server has closed the connection. |
30041 |
Proxy server rejected supplied login credentials. |
30042 |
Crypto algorithm could not be negotiated. |
30043 |
Buffer size out of range 1kb-1mb. |
30044 |
Only valid in SSL secured protocols. |
39999 |
License key missing. You can not use this component in design environment. |
FTP Protocol return codes
Value |
Description |
---|---|
40110 |
Restart marker reply. |
40120 |
Service ready in few minutes. |
40125 |
Data connection already open; transfer starting. |
40150 |
File status okay; about to open data connection. |
40200 |
Command okay. |
40202 |
Command not implemented, superfluous at this site. |
40211 |
System status, or system help reply. |
40212 |
Directory status. |
40213 |
File status. |
40214 |
Help message. |
40215 |
System type. |
40220 |
Service ready for new user. |
40221 |
Service closing control connection. |
40225 |
Data connection open; no transfer in progress. |
40226 |
Closing data connection. |
40227 |
Entering Passive Mode. |
40230 |
User logged in, proceed. |
40250 |
Requested file action okay, completed. |
40257 |
Path created. |
40331 |
User name okay, need password. |
40332 |
Need account for login. |
40350 |
Requested file action pending further information. |
40421 |
Service not available, closing control connection. |
40425 |
Can't open data connection. |
40426 |
Connection closed; transfer aborted. |
40450 |
Requested file action not taken. File unavailable (e.g., file busy). |
40451 |
Requested action aborted: local error in processing. |
40452 |
Requested action not taken. Insufficient storage space in system. |
40500 |
Syntax error, command unrecognized. |
40501 |
Syntax error in parameters or arguments. |
40502 |
Command not implemented. |
40503 |
Bad sequence of commands. |
40504 |
Command not implemented for that parameter. |
40530 |
Not logged in. |
40532 |
Need account for storing files. |
40550 |
Requested action not taken. File unavailable (e.g., file not found, no access). |
40551 |
Action aborted: broken pipe. |
40552 |
Requested file action aborted. Exceeded storage allocation (for current directory or dataset). |
40553 |
Requested action not taken. File name not allowed. |
Certificate Errors
Value |
Description |
---|---|
50000 |
Certificate ok |
50002 |
Certificate error: Unable to get issuer certificate. |
50003 |
Certificate error: Unable to get CRL (Certificate revocation list). |
50004 |
Certificate error: Unable to decrypt certificate signature. |
50005 |
Certificate error: Unable to decrypt CRL (Certificate revocation list) signature. |
50006 |
Certificate error: Unable to decode issuer public key. |
50007 |
Certificate error: Certificate signature failure. |
50008 |
Certificate error: CRL (Certificate revocation list). signature failure. |
50009 |
Certificate error: Certificate not yet valid; |
50010 |
Certificate error: Certificate has expired. |
50011 |
Certificate error: CRL not yet valid. |
50012 |
Certificate error: CRL has expired. |
50013 |
Certificate error: Certificate does not have 'before' field. |
50014 |
Certificate error: Certificate does not have 'after' field. |
50015 |
Certificate error: CRL does not have 'last update' field. |
50016 |
Certificate error: CRL error in 'next update' field. |
50017 |
Certificate error: Out of memory while reading certificate. |
50018 |
Certificate error: Depth zero self signed certificate. |
50019 |
Certificate error: Self signed certificate in chain. |
50020 |
Certificate error: Unable to get issuer certificate locally. |
50021 |
Certificate error: Unable to verify the first certificate. |
50022 |
Certificate error: Certificate chain too long. |
50023 |
Certificate error: Certificate revoked. |
50024 |
Certificate error: Invalid Certificate Authority. |
50025 |
Certificate error: Path length exceeded. |
50026 |
Certificate error: Invalid certificate purpose. |
50027 |
Certificate error: Certificate not trusted. |
50028 |
Certificate error: Certificate rejected. |
50029 |
Certificate error: Subject issuer mismatch. |
50030 |
Certificate error: Authority and subject key identifier mismatch. |
50031 |
Certificate error: Authority and issuer serial number mismatch. |
50032 |
Certificate error: Key usage does not include certificate signing. |
50050 |
Certificate error: Application verification failure. |
Winsock Errors
Value |
Description |
---|---|
10004 |
Interrupted function call. A blocking operation was interrupted by a call to WSACancelBlockingCall. |
10009 |
Generic error for invalid format, bad format. |
10013 |
Permission denied. An attempt was made to access a socket in a way forbidden by its access permissions. An example is using a broadcast address for "sendto" without broadcast permission being set using setsockopt (SO_BROADCAST). |
10014 |
Bad address. The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an program passes an invalid pointer value, or if the length of the buffer is too small. For instance, if the length of an argument which is a struct sockaddr is smaller than sizeof(struct sockaddr). |
10022 |
Invalid argument. Some invalid argument was supplied (for example, specifying an invalid level to the setsockopt function). In some instances, it also refers to the current state of the socket - for instance, calling accept on a socket that is not listening. |
10024 |
Too many open files. Too many open sockets. Each implementation may have a maximum number of socket handles available, either globally, per process or per thread. |
10025 |
The IP address provided is not valid or the host specified by the IP does not exist. |
10038 |
Socket operation on a non-socket. An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid. |
10048 |
Address already in use. Only one usage of each socket address (protocol/IP address/port) is normally permitted. This error occurs if a program attempts to bind a socket to an IP address/port that has already been used for an existing socket, or a socket that wasn't closed properly, or one that is still in the process of closing. For server programs that need to bind multiple sockets to the same port number, consider using setsockopt(SO_REUSEADDR). Client programs usually need not call bind at all - connect will choose an unused port automatically. |
10049 |
Cannot assign requested address. The requested address is not valid in its context. Normally results from an attempt to bind to an address that is not valid for the local machine, or connect/sendto an address or port that is not valid for a remote machine (e.g. port 0). |
10050 |
Network is down. A socket operation encountered a dead network. This could indicate a serious failure of the network system (the protocol stack that the WinSock DLL runs over), the network interface, or the local network itself. |
10051 |
Network is unreachable. A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host. |
10052 |
Network dropped connection on reset. The host you were connected to crashed and rebooted. May also be returned by setsockopt if an attempt is made to set SO_KEEPALIVE on a connection that has already failed. |
10053 |
Software caused connection abort. An established connection was aborted by the software in your host machine, possibly due to a data transmission timeout or protocol error. |
10054 |
Connection reset by peer. An existing connection was forcibly closed by the remote host. This normally results if the peer program on the remote host is suddenly stopped, the host is rebooted, or the remote host used a "hard close" (see setsockopt for more information on the SO_LINGER option on the remote socket.) |
10057 |
Socket is not connected. A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using sendto) no address was supplied. Any other type of operation might also return this error - for example, setsockopt setting SO_KEEPALIVE if the connection has been reset. |
10058 |
Cannot send after socket shutdown. A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call. By calling shutdown a partial close of a socket is requested, which is a signal that sending or receiving or both has been discontinued. |
10060 |
Connection timed out. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. |
10061 |
Connection refused. No connection could be made because the target machine actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host - i.e. one with no server program running. |
10063 |
Specified host name is too long. |
10064 |
Host is down. A socket operation failed because the destination host was down. A socket operation encountered a dead host. Networking activity on the local host has not been initiated. These conditions are more likely to be indicated by the error WSAETIMEDOUT. |
10065 |
No route to host. A socket operation was attempted to an unreachable host. See WSAENETUNREACH |
10091 |
Network subsystem is unavailable. This error is returned by WSAStartup if the Windows Sockets implementation cannot function at this time because the underlying system it uses to provide network services is currently unavailable. |
10093 |
Successful WSAStartup not yet performed. Either the program has not called WSAStartup or WSAStartup failed. The program may be accessing a socket which the current active task does not own (i.e. trying to share a socket between tasks), or WSACleanup has been called too many times. |
10094 |
Graceful shutdown in progress. Returned by recv, WSARecv to indicate the remote party has initiated a graceful shutdown sequence. |
11001 |
Host not found. No such host is known. The name is not an official hostname or alias, or it cannot be found in the database(s) being queried. This error may also be returned for protocol and service queries, and means the specified name could not be found in the relevant database. |
11002 |
Authoritative host not found. This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. A retry at some time later may be successful. |