Introduction

Altap Salamander: Plugins: FTP Client: Introduction

Getting Started with FTP Client Plugin

The FTP Client plugin allows you to connect to and browse FTP servers; copy files and directories from or to FTP servers (also known as download and upload); change access rights (attributes), view files, and delete files and directories on FTP servers. It supports many types of FTP servers (Unix, Microsoft IIS, Netware, VMS, MVS, IBM iSeries/i5 (AS/400), IBM z/VM, etc.), all common proxy servers (firewalls), and compression of data transfers (MODE Z).

The plugin also supports FTPS, i.e. FTP-SSL for SSL-encrypted communication. More precisely, it supports the AUTH TLS command. Such variant of FTPS is sometimes called FTPES, i.e. FTP with Explicit SSL. The plugin uses the same certificate stores and validity verification algorithms as Internet Explorer. All trusted certificates can be viewed in the Internet Options Control Panel. FTPS uses OpenSSL libraries.

See File System and Menu Extension sections in Using Plugins for a description of basic work with file system plugin and menu extension.

© 2001-2019 ALTAP. All rights reserved.


Connecting to FTP Server

This command allows you to connect to the FTP server. You can also store your favourite FTP servers to FTP bookmarks and use these bookmarks to quickly access these servers.

To connect to a bookmarked FTP server:

  1. Open the Connect to FTP Server dialog box:
    Menu: Plugins/FTP Client/Connect to FTP Server
    Shortcut key: Ctrl+Shift+F
    Change Drive menu: FTP Client
  2. Choose a bookmark to the FTP server you want to connect to.
  3. Click the Connect button.

To add bookmark to FTP server and connect to it:

  1. Open the Connect to FTP Server dialog box:
    Menu: Plugins/FTP Client/Connect to FTP Server
    Shortcut key: Ctrl+Shift+F
    Change Drive menu: FTP Client
  2. Click the New button to add new bookmark.
  3. Specify the name of new bookmark in the New Bookmark dialog box.
  4. Enter connection parameters (e.g. server address, initial path, and user name). See Connect to FTP Server dialog box for details on these parameters.
  5. Click the Connect button.

To connect to FTP server without using a bookmark:

  1. Open the Connect to FTP Server dialog box:
    Menu: Plugins/FTP Client/Connect to FTP Server
    Shortcut key: Ctrl+Shift+F
    Change Drive menu: FTP Client
  2. Focus the Quick Connect item (it is always the first item).
  3. Enter connection parameters (e.g. server address, initial path, and user name). See Connect to FTP Server dialog box for details on these parameters.
  4. Click the Connect button.

See Also

Connect to FTP Server dialog box


Setting Transfer Mode

All starting copy and move operations between local machine and the FTP server (in both directions) are dependent on currently chosen file transfer mode. We have three transfer modes: Automatic, ASCII, and Binary. See the Default file transfer mode section in Configuration/Defaults for description of these modes. Note: you can preset the file transfer mode for an FTP bookmark in the Advanced Options dialog box, see the File transfer mode option.

To set transfer mode for FTP connection in panel:

Menu: | Choose in the Plugins/FTP Client/Transfer Mode submenu.
Context menu: | Right-click in panel and choose in the Transfer Mode submenu.


Adding Bookmark

You can add a bookmark for the current directory on the FTP server opened in panel. Later this bookmark can be used to quickly access the FTP server. See Connecting to FTP Server for details. Note: you can also add a bookmark without connecting to the FTP server, see Connecting to FTP Server and Organizing Bookmarks.

To add a bookmark:

  1. Activate the panel with opened connection to the FTP server.
  2. Choose the Add Bookmark command:
    Menu: Plugins/FTP Client/Add Bookmark
    Context menu: Right-click in panel and select Add Bookmark.
  3. Specify the name of new bookmark in the Add Bookmark dialog box.
  4. Place new bookmark in the Organize Bookmarks dialog box.

See Also

Organize Bookmarks dialog box


Organizing Bookmarks

This command allows you to organize and edit your FTP bookmarks.

To organize or edit bookmarks:

  1. Open the Organize Bookmarks dialog box:
    Menu: Plugins/FTP Client/Organize Bookmarks
  2. Focus the bookmark you want to edit or change its position.
  3. You can edit parameters of the focused bookmark by editing values displayed in this dialog box.
  4. Change position of the focused bookmark using drag&drop or Move Up/Down commands from the context menu (right click on a bookmark or use the Shift+F10 key to open this menu).
  5. Use the New button to add new bookmark.
  6. Use the Rename button to rename the focused bookmark.
  7. Use the Remove button to delete the focused bookmark.
  8. Click the Close button to confirm your changes. Click the Cancel button to forget them.

See Also

Organize Bookmarks dialog box


Listing Hidden Files and Directories (Unix)

Some Unix FTP servers require an option "-a" behind the LIST command to list also hidden files and directories. You can easily turn on/off using of this option for the connection opened in panel.

To turn on/off listing of hidden files and directories (Unix) in the FTP connection in panel:

Menu: | Plugins/FTP Client/List Hidden Files and Directories (Unix)
Context menu: | Right-click in panel and select List Hidden Files and Directories (Unix).


Showing Certificate

This command is only for FTPS connections (FTP over TLS/SSL). When the connection is encrypted, the FTP server provides its certificate to prove its identity. You can use this command or click the lock icon in the Directory line to show this certificate.

The plugin uses the same certificate stores and validity verification algorithms as Internet Explorer. All trusted certificates can be viewed in the Internet Options Control Panel.

To show certificate:

Menu: | Plugins/FTP Client/Show Certificate
Context menu: | Right-click in panel and select Show Certificate.


Refreshing Panel

Use this command to refresh the listing in panel. You can also use the standard command for refreshing, see Refreshing Panel. See the Use cache for viewed files and lists of files and directories on server option in Configuration/Defaults for details on reseting cache by the Refresh command.

To refresh listing of the current directory on the FTP server in panel:

Menu: | Plugins/FTP Client/Refresh
Context menu: | Right-click in panel and select Refresh.

See Also

Refreshing Panel

© 2001-2019 ALTAP. All rights reserved.


Changing Access Rights (Unix)

Use this command to change access rights (attributes) on Unix FTP servers.

To change access rights (attributes) on Unix FTP server:

  1. Select the files and directories whose access rights (attributes) you want to set.
  2. Open the Change Attributes dialog box:
    Menu: Files/Change Attributes...
    Shortcut key: Ctrl+F2
    Toolbar: Choose the Change Attributes button on the Top, Middle, or Bottom toolbar.
  3. Set new access rights (attributes) in the Owner, Group, and Others group boxes or the Numeric value edit box, see Change Attributes dialog box for details.
  4. Select the Include subdirectories check box if you want to process also files and directories in selected subdirectories.
  5. Select the Change attributes of files check box if you want to process files (otherwise it will skip all files).
  6. Select the Change attributes of directories check box if you want to process directories (otherwise it will skip all directories).
  7. Click the OK button.

See Also

Change Attributes dialog box


Sending FTP Command

You can send any FTP command directly to the FTP server opened in panel. Use this command to send auxiliary FTP commands.

To send FTP command to the FTP server opened in panel:

  1. Open the Send FTP Command dialog box:
    Menu: Plugins/FTP Client/Send FTP Command
    Context menu: Right-click in panel and select Send FTP Command.
  2. Specify options for sending, see options in the Send FTP Command dialog box.
  3. Enter the command you want to send.
  4. Click the OK button.

See Also

Send FTP Command dialog box


Showing Raw Listing

When the FTP client gets the list of files and directories in the current directory on the FTP server, it gets only the plain text (raw) listing designed only for reading by a human (not for automatic parsing) from the FTP server. So it is possible that you encounter some extra format of this plain text listing which cannot be parsed automatically by the FTP client (or is not parsed properly). In such cases, you can display the plain text listing to see the content of the current directory as it is presented by the FTP server. You can also save this listing to disk and send it to Altap (email: support@altap.cz), we will try to support such listing.

To show raw listing of the current directory on the FTP server in panel:

Menu: | Plugins/FTP Client/Show Raw Listing
Context menu: | Right-click in panel and select Show Raw Listing.


Showing FTP Logs

The communication between the FTP client and FTP server is stored in FTP logs. These logs can help you to understand and solve common problems with FTP connections. See FTP Logs window for details on logs.

To show FTP Logs window:

Menu: Plugins/FTP Client/Show Logs

To show FTP Logs window and focus log for FTP connection in panel:

Context menu: Right-click in panel and select Show Log.

See Also

FTP Logs window


Advanced

Allows you to change advanced options in the FTP Client plugin.

Options

Size limit for memory cache
Specify the size limit for the memory cache in kilobytes. The memory cache is used for storing of listings (lists of files and directories) of visited paths on FTP servers. See Use cache for viewed files and lists of files and directories on server (faster browsing) in Configuration/Defaults for details.
Timeout for network actions
Set the timeout for waiting for response from FTP server, resolving IP address from name address, and other network actions.
Delay between connect retries and Number of connect retries
If the connection to the FTP server is lost (e.g. due to some network failure) during some operation, the plugin tries to reconnect to the server and to finish the operation. Specify here how long to wait before next connect attempt and maximum number of connect attempts (when exhausted, error is reported).
Cancel data connection if it is idle for XXX seconds
The FTP server is transferring data to or from the FTP client over a data connection. It happens sometimes (e.g. due to some network failure) that data are no longer transferred over this connection but no error is reported to the FTP client. The plugin detects these failures by monitoring the data connection. If it is idle (without transfer) for longer time than specified, the plugin closes the connection to the FTP server and tries to reconnect and finish operation with fresh connection.
Try to resume copying only if already copied part of file is at least XXX bytes and Number of bytes to verify (at end of file) when resuming copying from server
If the connection to the FTP server is lost (e.g. due to some network failure) during copying of a file to or from the server, the plugin tries to reconnect to the server and resume copying (if it is specified in the configuration, see Configuration/Operations 1 and Configuration/Operations 2). When resuming, there is always some potential risk that file will not be resumed correctly (due to some error in server or client software). To reduce this risk, the plugin does not resume copying if the already copied part of the file is smaller than specified limit (it starts copying of the whole file in such cases). Moreover when copying from the server to the local machine (or network), the plugin verifies specified number of bytes at the end of already copied part of the file (it downloads end part of file again to check if download will be resumed correctly). If this verification fails, the plugin offers you to cut off the end of already copied part of the file and try to resume copying again.


Confirmations

Specifies whether confirmation messages are displayed.

Options

Show message "You are leaving server. Do you wish to disconnect or to keep connection?"
When checked and you are going to leave path to the FTP server in panel (change path to another FTP server, plugin file system, disk, or archive), the plugin will ask you if you want to disconnect from this FTP server or if you want to keep the connection (it can be accessed later from the Change Drive menu). Otherwise, connection to the FTP server will be kept without asking.
Show message "Do you want to disconnect?"
Clear this check box if you do not want to receive a confirmation message before disconnecting from the FTP server. This option applies only to Disconnect commands from context menus.
Show message "Connection is closed. Do you want to reconnect?"
Clear this check box if you do not want to receive a confirmation message before reconnecting to the FTP server when connection is lost. This option applies only to connections used in panels.
Show message "Target name is already used. Do you want to overwrite it?" in Quick Rename
Clear this check box if you do not want to receive a confirmation message before renaming file or directory to existing name in the Quick Rename command.
Show message "Connection to FTP server has been lost"
Clear this check box if you do not want to receive a message when the connection to the FTP server in panel has been lost. Usually the FTP server closes the connection if the FTP client is not active or is not transferring any data for some time, usually 5 or 10 minutes. See Keep connections alive in Configuration/Defaults for details on how to prevent this.
Show message "If you always want to list hidden files and directories on this FTP server, ..."
Clear this check box if you do not want to receive a hint when changing the list command using the List Hidden Files and Directories (Unix) command. The hint informs how to change the list command persistently (directly in the FTP server bookmark).


Defaults

Use this tab to set default advanced options for connections, default settings for keeping connections alive, and default file transfer mode.

Options

Default advanced options for connections
Proxy server
If you are using a proxy server for access to FTP servers (usually on the Internet), specify settings for this proxy server here. A proxy server is an intermediary between local network (intranet) and the Internet. If you do not need to use a proxy server, select Not Used. To add settings for a proxy server click the Add button, it opens the Add/Edit Proxy Server dialog box. You can add more settings for proxy servers and later just choose which one to use.
Use passive transfer mode (may help if you are behind firewall or proxy server)
When checked, data connections are opened in the passive mode. It means that the FTP client opens data connection by connecting to the supplied port on the FTP server. Otherwise, data connections are opened in the active mode. It means that the data connection is opened by the FTP server by connecting to the supplied port on the FTP client. This mode is problematic if the FTP client is behind firewall or proxy server because they can block access to the FTP client (if they have not support for FTP protocol). The passive mode is not supported by some FTP servers (only few), you have to use active mode for accessing these FTP servers.
Keep connections alive (prevents server from disconnecting you due to no activity)
When checked, the FTP client tries to keep its connections alive. It means that if the FTP client is not sending commands or transferring data to/from the FTP server for longer than specified time, it starts periodical sending auxiliary commands or making auxiliary data transfers. This should prevent closing the connection by the FTP server due to no activity or no data transfer (usually after 5 or 10 minutes). See Default settings for keeping connections alive below for more information about keeping connections alive.
Use cache for viewed files and lists of files and directories on server (faster browsing)
When checked, all viewed files and all path listings (lists of files and directories) from the FTP server are cached. It allows to use these cached files and listings when they are requested next time. Advantage is faster browsing of already visited directories and viewing of already viewed files. Disadvantage is that listings and files could be changed and when they are taken from the cache, they can be out of date. Use the Refresh command to reset cache for the current directory and all its subdirectories (it removes all listings and all viewed files from cache). Cached files are stored in the temporary directory. Cached listings are stored in the memory cache, you can limit the size of this cache, see Size limit for memory cache in Configuration/Advanced.
Compress data transfers if server supports compression (MODE Z)
When checked, the plugin attempts to compress all data transfers (downloads and uploads, plus directory listings obtained from the server). No error is reported when the server does not support compression. However, you can check if compression is used: Check the result of the MODE Z command at the end of the Welcome Message or look for MODE Z just before the SYST or first PWD command in the FTP log.
Default settings for keeping connections alive
Choose a command which is sent to keep the connection alive (when the connection is not used to communicate with the server nor to send any data). NOOP and PWD commands are not transferring any data. If your FTP server closes connections due to no data transfer, use NLST or LIST commands. We recommend to use the NLST command because it transfers less data (the current path listing containing only filenames). Moreover specify a period of sending keep alive commands and when to stop sending keep alive commands. See Keep connections alive (prevents server from disconnecting you due to no activity) above for details on activation of the keep alive feature.
Default file transfer mode
Binary mode (no changes during tranfers)
When checked, all files are transferred in Binary mode. It means no changes in the file content during transfer.
ASCII mode (convert files to use system default line ends)
When checked, all files are transferred in ASCII mode. It means that all files are treated like text files and so all end of line characters will be converted to target system default end of line characters during transfer.
Automatic - ASCII mode for specified files
When checked, all files matching the specified file masks are transferred in ASCII mode and all others are transferred in Binary mode. See Binary and ASCII mode description above.


General

Use this tab to change the general behavior of the FTP Client plugin. See Configuring Plugins for general information about configuration.

Options

Show window with welcome message from server after connect
Clear this check box if you do not want to see a window with a welcome message from the FTP server immediately after you connect to it. The message contains communication between the client and server up to successful login reply from server (you can find this communication also in the FTP log). Usually this message contains general rules on the server, number of connected clients, etc.
Accept hex escape sequences in paths (known from web browsers, e.g. "%20" to " ")
When checked, hex escape sequences are accepted (known from web browsers, e.g. "%20" to " ") in the Address box in the Connect to FTP Server dialog box. Otherwise these sequences are ignored (not translated).
Close operation dialog automatically when operation is successfully finished in untouched dialog
When checked, the Operation dialog box is closed automatically when operation is successfully finished and you are not working with this dialog box (e.g. click some buttons or even only change focus). It closes this dialog box only if there is nothing important to see in it. Otherwise, you always have to close this dialog box manually.
Open Solve Error dialogs for errors automatically if operation dialog is idle
When checked, the plugin opens automatically the Solve Error dialog boxes. It opens these dialog boxes for all errors one by one and only if you are not currently working in the Operation dialog box. It should simplify error handling in the Operation dialog box. Otherwise, you have to open Solve Error dialog boxes manually (using the Solve Error button).
Password for anonymous connections (your e-mail)
You can specify your email address here. It is used as a password for annomynous connections to public FTP servers (they usually require it but do not check it).


Logs

Specifies if and how the communication with servers is logged. All logs are stored only in memory.

Options

Enable logging of communication with servers
When checked, the communication between the FTP client and FTP servers is logged. See Showing FTP Logs for details.
Limit size of log for one server to XXX kilobytes
When checked, you can specify the maximum size of the log for one server. If the communication is longer, the log contains only the last XXX kilobytes. Otherwise, the log size is limited only by the memory size.
Maximal number of kept logs for disconnected connections
When checked, you can specify the maximum number of kept disconnected connections logs. If there is more than specified number of such logs, the oldest is deleted. Otherwise, no logs are deleted.
Disable logging for connections used for file operations
When checked, connections used for file operations (in the Operation dialog box) are not logged. Otherwise, these connections are logged.


Operations

Altap Salamander: Plugins: FTP Client: Dialog Boxes: Configuration

Operations 1

Use this tab to set the default behaviour of file operations (copy and move from the FTP server, change attributes on the FTP server, delete on the FTP server).

Options

Copy and Move from FTP server
If target file already exists
Specify what to do if target file already exists. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate file name (which is not existing) and uses it as the new target file name.
Resume | Tries to resume copying or moving of the file. It uses already copied/moved part of the file, so it saves time and compensates network failures during copying/moving of the file. Unfortunately not all FTP servers support resuming (the REST command).
Resume or Overwrite | Tries to resume copying or moving of the file. If it is not possible, it overwrites the target file (it copies/moves whole file).
Overwrite | Overwrites the target file (it copies/moves whole file).
Skip | Skips the file (the file is not copied/moved).
If target directory already exists
Specify what to do if target directory already exists. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate directory name (which is not existing) and uses it as the new target directory name.
Use Existing Directory | Copies/moves the directory content to the existing directory.
Skip | Skips the directory (the directory is not copied/moved).
If target file name cannot be created
Specify what to do if target file name cannot be created. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate file name (which is not existing) and uses it as the new target file name.
Skip | Skips the file (the file is not copied/moved).
If target directory name cannot be created
Specify what to do if target directory name cannot be created. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate directory name (which is not existing) and uses it as the new target directory name.
Skip | Skips the directory (the directory is not copied/moved).
If transfer fails, how to retry it in case target file was created
Specify what to do if transfer fails. The target file was created or overwritten (not resumed). Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate file name (which is not existing) and uses it as the new target file name (it copies/moves whole file again).
Resume | Tries to resume copying or moving of the file. It uses already copied/moved part of the file, so it saves time and compensates network failures during copying/moving of the file. Unfortunatelly not all FTP servers support resuming (the REST command).
Resume or Overwrite | Tries to resume copying or moving of the file. If it is not possible, it overwrites the target file (it copies/moves whole file again).
Overwrite | Overwrites the target file (it copies/moves whole file again).
Skip | Skips the file (only a part of the file was copied/moved).
If transfer fails, how to retry it in case target file was resumed
Specify what to do if transfer fails. The target file was resumed (in fact it would not have to be resumed if the size of already copied/moved part of file was smaller than specified minimum, see Try to resume copying only if already copied part of file is at least XXX bytes in Configuration/Advanced). Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate file name (which is not existing) and uses it as the new target file name (it copies/moves whole file again).
Resume | Tries to resume copying or moving of the file. It uses already copied/moved part of the file, so it saves time and compensates network failures during copying/moving of the file. Unfortunatelly not all FTP servers support resuming (the REST command).
Resume or Overwrite | Tries to resume copying or moving of the file. If it is not possible, it overwrites the target file (it copies/moves whole file again).
Overwrite | Overwrites the target file (it copies/moves whole file again).
Skip | Skips the file (only a part of the file was copied/moved).
If ASCII transfer mode is set for file with binary content
Specify what to do if ASCII transfer mode is set for the file with binary content (the file type is detected from the first 10 KB of the file). If the file has binary content, the possible conversion of end of line characters will probably corrupt the file. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Ignore | Ignores this warning, the file copying/moving is finished in ASCII transfer mode. Use this action only if you are sure that it is a plain text file.
Use Binary Mode | It copies/moves the whole file again in Binary transfer mode.
Skip | Skips the file (the file is not copied/moved).
Change Attributes on FTP server
If existing attributes cannot be preserved (e.g. Unix 's' mode)
Specify what to do if existing access rights (attributes) cannot be preserved. For example if you want to set Read and Write and preserve Execute owner rights for file with 'r-s------' rights on Unix. The problem is that the FTP client can set only basic Unix rights ('rwxrwxrwx') and cannot modify only part of these rights. See Changing Access Rights for details. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Ignore | Ignores this problem, only basic access rights are set to the file. It means that existing rights (attributes) are not preserved (e.g. in preceding example it will set 'rwx------' instead of 'rws------').
Skip | Skips the file (the file access rights are not changed).
Delete on FTP server
If directory is not empty
Specify what to do if directory is not empty. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Delete | Deletes the directory (including its content).
Skip | Skips the directory (the directory is not deleted).
If file is hidden
Specify what to do if file is hidden. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Delete | Deletes the file.
Skip | Skips the file (the file is not deleted).
If directory is hidden
Specify what to do if directory is hidden. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Delete | Deletes the directory (including its content).
Skip | Skips the directory (the directory is not deleted).

See Also

Configuration/Operations 2


Operations 2

Use this tab to set the default behaviour of copy and move to the FTP server.

Options

Copy and Move to FTP server
If target file already exists
Specify what to do if target file already exists. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate file name (which is not existing) and uses it as the new target file name.
Resume | Tries to resume copying or moving of the file. It uses already copied/moved part of the file, so it saves time and compensates network failures during copying/moving of the file. Unfortunately not all FTP servers support resuming (the APPE command).
Resume or Overwrite | Tries to resume copying or moving of the file. If it is not possible, it overwrites the target file (it copies/moves whole file).
Overwrite | Overwrites the target file (it copies/moves whole file).
Skip | Skips the file (the file is not copied/moved).
If target directory already exists
Specify what to do if target directory already exists. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate directory name (which is not existing) and uses it as the new target directory name.
Use Existing Directory | Copies/moves the directory content to the existing directory.
Skip | Skips the directory (the directory is not copied/moved).
If target file name cannot be created
Specify what to do if target file name cannot be created. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate file name (which is not existing) and uses it as the new target file name.
Skip | Skips the file (the file is not copied/moved).
If target directory name cannot be created
Specify what to do if target directory name cannot be created. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate directory name (which is not existing) and uses it as the new target directory name.
Skip | Skips the directory (the directory is not copied/moved).
If transfer fails, how to retry it in case target file was created
Specify what to do if transfer fails. The target file was created or overwritten (not resumed). Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate file name (which is not existing) and uses it as the new target file name (it copies/moves whole file again).
Resume | Tries to resume copying or moving of the file. It uses already copied/moved part of the file, so it saves time and compensates network failures during copying/moving of the file. Unfortunatelly not all FTP servers support resuming (the APPE command).
Resume or Overwrite | Tries to resume copying or moving of the file. If it is not possible, it overwrites the target file (it copies/moves whole file again).
Overwrite | Overwrites the target file (it copies/moves whole file again).
Skip | Skips the file (only a part of the file was copied/moved).
If transfer fails, how to retry it in case target file was resumed
Specify what to do if transfer fails. The target file was resumed (in fact it would not have to be resumed if the size of already copied/moved part of file was smaller than specified minimum, see Try to resume copying only if already copied part of file is at least XXX bytes in Configuration/Advanced). Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Use Alternate Name | Finds some alternate file name (which is not existing) and uses it as the new target file name (it copies/moves whole file again).
Resume | Tries to resume copying or moving of the file. It uses already copied/moved part of the file, so it saves time and compensates network failures during copying/moving of the file. Unfortunatelly not all FTP servers support resuming (the APPE command).
Resume or Overwrite | Tries to resume copying or moving of the file. If it is not possible, it overwrites the target file (it copies/moves whole file again).
Overwrite | Overwrites the target file (it copies/moves whole file again).
Skip | Skips the file (only a part of the file was copied/moved).
If ASCII transfer mode is set for file with binary content
Specify what to do if ASCII transfer mode is set for the file with binary content (the file type is detected from the first 10 KB of the file). If the file has binary content, the possible conversion of end of line characters will probably corrupt the file. Choose one of the following actions:
Action | Description
Ask User | Displays dialog box where you can choose what to do.
Ignore | Ignores this warning, the file copying/moving is finished in ASCII transfer mode. Use this action only if you are sure that it is a plain text file.
Use Binary Mode | It copies/moves the whole file again in Binary transfer mode.
Skip | Skips the file (the file is not copied/moved).

See Also

Configuration/Operations 1


Servers

Allows you to manage supported FTP server types and add new ones if needed. See Getting Lists of Files and Directories from FTP Servers for details.

Options

Supported types of servers
Contains a list of supported server types. Click the right mouse button on an item to open a context menu with available commands. Double click an item to open it in the Edit Server Type dialog box.
New
Use this button to add a new server type. Tick the Copy data from... box in the New Server Type dialog box to make a copy of focused server type.
Edit
Use this button to edit focused server type. It is opened in the Edit Server Type dialog box.
Move Up and Move Down
Change order of items in the Supported types of servers list using these two buttons (focused server type can be moved up or down).
Other: Copy to
Use this command to copy focused server type to a new server type.
Other: Rename
Use this command to rename focused server type.
Other: Remove
Use this command to remove focused server type.
Other: Import from File and Export to File
Use these commands to import server type from a file or to export focused server type to a file.

See Also

Getting Lists of Files and Directories from FTP Servers


Add/Edit Proxy Server dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Add/Edit Proxy Server

Allows you to specify new settings for a proxy server or change existing settings. A proxy server is an intermediary between local network (intranet) and the Internet. Contact your network administrator if you are not sure how to specify these settings. This dialog can be opened using the Add or Edit button in the Advanced Options dialog box or Configuration/Defaults.

Options

Name
Choose some name (for future reference) for these settings for the proxy server.
Type
Choose the type of the proxy server.
Address
Specify the address (usually IP address) of the proxy server.
Port
Specify the port where is the proxy server listening (waiting for clients).
User name, Password, Save password, and Unlock
Enter user name and password used to authenticate to the proxy server. If your proxy server does not require authentication, leave these edit boxes empty. You can also leave only the Password edit box empty and the FTP client will ask you to enter the password just before connecting to the FTP server. If you want to save the password to the settings for the proxy server, check the Save password check box. IMPORTANT: You should protect your saved passwords by the Master Password otherwise they can be easily displayed in this dialog or decrypted by malicious software that have infiltrated your computer, see Using Password Manager for more information about saved passwords and related security risks. The Unlock button is displayed when you need to enter the Master Password to access the password. To clear the inaccessible password use the Clear Password command from drop-down menu on the Unlock button. To show the password hold the Ctrl key and right click to the Password edit box.
Login script
You can see here a login script for chosen FTP proxy server type (all types except SOCKS 4/4A/5 and HTTP 1.1). The login script defines how the FTP client should communicate with the FTP proxy server to connect to the desired FTP server. The FTP proxy server acts as an FTP server. The FTP client connects to it and sends it all required parameters: user name and password for proxy server (optional), address and port of desired FTP server, and user name and password for this FTP server. The FTP proxy server connects to the desired FTP server and forwards all commands and replies between the FTP client and the FTP server. The plugin supports many FTP proxy servers, you can choose from them in the Type combo box. If your FTP proxy server is not supported, choose the User Defined type of the FTP proxy server (in the Type combo box) and write your own login script (see Login Scripts for FTP Proxy Servers).


Advanced Options dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Advanced Options

Allows you to customize advanced options for connecting to the FTP server. This dialog can be opened using the Advanced button in the Connect to FTP Server dialog box or Organize Bookmarks dialog box.

Options

Proxy server
If you are using a proxy server for access to the FTP server (usually on the Internet), specify settings for this proxy server here. A proxy server is an intermediary between local network (intranet) and the Internet. Choose Default to use settings for the proxy server specified in Configuration/Defaults. If you do not need to use a proxy server, select Not Used. To add settings for a proxy server click the Add button, it opens the Add/Edit Proxy Server dialog box. You can add more settings for proxy servers and later just choose which one to use.
Target panel path
If you specify some path here, it will be displayed in inactive (target) panel when you connect to the FTP server. If you do not want to change the current directory in inactive panel, leave this edit box empty.
Connect to port
Specify a port where the FTP server waits for connections. It is usually 21 (default FTP server port).
Server type
Choose the server type used for parsing of plain text listings received from the FTP server. Choose Autodetect if the plugin should autodetect the appropriate server type. See Getting Lists of Files and Directories from FTP Servers for more information.
File transfer mode
Choose the mode for transferring of files. Select Default to use the transfer mode specified in Default file transfer mode section in Configuration/Defaults. See this option also for more information on transfer modes.
Command for listing
Specify what command should be used to receive the plain text listing of the current directory from the FTP server. FTP protocol contains two commands for listing: LIST (default) and NLST (name list). Some Unix FTP servers require an option "-a" behind the LIST command to list also hidden files and directories.
Initial FTP commands
You may need to send some auxiliary FTP commands to the FTP server whenever you connect to it. Enter the list of such commands here, the list is separated by ';' character (e.g. "CWD []; HELP"). Commands will be send to the FTP server immediately after the successful login. If you do not want to send any command, leave this edit box empty.
Keep connections alive (prevents server from disconnecting you due to no activity)
When checked, the FTP client tries to keep its connections alive. It means that if the FTP client is not sending commands or transferring data to/from the FTP server for longer than specified time, it starts periodical sending auxiliary commands or making auxiliary data transfers. This should prevent closing the connection by the FTP server due to no activity or no data transfer (usually after 5 or 10 minutes). Leave this check box in the third state if you want to use default settings (see Keep connections alive in Configuration/Defaults). Clear this check box to disable the keep connections alive feature.

When checked, choose a command which is sent to keep the connection alive (when the connection is not used to communicate with the server nor to send any data). NOOP and PWD commands are not transferring any data. If your FTP server closes connections due to no data transfer, use NLST or LIST commands. We recommend to use the NLST command because it transfers less data (the current path listing containing only filenames). Moreover specify a period of sending keep alive commands and when to stop sending keep alive commands.

Use passive transfer mode (may help if you are behind firewall or proxy server)
When checked, data connections are opened in the passive mode. It means that the FTP client opens data connection by connecting to the supplied port on the FTP server. When cleared, data connections are opened in the active mode. It means that the data connection is opened by the FTP server by connecting to the supplied port on the FTP client. This mode is problematic if the FTP client is behind firewall or proxy server because they can block access to the FTP client (if they have not support for FTP protocol). The passive mode is not supported by some FTP servers (only few), you have to use active mode for accessing these FTP servers. Leave this check box in the third state if you want to use default settings (see Use passive transfer mode in Configuration/Defaults).
Use cache for viewed files and lists of files and directories on server (faster browsing)
When checked, all viewed files and all path listings (lists of files and directories) from the FTP server are cached. It allows to use these cached files and listings when they are requested next time. Advantage is faster browsing of already visited directories and viewing of already viewed files. Disadvantage is that listings and files could be changed and when they are taken from the cache, they can be out of date. Use the Refresh command to reset cache for the current directory and all its subdirectories (it removes all listings and all viewed files from cache). Cached files are stored in the temporary directory. Cached listings are stored in the memory cache, you can limit the size of this cache, see Size limit for memory cache in Configuration/Advanced. Leave this check box in the third state if you want to use default settings (see Use cache for viewed files and lists of files and directories on server in Configuration/Defaults). Clear this check box if you do not want to use any cache.
Encrypt control connection with TLS/SSL
Encrypt data connection (file transfers and directory listings) with TLS/SSL
Communication over the FTP protocol uses one control connection to transfer commands and login information. Then there are several data connections, each is used exactly for one transfer (in any direction) of one file or directory listing.
The FTP plugin supports secure TLSv1/SSLv3 encryption using the AUTH TLS command specified in the RFC 4217 document. This way of encryption is sometimes called FTPES, i.e. FTP with Explicit SSL, but generally it is called FTPS, i.e. FTP-SSL. If the server supports it (public servers usually don't), the plugin can encrypt the communication. You can choose whether you wish to encrypt the control connection only (to hide your password) or also the data connections (to hide everything). These two check boxes are enabled only on Windows 2000 and later systems because FTPS is not supported on older systems.
Compress data transfers if server supports compression (MODE Z)
When checked, the plugin attempts to compress all data transfers (downloads and uploads, plus directory listings obtained from the server). No error is reported when the server does not support compression. However, you can check if compression is used: Check the result of the MODE Z command at the end of the Welcome Message or look for MODE Z just before the SYST or first PWD command in the FTP log. Leave this check box in the third state if you want to use default settings (see Compress data transfers if server supports compression (MODE Z) in Configuration/Defaults).

See Also

Connect to FTP Server dialog box
Configuration/Defaults


Connect to FTP Server dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Connect to FTP Server

Use this dialog to open new connection to FTP server. You can store your favourite FTP servers to FTP bookmarks and use these bookmarks to quickly access these servers.

Options

List of FTP Bookmarks
Contains the list of your FTP bookmarks. When you focus a bookmark, its parameters are shown in the rest of the dialog (e.g. Address, User Name, and Initial Path). If you do not want to use a bookmark, focus the Quick Connect item (it is always the first item) in this list. Right click on a bookmark (or use the Shift+F10 key) to open the context menu with available commands. Use drag&drop (or Move Up/Down commands) to change order of bookmarks.
Address
Specify the FTP server address. It can be IP address or name address. Use the drop-down list to select previously used address. You can also enter the URL address here (format ftp://user:password@server:port/path), it will be split to user name, password, server address, port number, and initial path (when the edit box loses focus).
Initial path
Specify the initial path on the FTP server. When you connect to this server, the FTP client will try to change the working directory to this path. If you do not want to use it, leave it empty.
Anonymous login
When checked, the FTP client will try to login anonymously to the FTP server (user anonymous, password should be your email address, see Password for anonymous connections in Configuration/General). Otherwise, the FTP client will try to login using your user name and password.
User name, Password, Save password, and Unlock
Specify your user name and password here. You can also leave one or both of these edit boxes empty, the FTP client will ask you to enter these values if the FTP server will require them during login procedure. If you want to save the password to the bookmark, check the Save password check box. IMPORTANT: You should protect your saved passwords by the Master Password otherwise they can be easily displayed in this dialog or decrypted by malicious software that have infiltrated your computer, see Using Password Manager for more information about saved passwords and related security risks. The Unlock button is displayed when you need to enter the Master Password to access the password. To clear the inaccessible password use the Clear Password command from drop-down menu on the Unlock button. To show the password hold the Ctrl key and right click to the Password edit box.
Advanced
Use this button to open the Advanced Options dialog box. Advanced options are displayed in brief in the box behind the Advanced button (just for quick preview).
New, Rename, and Remove
Use these buttons to manage bookmarks. The New button allows you also to copy parameters from the focused bookmark (duplicate bookmark).
Connect
Use this button to open new connection to the FTP server (parameters of this server are currently displayed in the dialog box). All changes in bookmarks will be kept.
Close
Use this button to close this dialog box without connecting to any FTP server. All changes in bookmarks will be kept. If you want to lose changes made in bookmarks, click the Cancel button.

See Also

Connecting to FTP Server


Copy dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Copy

Use this dialog box to copy selected files and directories from the source panel into destination directory.

Options

Copy to
Contains a path to the destination directory. It can be only full or relative disk path (copying to archives and plugin file systems are not supported). This area is initialized with the path to the target panel, but you can change it to any other directory. You can use the operation mask to change copied filenames. Use the drop-down list to select previously used destination directory.

See Also

Copying Files and Directories


New/Edit Column dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

New/Edit Column

Use this dialog to add new or edit existing column in the server type. Use the New or Edit button in the Edit Server Type dialog box to open this dialog. See Getting Lists of Files and Directories from FTP Servers for details on columns.

Options

Identifier
Specify the column identifier.
Name
Specify the name of the column. This name will be displayed in panel. You can choose from the predefined names (advantage: it will be automatically translated to all language versions of the plugin) or enter some custom name (but it will not be possible to translate it).
Type
Choose the type of the column.
Empty value
Specify the empty value for the column. The format of this value varies depending on the column type and is displayed behind this edit box.
Description
Specify the description of the column. This description can be displayed in panel. You can choose from the predefined descriptions (advantage: it will be automatically translated to all language versions of the plugin) or enter some custom description (but it will not be possible to translate it).
Alignment
Choose the alignment of values displayed in the column.

See Also

Edit Server Type dialog box


Edit Server Type dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Edit Server Type

Use this dialog to edit a server type. Use the Edit button in Configuration/Servers to open this dialog. See Getting Lists of Files and Directories from FTP Servers for details on server types.

Options

Autodetect condition
Specify the autodetect condition. Click on the button behind this edit box to open context menu with available operators and functions.
Columns in panel
Contains the list of defined columns. These columns are displayed in panel when the listing is parsed with this server type. If you want to hide some column in panel, clear the check box before its identifier in the list. Double click the column to edit it in the Edit Column dialog box. Right click the column to open the context menu with available commands.
New, Edit, Remove, and Move Up/Down
Use these buttons to add new column, edit or delete existing column, and change order of columns.
Rules for parsing of listing
Specify rules for parsing. Right click to open the context menu with available functions, state variables, and operators.
Test Parser
Use this button to open the Test of Parser dialog box. In this dialog box you can test if specified rules for parsing are working properly.

See Also

Configuration/Servers
Edit Column dialog box
Test of Parser dialog box


FTP Logs Window

Altap Salamander: Plugins: FTP Client: Dialog Boxes

FTP Logs

All FTP connection logs can be displayed in this window. Each log contains communication between the client and server, mainly what FTP commands were sent and what replies to these commands were received. Customize logging in Configuration/Logs. You can leave the FTP Logs window opened while you are working in panel.

The combo box placed just below the menu bar contains the list of all available logs. The chosen log is shown in the edit box which fills nearly entire FTP Logs window.

Menu Commands

Log/Copy
Copies the currently viewed log to the clipboard.
Log/Copy All
Copies all logs to the clipboard.
Log/Save As
Saves the currently viewed log to a chosen file.
Log/Save All As
Saves all logs to a chosen file.
Log/Clear
Clears the current log. The log still exists so any further communication is logged.
Log/Remove
Removes the current log. The log does not exist anymore so any further communication is not logged.
Log/Remove All
Removes all logs. Logs do not exist anymore so any further communication is not logged.
Log/Close
Closes the FTP Logs window.
Options/Always show log for active panel
When checked, whenever you activate panel or the Operation dialog box (or change focus in the Connections listview in the Operation dialog box), the log for currently used connection in panel or focused connection in the Operation dialog box is shown. Note: it does not open the FTP Logs window, so you can use this feature only when the FTP Logs window is opened.

See Also

Showing FTP Logs


Change Attributes dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Change Attributes

Allows you to change access rights (attributes) on Unix FTP servers.

Options

Owner: Read, Write, Execute (Access)
Group: Read, Write, Execute (Access)
Others: Read, Write, Execute (Access)
Specify new access rights for owner, group, and others. When checked, the right will be set. When cleared, the right will be cleared. When the check box is in third state, the right will be preserved (it will stay as is).
Numeric value
You can also set access rights using their octal representation. First digit is for owner rights, second for group rights, and third for others rights. Numerical values for rights are these: 1 = Execute (Access), 2 = Write, 4 = Read. Use '-' character to preserve all rights (e.g. "6-0" means read and write for owner, preserve group rights, and no rights for others). Note: it is not possible to preserve only some part of rights (e.g. only read for owner) in this way.
Include subdirectories
When checked, it will process also files and directories in selected subdirectories. Otherwise it will process only selected subdirectories (without content).
Change attributes of files
When checked, selected files (and also files in subdirectories if Include subdirectories is checked) will be processed. Otherwise it will skip all files.
Change attributes of directories
When checked, selected directories (and also directories in subdirectories if Include subdirectories is checked) will be processed. Otherwise it will skip all directories.

See Also

Changing Access Rights (Unix)


Move dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Move

Use this dialog box to move selected files and directories from the source panel into destination directory.

Options

Move to
Contains a path to the destination directory. It can be only full or relative disk path (moving to archives and plugin file systems are not supported). This area is initialized with the path to the target panel, but you can change it to any other directory. You can use the operation mask to rename processed filenames. Use the drop-down list to select previously used destination directory.

See Also

Moving or Renaming Files and Directories


Operation dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Operation

This dialog box is used by the following operations: copy and move from/to the FTP server and change attributes and delete on the FTP server. All operations are running on background, so you can switch back to the main window of Altap Salamander and continue in work.

See the Remarks section below for better understanding of this dialog behaviour.

Options

Time left
Displays how much time is left before the operation is finished. It estimates time only when the operation is running.
Elapsed time
Displays how much time elapsed since the operation started. It measures only time when the operation is running (it ignores time when it is stopped, paused, or waiting for user).
Status
Displays status of the operation (e.g. how many bytes were already copied, what is the total trasfer rate, or how many files were deleted).
Progress
Shows the progress of the operation in percents. It is the ratio between finished part of operation and total size of operation. Finished part of operation is sum of successfully finished items (operations in the Operations listview), skipped items, and finished part of currently processed items.
Close this dialog when operation finishes
When checked, this dialog box is closed automatically when the operation is finished (all items are successfully finished or skipped). Otherwise you must close this dialog box manually. See also the Close operation dialog automatically when operation is successfully finished in untouched dialog option in Configuration/General.
Details
Use this button to show operation details (the dialog box is enlarged). Click this button again to hide operation details.
Errors
Use this button to show errors which occured during operation. It shows operation details (the dialog box is enlarged) and filters items in the Operations listview only to items with error or user prompt and skipped items.
Pause/Resume
Click the Pause button to pause operations in all connections. When operations in all connections are paused, this button changes to the Resume button. Use it to resume operations in all connections.
Cancel/Close
Use this button to cancel operation (if running) and close this dialog box.
Connections: Solve Error, Add, Stop, Pause/Resume
Contains all connections used in this operation. It shows identification number of connection (ID column) and what is happening in the connection (Action and Status columns) for each connection. You can focus any connection in this listview and than click on buttons under this listview.

Use the Solve Error button (or double click) on the connection in error state to open the Error Connecting to FTP Server dialog box where you can try to solve this error.

Click the Add button to add new connection for the operation. You may use as many connections as you want but reasonable number of connections is five or less. You may try to add more connections but you will probably see that it will not shorten total operation time.

Click the Stop button to stop focused connection. If it processes some operation, this operation will be canceled and processed in some other connection later.

Click the Pause button to pause the operation in focused connection. If the connection with paused operation is focused, the Pause button will change to the Resume button. Use it to resume the operation in focused connection.

You can drag (using the left mouse button) the bottom edge of the Connections listview to change the ratio between heights of the Connections listview and the Operations listview. It is possible only if you enlarge this dialog to provide some space for these listviews.

If you need to see the FTP log for some connection, open the FTP Logs window and then focus connection in this listview, its log should be activated in the FTP Logs window (it assumes that Options/Always show log for active panel is checked in the FTP Logs window). To open the FTP Logs window, switch to the main window of Altap Salamander and choose the Show Logs command from the Plugins/FTP Client menu.

Operations: Show only errors, Solve Error, Retry, Skip
Contains all operations that must be finished to complete the entire operation. It shows operation description and status (see Remarks section for details on operation status). You can focus any operation in this listview and than click on buttons under this listview.

If the Show only errors check box is checked, items in the Operations listview are reduced only to items with error or user prompt and skipped items.

Use the Solve Error button (or double click) on the focused operation to open a dialog box where you can try to solve the error which has occured during processing of the focused operation, provide some user input needed for further processing of the focused operation, or retry the focused operation if it was skipped (automatically or by user). See the Solve Error dialog boxes for general description of these dialog boxes. See also the Open Solve Error dialogs for errors automatically if operation dialog is idle option in Configuration/General.

Click the Retry button to retry the focused operation (it will be processed again). It is possible only if the operation is not successfully finished nor postponed.

Click the Skip button to skip the focused operation (it will not be processed). It is possible only if the operation is waiting for processing or for some user input or if the operation was not finished due to some error.

You may also want to stop processing of some operation. It is not directly supported but you can use the following procedure. Pause all connections (click the Pause button), find the connection with the operation and stop it (focus it and click the Stop button). Focus the operation (it should be waiting for processing now) and click the Skip button. Then resume all connections (click the Resume button) and you can also add new connection (click the Add button).

Remarks

All operations use the connection from panel at the start. It saves time needed for opening new connection and bypasses problem with opening next connection to the FTP server with limited number of allowed connections from one client (from one IP address). The connection is returned back to panel when operation finishes or when you try to stop this connection manually (see the Stop button above). If you switch back to the main window of Altap Salamander before the connection is returned and panel needs to use the connection (e.g. to refresh panel content), you will be prompted if you want to open new connection.

You can use more connections for any operation. It can save a lot of time especially when the operation copies many small files, changes attributes to many files and directories, or delete many files and directories. The reason is that while the connection is negotiating (it sends FTP command and then waits for server reply and then send next FTP command and again waits for reply, etc.), it cannot use the full bandwidth, so other connections can try to use the rest of bandwidth.

The plugin always tries to finish the largest possible part of the operation. For example: if you copy three files and the second file needs your attention because target file already exists, the third file is copied without waiting for anything. The second file is copied as soon as you answer the overwrite prompt. We recommend to set the default behaviour of file operations according to your needs to avoid unnecessary user prompts (e.g. overwrite prompt), see Configuration/Operations 1 and Configuration/Operations 2.

We try to explain how the operation is processed in all opened connections simultaneously. The plugin priority is to split the operation into basic operations with simple dependencies (the best is without any dependencies). For example, when copying directory, the plugin creates the target directory tree first because remaining operations are all of the same type: copying file to existing directory which is simple operation without any dependency (you can process any number of these operations simultaneously).

All operations are stored in the list which is displayed in the Operations listview. Operation status can be: "waiting" (it is waiting for processing), "postponed" (further processing is postponed until all dependent operations are successfully finished), "processing" (it is processing in some connection now), "finished" (it was successfully finished), "ask user" (some user input is needed before further processing), "error" (it was not finished because of some error), or "skipped" (it was skipped). Operations without dependencies are "waiting" when added to the list. Operations with dependencies are "postponed" and their status changes to "waiting" when all dependent operations are "finished" (e.g. "delete source directory" is dependent on all successful "move file" operations for files contained in the source directory). Each connection gets some "waiting" operation from the list, locks this operation by changing its status to "processing", and tries to process it. If some user input is needed during processing (e.g. overwrite prompt if target file already exists), the operation status is changed to "ask user" and the connection is free for processing next "waiting" operation. The same thing happens if the operation is processed successfully, if it is not processed due to some error, or if it is skipped. It just changes status of the operation to "finished", "error", or "skipped" and the connection is free for processing next "waiting" operation.

See Also

Solve Error dialog boxes


Organize Bookmarks dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Organize Bookmarks

Use this dialog to manage your FTP bookmarks containing connection parameters for your favourite FTP servers.

Options

List of FTP Bookmarks
Contains the list of your FTP bookmarks. When you focus a bookmark, its parameters are shown in the rest of the dialog (e.g. Address, User Name, and Initial Path). Right click on a bookmark (or use the Shift+F10 key) to open the context menu with available commands. Use drag&drop (or Move Up/Down commands) to change order of bookmarks.
Address
Specify the FTP server address. It can be IP address or name address. Use the drop-down list to select previously used address. You can also enter the URL address here (format ftp://user:password@server:port/path), it will be split to user name, password, server address, port number, and initial path (when the edit box loses focus).
Initial path
Specify the initial path on the FTP server. When you connect to this server, the FTP client will try to change the working directory to this path. If you do not want to use it, leave it empty.
Anonymous login
When checked, the FTP client will try to login anonymously to the FTP server (user anonymous, password should be your email address, see Password for anonymous connections in Configuration/General). Otherwise, the FTP client will try to login using your user name and password.
User name, Password, Save password, and Unlock
Specify your user name and password here. You can also leave one or both of these edit boxes empty, the FTP client will ask you to enter these values if the FTP server will require them during login procedure. If you want to save the password to the bookmark, check the Save password check box. IMPORTANT: You should protect your saved passwords by the Master Password otherwise they can be easily displayed in this dialog or decrypted by malicious software that have infiltrated your computer, see Using Password Manager for more information about saved passwords and related security risks. The Unlock button is displayed when you need to enter the Master Password to access the password. To clear the inaccessible password use the Clear Password command from drop-down menu on the Unlock button. To show the password hold the Ctrl key and right click to the Password edit box.
Advanced
Use this button to open the Advanced Options dialog box. Advanced options are displayed in brief in the box behind the Advanced button (just for quick preview).
New, Rename, and Remove
Use these buttons to manage bookmarks. The New button allows you also to copy parameters from the focused bookmark (duplicate bookmark).
Close
Use this button to close this dialog box. All changes in bookmarks will be kept. If you want to lose changes made in bookmarks, click the Cancel button.

See Also

Organizing Bookmarks
Adding Bookmark


Send FTP Command dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Send FTP Command

Use this dialog to send FTP commands directly to the FTP server.

Options

Command
Specify the command to send. Use the drop-down list to select previously used command.
Secret command (hide typing and neither remember it nor show it in log)
When checked, the Command edit box is in password mode (text in the box is not readable), the command will not be added to the list of previously used commands, and it will not be visible in the FTP log. Use this mode when you are sending some command containing sensitive data (e.g. password).
Command can change working path on server (change path in panel too)
When checked, the FTP client will get new current directory on the FTP server after sending of the command. Otherwise the FTP client does not expect that the current directory on the FTP server can be changed by sending of the command.
Command can make changes on working path (refresh working path)
When checked, the FTP client refreshes the current directory after sending of the command. Otherwise the panel content is not refreshed.

See Also

Sending FTP Command


Set New Attributes dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Set New Attributes

Allows you to set new access rights (attributes) to the file or directory on Unix FTP servers. To display this dialog use the Set New Attributes command in the Some of Existing Attributes Cannot be Preserved dialog box (it is one of Solve Error dialog boxes).

Options

Path, Name
Specifies the file or directory to which you are setting new access rights (attributes).
Current attributes
Shows the current access rights (attributes) of the file or directory.
Owner: Read, Write, Execute (Access)
Group: Read, Write, Execute (Access)
Others: Read, Write, Execute (Access)
Specify new access rights for owner, group, and others. When checked, the right will be set. When cleared, the right will be cleared.
Numeric value
You can also set access rights using their octal representation. First digit is for owner rights, second for group rights, and third for others rights. Numerical values for rights are these: 1 = Execute (Access), 2 = Write, 4 = Read. For example: "640" means read and write for owner, read for group, and no rights for others.
Set New Attributes
Click on this button to set new access rights (attributes).
Use these attributes in operations with the same error now
Select this check box if you want to set the same access rights (attributes) in all operations (see the Operations listview in Operation dialog box) which are currently in the same error state (error: some of existing attributes cannot be preserved). Note: this will not apply to operations which will get to the same error state in the future.


Solve Error dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Solve Error Dialog Boxes

Use these dialog boxes to solve errors in operations, to answer confirmations and user prompts in operations, and to retry skipped operations. You can see the list of Solve Error dialog boxes in Remarks section. Dialogs are opened from the Operation dialog box (see Operations: Show only errors, Solve Error, Retry, Skip options for details).

Options

Details, Error description
Contains additional information to help you better understand the problem. It may be for example a system error message description or an error reply received from the FTP server.
Path, Name
Specifies the file or directory which is a subject of the operation.
Source path, Source Name
Specifies the source file or directory.
Target path, Target name
Specifies the target file or directory. Often you can change the target name. If you rename target file or directory this way, use the Retry button to retry the operation with the new target name.
Current attributes
Displays the current access rights (attributes) of the file or directory which is a subject of the operation.
New attributes
Displays the suggested (new) access rights (attributes) for the file or directory which is a subject of the operation.
Remember choice and do not show this dialog again for operations with the same error
All operations with the same error (or the same confirmation or user prompt) in the current Operation dialog box will be solved automatically in the same way as this operation (e.g. if this operation is skipped, all others will be skipped too). Note: this applies to all operations already in the same error state and also to all operations which will get to the same error state in the future.
Apply to operations with the same error now
All operations already in the same error state (or with the same confirmation or user prompt) in the current Operation dialog box will be solved in the same way as this operation (e.g. if this operation is skipped, all others will be skipped too). Note: it does not apply to operations which will get to the same error state in the future.
Buttons / Commands (commands are in drop-down menu on the default button)
Retry
Use this button to process the operation again. You can use it if you think that this time the operation will succeed (e.g. you have removed some file in the way) or if you need to rename target file or directory (you must change its name in the Target Name edit box first).
Skip
Use this button to skip the operation.
Cancel
Use this button to close this dialog box (you can solve this error later). If you want to cancel whole operation, use the Cancel button in the Operation dialog box. If you want to skip this operation, use the Skip button.
Use Existing Directory
Use this command to copy/move to existing target directory. See If target directory already exists options in Configuration/Operations 1 and Configuration/Operations 2 for details.
Use Alternate Name
This command finds some alternate target name (which is not existing) and copies/moves file or directory to this name.
Resume
Use this command to resume copying or moving of a file. It is useful when copying or moving was broken (e.g. when connection to the FTP server is lost) and you want to continue in copying or moving at the point where it was broken (instead of copying or moving whole file again). It can save a lot of time.
Overwrite
Use this button to overwrite the existing target file.
Overwrite All
Use this button to overwrite the existing target file. Moreover it selects the Remember choice and do not show this dialog again for operations with the same error option (see its description above).
Resume or Overwrite
This command tries to resume copying or moving of a file (see Resume above for details) and if it is not possible (e.g. the FTP server does not support it), it overwrites the existing target file (it copies or moves whole file again).
Ignore
Use this button to ignore the warning (e.g. that some of existing attributes cannot be preserved) and continue in processing of the operation.
Set New Attributes
Use this command to open the Set New Attributes dialog box where you can set new access rights (attributes) for the file or directory.
Delete
Use this button to confirm delete operation (e.g. allow deleting of hidden file).
Mark as Deleted
Use this command when deleting a file or directory and this file or directory has been already deleted (e.g. by other user or from other FTP client). The operation will be marked as finished.
Reduce File Size And Try to Resume Again
This command reduces file size (it cuts off the end of the file) and tries to resume copying or moving of the file again. The file is reduced by the number of verified bytes. See Number of bytes to verify (at end of file) when resuming copying from server in Configuration/Advanced.
Mark File As Successfully Uploaded
In some rare cases, it is not possible to test if the file was completely (successfully) uploaded (copied to the FTP server). You can test the file manually on the FTP server (or copy it back to this machine and then test it). Then use this command to mark file as successfully uploaded (e.g. when you are moving the file, the source file will be deleted only after your confirmation).

Note: this can happen only if the FTP client sends a whole file over a data connection to the FTP server and the FTP server does not confirm receiving of the file and the FTP client is not able to test target file size (if ASCII transfer mode is used, or if file size in bytes is not supported on the FTP server).

Use Binary Mode
When you copy or move a file with binary content (the file type is detected from the first 10 KB of the file) using ASCII transfer mode, the possible conversion of end of line characters will probably corrupt the file. When this problem is detected, use this button to copy or move the file again but using the Binary transfer mode.

Remarks

The list of Solve Error dialog boxes: ASCII Transfer Mode is Set for File with Binary Content, Some of Existing Attributes Cannot be Preserved, Insufficient System Resources to Complete Operation, Error Creating Target Directory with Alternate Name, Error Creating Target Directory with Alternate Name, Error Creating Target Directory, Target Directory Already Exists, Error Creating Target File, Target File Already Exists, Transfer Has Failed, Target Directory or Link to Directory Already Exists, Error Creating Target File with Alternate Name, Confirm Deleting of Hidden Directory, Confirm Deleting of Hidden File, Confirm Deleting of Non-Empty Directory, Error Changing Working Path On Server, Error Getting Working Path On Server, Error Reading List of Files and Directories from Server, Error Preparing Active Data Connection, Error Resolving Link, Error Changing Attributes, Error Deleting File or Link, Error Deleting Directory, Error Listing Target Path, Error Reading List of Files and Directories from Disk, Error Opening Source File, Error Reading Source File, Error Parsing Listing of Files and Directories from Server, Target File Is Locked By Another Operation, Source File Is Locked By Another Operation, Error Resuming File, Error Reading Target File, Error Writing Target File, Error Retrieving File from Server, Error Deleting Source File After Successful Transfer, Error Storing File to Server, and Error Testing File.

See Also

Operation dialog box


Test of Parser dialog box

Altap Salamander: Plugins: FTP Client: Dialog Boxes

Test of Parser

Use this dialog to test if rules for parsing are working properly. Click the Test Parser button in the Edit Server Type dialog box to open this dialog. See Getting Lists of Files and Directories from FTP Servers for details on rules for parsing.

Options

Raw listing
Contains the plain text listing from the FTP server which should be parsed. You can paste here (from the clipboard) a sample of the raw listing which you need to test. You can also change the listing manually to test all needed variants.
Act as if raw listing is incomplete (terminated)
When checked, the listing is considered to be incomplete. Use this mode if you want to test your parser behaviour for incomplete listings. Otherwise the listing is considered to be complete.
Parse Raw Listing
Click this button to start parsing of the listing.
Read Raw Listing from File
Use this button to read a listing from a file. The listing is displayed in the Raw listing edit box.
Results of parsing
Contains results of parsing. These lines will be displayed in panel. When you click on a line, the part of the listing used to get this line will be selected in the Raw listing edit box.

See Also

Edit Server Type dialog box


Getting Lists of Files and Directories from FTP Servers

FTP client needs to get the list of files and directories in the current directory on the FTP server. It should contain as many information about files and directories as possible (date, size, user, group, access rights, etc.). These files and directories are listed in panel where you can work with them. The list of files and directories is got from the plain text listing received from the FTP server. This listing is designed only for reading by a human, not for automatic parsing. It means that nearly each FTP server software has its own format of this listing (format depends on the server operating system, its language version, etc.). So the FTP client must handle many formats of listings.

For each format of listing we define one server type. It contains a condition used to autodetect server type (autodetect condition), a list of available data columns (including their visibility in panel), and a parser for plain text listing. All defined server types are displayed in Configuration/Servers. You can add new or edit existing in Edit Server Type dialog box.

You can choose if the server type should be autodetected or not. If not, choose what server type should be used. See the Server type option in the Advanced Options dialog box.

Getting Lists of Files and Directories with Specified Server Type

The specified server type is used to parse the plain text listing. If parsing is successful, the list of files and directories is its result. If not, the plugin displays warning and only the plain text listing is displayed in panel (such listing is unusable for any operation).

A directory "." (if it is in the listing) and a directory ".." (if it is in the listing and if it is the listing for the root directory) are removed from the list of files and directories. The directory ".." (if it is in the list) is always visible (the hidden attribute is ignored).

Getting Lists of Files and Directories with Autodetected Server Type

All defined server types are tried one by one. The autodetect condition is evaluated for each server type. If it is false, the server type is skipped (and next one is tried). If it is true, the server type is used to parse the plain text listing. If parsing is successful, the list of files and directories is its result. If not, the server type is skipped (and next one is tried).

If no server type was successfully used for parsing, all server types skipped due to autodetect condition are tried one by one. Each such server type is used to parse the plain text listing. If parsing is successful, the list of files and directories is its result. If not, the server type is skipped (and next one is tried).

If all defined server types failed in parsing, the plugin displays warning and only the plain text listing is displayed in panel (such listing is unusable for any operation).

The server type is autodetected only for the first listing from the server. The same server type is used for all other listings (it allows to display the same columns also for empty listings, etc.). If the listing cannot be parsed with the same server type, the plugin tries to autodetect another server type.

A directory "." (if it is in the listing) and a directory ".." (if it is in the listing and if it is the listing for the root directory) are removed from the list of files and directories. The directory ".." (if it is in the list) is always visible (the hidden attribute is ignored).

Syntax of Parser

A line comment starts with '#' character (and ends on end of line character).

Each rule starts with '*' character and ends with ';' character. The number of rules is not limited. The rule consists of functions delimited by ',' character.

The function consists of name, '(' character, list of parameters, and ')' character. The complete list of functions is placed further in this page.

Parameters in the list of parameters are delimited by ',' character. Parameters are expressions.

The expression is a column identifier, a state variable, a constant, or one binary operation. The binary operation has a standard form (first_operand operation_symbol second_operand). The operand can be a column identifier, a state variable, or a constant.

The column identifier consists of '<' character, identifier name, and '>' character.

The complete lists of state variables and operation symbols are placed further in this page.

The constant is a string, a number, or a boolean.

The string is enclosed in double quotes ('"' characters). It must be defined in a single line. Escape-sequences are introduced by '\' character. Supported escape-sequences are: "\\" for '\' character, "\"" for '"' character, "\t" for tab character, "\r" and "\n" for end of line characters (CR and LF). Other escape-sequences are reported as syntax errors.

The number consists of decimal digits. Negative number is introduced by '-' character. Positive number is introduced by '+' character (it can be omitted).

The boolean is "true" or "false" (write it without double-quotes).

Columns

Each column has an identifier name, a type of values, an empty value, a name and description for displaying in panel, and an alignment of values. The identifier name is used in the column identifier which is used for assigning values to the column. Each column can contain only one value for each item (a file or directory). If no value was assigned to the column, the empty value defined for the column is used. The column can be visible in panel or not. Only columns of Name and Extension types are always visible in panel. Columns are defined in the New/Edit Column dialog box.

We have the following types of columns:

Type | Description
Name | string; file or directory name; exacly one column of this type is neccessary; it cannot be hidden; the definition of the empty value for this column has no sense; parser must assign a value to this column for each file and directory; if no value is assigned, parsing using the current rule does not add any file nor directory (it is used for skipping empty lines and other not important parts of the plain text listing); assigning of the empty string ("") is considered to be an error in parsing
Extension | string; file extension; values are automatically generated from values in the column of the Name type; it cannot be hidden; the definition of the empty value for this column has no sense
File Size in Bytes | 64-bit unsigned integer; file size in bytes; the value is zero and is displayed as "DIR" in panel for all directories; the default empty value is zero
Last Write Date | date; last write (modification) date; a date value must be valid (if not, it is replaced by the value January 1, 1602); the default empty value is January 1, 1602
Last Write Time | time; last write (modification) time; the default empty value is 0:00:00
File Type | string; file type description (defined by Windows for file extensions); values are automatically generated from values in the column of the Name type; the definition of the empty value for this column has no sense
Any Text | string; general purpose; the default empty value is the empty string ("")
Any Date | date; general purpose; a date value must be valid (if not, it is replaced by the value January 1, 1602); the default empty value is the empty string (""), it means that if the value is not assigned, nothing is shown in panel
Any Time | time; general purpose; the default empty value is the empty string (""), it means that if the value is not assigned, nothing is shown in panel
Any Number | 64-bit signed integer; general purpose; the default empty value is the empty string (""); it means that if the value is not assigned, nothing is shown in panel

Moreover we have three virtual columns with identifiers <is_dir>, <is_hidden> a <is_link>. We assign boolean values to these columns. Their meanings are: "is item a directory?" (false means that it is a file), "is item hidden?" (false means that it has not hidden attribute), and "is item a link?" (false means that it is not a link). It is not neccessary to assign values to these columns, their empty values are: "is a file", "is not hidden", and "is not a link".

Syntax of Autodetect Condition

The autodetect condition is a logical expression. Operators in the expression are (from the highest priority): NOT, AND, and OR. NOT (logical negation) is unary, AND (logical conjunction) and OR (logical disjunction) are binary. The expression can contain subexpressions enclosed in parentheses. We have the following functions that are used as operands:

Function | Description
syst_contains(string) | returns true only if a reply to the FTP command SYST (get type of operating system at the server) contains the specified string (searching is not case sensitive)
welcome_contains(string) | returns true only if the first message from the server contains the specified string (searching is not case sensitive)
reg_exp_in_syst(regular_expression_string) | returns true only if a reply to the FTP command SYST (get type of operating system at the server) contains a string matching to the specified regular expression (searching is not case sensitive)
reg_exp_in_welcome(regular_expression_string) | returns true only if the first message from the server contains a string matching to the specified regular expression (searching is not case sensitive)

Parsing

The parsing is successful if the plain text listing is completely traversed by using defined rules.

The current position in the listing will be mentioned as a pointer. The pointer is moved from the beginning to the end of the listing during parsing.

The rule can be used only if all its functions are successfully evaluated, the empty string is not assigned to the column of the Name type (in other words non-empty string or nothing can be assigned to this column), and the pointer is moved to the end of some line of the listing. After using a rule, the pointer is always moved to the beginning of the next line in the listing.

While the function is evaluated, it can move the pointer and assign or change values in columns.

The parser can contain as many rules as needed. Rules are always tried in the order of their definition. In other words, always the first usable rule is used.

The listing can be incomplete if user cancels its getting or due to some network failure. The incomplete listing is trimmed to contain only the complete text lines.

The parsing of the incomplete listing is handled at the level of using rules. In simple case the pointer is moved (by using rules) to the end of the incomplete listing and it means the successful end of parsing. Otherwise during evaluation of some function from currently used rule, the pointer should be moved to the next line. But this is not possible because the listing is incomplete, so parsing is successfully ended (the same situation as if the line (or lines) traversed by the current rule were not in the incomplete listing).

Supported File Sizes

The plugin supports two types of file sizes: in bytes and in blocks. The file size should be assigned to the column of the File Size in Bytes type (if it is in bytes) or to the column of the Any Number type which is named using standard name "Blocks" or "BlkSize". If you do it, the total size in bytes or blocks will be displayed in the Information Line when you select a group of files.

Functions for Parsing

If not explicitly stated, the function is assumed to be always successful, does not move the pointer, and does not assign any value to any column. If the function moves the pointer and if not explicitly stated, it is assumed that the pointer cannot move behind the end of line (to the next line).

Before using the column identifier in the expression, it is neccessary to assign a value to this column. Otherwise the expression has no sense (such expression can be replaced by the boolean constant which is calculated using the column default empty value in the expression).

Note: in the following table, the whitespace is the space or tab character.

We have the following functions for parsing:

Function | Description
if(expression) | the type of the expression (expression parameter) result must be boolean; the function is successful if the expression result is true
assign(<column>, expression) | the type of the expression (expression parameter) result must be the same as the type of values in the column (<column> parameter); assigns the expression result to the column
skip_white_spaces() | skips all whitespaces at the pointer position; it moves the pointer behind them (if any)
skip_to_number() | moves the pointer to the nearest decimal digit
white_spaces() | skips all whitespaces at the pointer position; the function is successful only if the pointer moves
white_spaces(number) | skips a string containing the specified number (number parameter) of whitespaces at the pointer position; it moves the pointer behind this string; the function is successful only if such string exists
white_spaces_and_line_ends() | skips all whitespaces and end of line characters at the pointer position; the function is successful only if the pointer moves and if the pointer is not at the end of the listing (some character was found behind whitespaces and end of line characters)
rest_of_line() | moves the pointer to the end of line; the function is successful only if the pointer moves
rest_of_line(<column>) | the type of values in the column (<column> parameter) must be string; assigns a string starting from the pointer position and ending before the end of line to the column; the pointer moves to the end of line; the function is successful only if the pointer moves
word() | skips all characters except whitespaces and end of line characters; the function is successful only if the pointer moves
word(<column>) | the type of values in the column (<column> parameter) must be string; assigns a string starting from the pointer position and ending before the first whitespace or end of line character to the column; moves the pointer behind this string; the function is successful only if the pointer moves
number(<column>) | the type of values in the column (<column> parameter) must be integer; assigns a decimal number starting at the pointer position to the column; this number must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind this number; the function is successful only if the number exists, if it is properly terminated, and if the column type is File Size in Bytes, the number must not be negative
positive_number(<column>) | the type of values in the column (<column> parameter) must be integer; assigns a positive decimal number starting at the pointer position to the column; if the number is negative, it assigns the default empty value (zero for the File Size in Bytes column type, the empty string for the Any Number column type) to the column; this number must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind this number; the function is successful only if the number exists and if it is properly terminated
number_with_separators(<column>, string) | the type of values in the column (<column> parameter) must be integer; assigns a decimal number with digit grouping symbols (separators; it is used to make reading of large numbers easier; allowed separators are in the string parameter; allowed are all characters except decimal digits and '+' and '-' characters) starting at the pointer position to the column; this number must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind this number; the function is successful only if the number exists, if it is properly terminated, and if the column type is File Size in Bytes, the number must not be negative
month_3(<column>) | the type of values in the column (<column> parameter) must be date; assigns a month represented by three letters at the pointer position to the column; works with month names in several languages (currently supported languages: English, German, Norweigan, and Swedish); the month name must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the month name; the function is successful only if month name is known and all month names in the listing are from the same language
month_3(<column>, string) | the type of values in the column (<column> parameter) must be date; assigns a month represented by three letters at the pointer position to the column; works with month names specified in the string (string parameter), it contains twelve three letters month names separated by spaces (e.g. "jan feb mar apr may jun jul aug sep oct nov dec" for English); the month name must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the month name; the function is successful only if month name is in the string
month_txt(<column>) | the type of values in the column (<column> parameter) must be date; assigns a month represented by its name at the pointer position to the column; works with month names in several languages (currently supported languages: German); the month name must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the month name; the function is successful only if month name is known and all month names in the listing are from the same language
month_txt(<column>, string) | the type of values in the column (<column> parameter) must be date; assigns a month represented by its name at the pointer position to the column; works with month names specified in the string (string parameter), it contains twelve month names separated by spaces (e.g. "Jan. Feb. März Apr. Mai Juni Juli Aug. Sept. Okt. Nov. Dez." for German); the month name must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the month name; the function is successful only if month name is in the string
month(<column>) | the type of values in the column (<column> parameter) must be date; assigns a month represented by a decimal number at the pointer position to the column; this number must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the number; the function is successful only if the number is in range 1 to 12
day(<column>) | the type of values in the column (<column> parameter) must be date; assigns a day represented by a decimal number at the pointer position to the column; this number must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the number; the function is successful only if the number is in range 1 to 31
year(<column>) | the type of values in the column (<column> parameter) must be date; assigns a year represented by a decimal number at the pointer position to the column; this number must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the number; the function is successful only if the number is in range 0 to 999 (in range 0 to 79 it adds 2000; in range 80 to 999 it adds 1900; e.g. year 107 means year 2007) or in range 1602 to 9999
time(<column>) | the type of values in the column (<column> parameter) must be time; assigns hours, minutes, and eventually also seconds and milliseconds represented by decimal numbers at the pointer position to the column; supported time formats are: 00:00, 00:00:00, or 00:00:00.000; if the time value is followed by "a", "am", "p", or "pm", it is considered to be "a.m." (morning) or "p.m." (evening) and the time value is properly corrected; the time value must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter or digit); moves the pointer behind the time value; the function is successful only if the time value is valid (ranges: 0-23, 0-59, 0-59, and 0-999)
year_or_time(<column_date>, <column_time>) | types of values in columns (<column_date> and <column_time> parameters) must be date and time; assigns year and eventually also time (only hours and minutes) represented by a decimal number (if it is year) or two decimal numbers separated by ':' character (if it is time) at the pointer position to the column; supports standard Unix format: if it is year at the pointer position, time is unknown, and if it is time at the pointer position, year is calculated from the current date according to the rule that the whole date should not be older than six months); numbers must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the year or time value; the function is successful only if the year or time value is valid (ranges: 1602-9999 and 0-23:0-59)
all(number) | skips the specified number (number parameter) of characters; moves the pointer behind skipped characters; the function is successful only if all specified characters were skipped
all(<column>, number) | the type of values in the column (<column> parameter) must be string; assigns a string starting from the pointer position containing the specified number of characters (number parameter) to the column; moves the pointer behind this string; the function is successful only if such string exists
all_to(string) | finds the first occurence (searching is case insensitive) of the specified string (string parameter) and moves the pointer behind this occurence; the function is successful only if the specified string was found
all_to(<column>, string) | the type of values in the column (<column> parameter) must be string; assigns a string starting from the pointer position and ending behind the first occurence (searching is case insensitive) of the specified string (string parameter) to the column; moves the pointer behind the found string; the function is successful only if the specified string was found
all_up_to(<column>, string) | the type of values in the column (<column> parameter) must be string; assigns a string starting from the pointer position and ending before the first occurence (searching is case insensitive) of the specified string (string parameter) to the column; moves the pointer behind the found string; the function is successful only if the specified string was found
unix_link(<is_dir>, <column_name>, <column_link>) | types of columns <column_name> and <column_link> must be Name and Any Text; works with a string starting at the pointer position and ending before the end of line; moves the pointer behind this string; expects standard Unix format of link: "link_name -> target_name" or "link_name" (if the link target is not accessible); gets the link name and eventually also the link target from the string and detects if it is the link to a file or directory (used heuristics: if the link name or target contains extension, it is probably the link to a file, otherwise it is the link to a directory; if this heuristics does not fit, you can still add e.g. the function "assign(<is_dir>,false)" behind the unix_link function); assigns the link name to the <column_name> column; if the link target is known, it is assigned to the <column_link> column; assigns true to the <is_dir> virtual column if it is the link to a directory; the function is successful only if the string has the expected format and does not start with whitespace
unix_device(<column>) | the type of values in the column (<column> parameter) must be string; assigns a string starting from the pointer position containing two decimal numbers separated by ',' character and several spaces (e.g. "27, 26") to the column; the string must be followed by some common delimiter (',', '.', ';', ':', etc.), whitespace, or end of line character (not by a letter); moves the pointer behind the string; the function is successful only if the string is found
add_string_to_column(<column>, expression) | the type of values in the column (<column> parameter) and the type of the expression (expression parameter) result must be string; adds the expression result to the column
cut_white_spaces_end(<column>) | the type of values in the column (<column> parameter) must be string; cuts off whitespaces from the end of string in the column and assigns this new string to the column
cut_white_spaces_start(<column>) | the type of values in the column (<column> parameter) must be string; cuts off whitespaces from the beginning of string in the column and assigns this new string to the column
cut_white_spaces(<column>) | the type of values in the column (<column> parameter) must be string; cuts off whitespaces from the beginning and the end of string in the column and assigns this new string to the column
back(number) | moves the pointer the specified number (number parameter) of characters back; the function is successful only if this move is possible (it is not possible to move the pointer to the previous line)
cut_end_of_string(<column>, number) | the type of values in the column (<column> parameter) must be string; cuts off the specified number (number parameter) of characters from the end of string in the column and assigns this new string to the column; the function is successful only if the length of original value in the column was at least number

State Variables Used in Parsing

We have the following state variables:

Variable | Description
first_nonempty_line | boolean; it is true only if the pointer is in the first nonempty line (the line which does not contain only whitespaces)
last_nonempty_line | boolean; it is true only if the pointer is in the last nonempty line (the line which does not contain only whitespaces); ignores the fact if the listing is complete or incomplete
next_char | string; the string containing one character at the pointer position; if the pointer is at the end of the listing, the string is empty
next_word | string; the string starting from the pointer position and ending before the first whitespace or end of line character
rest_of_line | string; the string starting from the pointer position and ending before the end of line

Operators Used in Parsing

Before using the column identifier in the expression, it is neccessary to assign a value to this column. Otherwise the expression has no sense (such expression can be replaced by the boolean constant which is calculated using the column default empty value in the expression).

We have the following operators:

Operator | Description
== | equality; comparing of strings is case sensitive
!= | inequality; comparing of strings is case sensitive
eq | string equality; only for strings; comparing of strings is case insensitive
not_eq | string inequality; only for strings; comparing of strings is case insensitive
in | substring search; it is true only if the substring (left operand) is in the string (right operand); comparing of strings is case insensitive
not_in | it is true only if the substring (left operand) is not in the string (right operand); comparing of strings is case insensitive
end_with | it is true only if the string (left operand) ends with the substring (right operand); comparing of strings is case insensitive
not_end_with | it is true only if the string (left operand) does not end with the substring (right operand); comparing of strings is case insensitive

See Also

Configuration/Servers
Edit Server Type dialog box
New/Edit Column dialog box
Test of Parser dialog box


Login Scripts for FTP Proxy Servers

The login script defines how the FTP client should communicate with the FTP proxy server to connect to the desired FTP server. The FTP proxy server acts as an FTP server. The FTP client connects to it and sends it all required parameters: user name and password for proxy server (optional), address and port of desired FTP server, and user name and password for this FTP server. The FTP proxy server connects to the desired FTP server and forwards all commands and replies between the FTP client and the FTP server.

Description of Login Script

The first line of the login script is always "Connect to:" followed by a server address and port delimited by ':' character. The server address and port define where should the FTP client connect to. The server address must be defined. If the server port is not defined, it is assumed to be 21.

All other lines contain commands which are sent to the server. Each line contains only one command. Lines can contain variables which are expanded before sending commands to the server.

We have two types of variables: optional and obligatory. They differ in action taken when the variable is used in a command (line) but it is not defined (specified by user). If an optional variable is not defined, the whole line (command) is skipped. If an obligatory variable is not defined, a dialog box is opened and user must specify a value for this variable (or cancel connection). Variables are prefixed by '$' character and enclosed in parenthesis (e.g. "$(Password)"). The escape sequence for '$' character is "$$".

Lines starting with "3xx:" are skipped if the command from the previous line was skipped or if the server reply to this command was not 3xx. The 3xx reply means that the first digit of the FTP reply is '3' (it means "partial success"). It is used in command sequences and it means: continue with next command in sequence (e.g. the user name is accepted, send me a password).

Restrictions for the first line of the login script: the server address can be defined only as text without variables or as text containing only the ProxyHost or Host variable; the server port can be defined only as decimal number or as the ProxyPort or Port variable.

The login sequence is considered to be successful (user is successfully connected to the FTP server) if no reply to sent commands is 4xx or 5xx (4xx is transient error, 5xx is permanent error) and the reply to the last sent command is 2xx (2xx is success).

Variables

We have the following variables:

Variable | Description
ProxyHost | obligatory; the name or IP address of the proxy server (firewall)
ProxyPort | always defined; the port number where is the proxy server (firewall) listening; the default port is 21 (if it is not specified by user)
ProxyUser | optional; the user name for the proxy server (firewall)
ProxyPassword | obligatory; the password for the proxy server (firewall)
Host | always defined; the name or IP address of the desired FTP server
Port | always defined; the port number where is the desired FTP server listening; the default port is 21 (if it is not specified by user)
User | obligatory; the user name for the desired FTP server
Password | obligatory; the password for the desired FTP server
Account | obligatory; the account for the desired FTP server

Samples

Login script for direct connection (without proxy server):

Connect to: $(Host):$(Port)
USER $(User)
3xx: PASS $(Password)
3xx: ACCT $(Account)

Login script for the FTP proxy server type "USER user@host:port":

Connect to: $(ProxyHost):$(ProxyPort)
USER $(ProxyUser)
3xx: PASS $(ProxyPassword)
USER $(User)@$(Host):$(Port)
3xx: PASS $(Password)
3xx: ACCT $(Account)

See Also

Add/Edit Proxy Server dialog box