servedat Options

The following configuration options can be used to control and customize the behavior of servedat.  Most options can be specified on either the command line, or in a configuration file.  Command line settings will override configuration file settings.

A complete list of the current settings and where they came from is displayed whenever Debug or LogFile is set.  For example, "servedat -d 1".  Look for the section of output labeled "Configuration settings".

Options with the "Boolean" type take no parameter on the command line, but require a value of 0 or 1 in the configuration file.

Maintenance Modes

Each of the following options causes servedat to perform the given maintenance task and then exit.

CLI                 Value
-i Windows Only.  Self install as a Windows Service.  servedat will copy itself to %SystemRoot%\system32 and set itself to start automaticly upon system bootup.  Any additional command line options will be copied to the service and will override any configuration file settings.  If a servedat service is already running, it will be shutdown and overwritten.  The newly installed service will be started immediately.  Requires administrative privileges.
-R Register an MTP/IP license code then exit.  You may provide the license code on the command line or enter it when prompted.
-u Windows Only.  Uninstall Windows Service.  The application will disable the servedat service and delete its binary from %SystemRoot%\system32.  Requires administrative privileges.
-v Display version and help information then exit.

General Settings

These options set the general run-time behavior of servedat.

CLI Config          Value
-d Debug 0 to 6
  Enable diagnostic output.  Level 1 is recommended any time you are experiencing difficulties.  Levels above 1 will produce copious output and may degrade performance.
-f Pathname
 

Read the given configuration file in addition to the default paths.  Settings in this file take precedence over those in other configuration files.  As a special case, servedat will ignore all configuration files if you specify: –f ""

Windows: the path may include environment variables such as %SystemRoot%.
HomeDir Pathname
  Sets the default Home Directory path.  If SysAuth or AuthFile are set, then this may be overridden by specifying a directory for the ANONYMOUS user.  Default: See Home Directories.
-F LogFilter 0 to 6
  Reduce the volume of server log output by filtering certain types of reports.  See Logging for values.  Default: 2.
-I LogProgress Seconds
  Report the progress of transactions at intervals of this many seconds.  See Logging for format.  Default: 300.
-J LogStatus Seconds
  Report the server load and transaction counts at intervals of this many seconds.  See Logging for format.  Default: 600.
-l LogFile Pathname
 

Append diagnostic output to the named file path.  This option will take effect immediately and multiple instances of this option may cause the log destination to change during startup.  In order to capature all messages related to startup, use "-l" as the first option on the command line.  As a special case, a pathname of "1" or "2" will cause logs to be sent to stdout or stderr respectively.

Windows: the path may include environment variables such as %SystemRoot%.
-n Interface IP address
  Bind servedat to the given local network interface.  This is required when a machine has multiple IP addresses on the same subnet (aliases) and may be useful in resolving other routing issues.  Default: INADDR_ANY.
-o ObjectHandler code,command
  Declare an action code and program for an Object Handler.  You may use this option multiple times for different codes.  Only available with select server licenses.  Default: None.
-p Port UDP Port
  Change the UDP port number used to listen for requests.  Use this option if there is a port conflict or you wish to take advantage of another UDP port that is already open in your firewall.  Default: 8080.
-P Package suffix,command
  Deprecated.  Declare a type and handler for a packager.  You may use this option multiple times.  Only available with select server licenses.  Default: None.
-V ServiceName String
  Windows: Sets the short-name of the Windows Service when installed as such.  Unix: Sets the PAM service module name for SysAuth.  Defaults: win32, "ServeDat"; osx, "servedat"; aix, "login"; all others, "sshd".
-X NoEXCL Boolean
  Unix Only.  Disables checks for orphaned -sv.tmp files.  This may be useful as a workaround for NFS mounts and SANs which do not properly support O_EXCL.  Default: False.

Security

These options determine global access privileges and authentication policies.

CLI Config          Value
AllowEncrypt  Boolean
  If set to 0, then encrypted transactions will be rejected.  Also see RequireEncrypt below.  Default: True.
AllowPath Absolute Pathname
  The given path will be accessible as an absolute pathname even when RestrictHome is in effect.  You may have multiple AllowPath declarations.  For Windows configurations, this path is limited to ASCII characters and is case insensitive.  For all other platforms, this path may use UTF-8 characters and is case sensitive.  See Home Directories for more use information.  Default: none.
-A AuthFile Pathname
 

Specify an authentication file.

Windows: the path may include environment variables such as %SystemRoot%.
-g GetOnly Boolean
  Only individual file downloads are permitted (with or without compression).  All other actions, including directory listings, are forbidden.  This can be set for individual users in the AuthFile.  See the privileges chapter for details.  See also ReadOnly, WriteOnly, WriteListOnly.  Default: False.
-H RestrictHome Boolean
  When enabled, users will not be allowed to directly access files outside of their home directories.  Symbolic links will be honored.  This can be set for individual users in the AuthFile.  Default: False.
-K RequireEncrypt Boolean
  Require all transactions to be encrypted.  Unencrypted transactions will be rejected.  Default: False.
-M FileMode octal permissions mode
  Unix only.  Sets the default file creation permissions.  Default: 0644.
-O NoOverwrite Boolean
  Prevents incoming files from overwriting existing files.  Clients must delete an existing file prior to uploading one with the same name.  Default: False.
ObjectOnly Boolean
  Prevents direct access to the filesystem: all transactions must declare a valid Object Handler.  Default: False.
-r ReadOnly Boolean
  Files may only be listed and downloaded from the server.  All transactions which would change the filesystem, such as uploads, deletes, folder creation, or link creation, are blocked.  This can also be set for individual users in the AuthFile.  See the privileges chapter for details.  See also GetOnly, WriteOnly, WriteListOnly.  Default: False.
RestrictClients Boolean
  When enabled, only clients with a SiteOptions entry will be allowed to perform transactions with this server.  All other clients will be denied, regardless of their credentials.  Default: False.
-S SysAuth Boolean
  Use the system user database for authentication.  This is the default when running with administrative privileges.  Anonymous access will be prohibited unless an ANONYMOUS entry is given in AuthFile.  Default: See SysAuth.
-y SysHome Pathname
  Override the usual home folder for system users and instead redirect them to a subfolder of the given path.  The subfolder must have the exact username and its permissions must be set to allow the user access.  You can also use symbolic links on non-Windows systems.  When combined with RestrictHome, system users will not be allowed access outside of this folder.  Default: None.
-w WriteOnly Boolean
  Uploads and related actions (like folder creation) are permitted.  All other actions are forbidden.  This can be set for individual users in the AuthFile.  See the privileges chapter for details.  See also ReadOnly, GetOnly, WriteListOnly.  Default: False.
-W WriteListOnly Boolean
  Folder listings, uploads, and related actions (like folder creation) are permitted.  All other actions are forbidden.  This can be set for individual users in the AuthFile.  See the privileges chapter for details.  See also ReadOnly, GetOnly, WriteOnly.  Default: False.

Performance

These options set performance parameters and resource utilization.  Client side settings will also influence performance.

CLI Config          Value
-a Aggression -3 to 5
 

Sets the default MTP/IP aggression level for clients which do not specify one.  Aggression determines how MTP/IP balances performance against fairness.  Positive values may increase performance at the expense of third-party traffic.  Negative values may reduce path latency and allow better performance for other traffic.  See the Performance section for details.  Default: Usually 2, but may vary by license.

Note: Aggression is internally represented as a value between 125 and 133.  If you see these values in diagnostic output, simply subtract 128 to get the user values.
AggressionLimit -3 to 5
  Sets the maximum Aggression value which clients may select.  Default: None.
-b StreamSize kilobytes
  Set the buffer size for compression, Streaming Folders, packaging commands, and object handlers.  If your network is very fast and your latency is very high, then you may need to increase the size.  The buffer should be at least twice the bandwidth-delay-product of your network path.  (Multiply the path bandwidth in bits-per second by the latency in milliseconds, then divide by 4096000.  The result is the number of kilobytes recommended.)  The default value of 16384 is adequate up to a gigabit network with 75ms latency, or a 100 megabit network with 750ms latency.  If you need to increase this value, increase the buffers for MTPexpedat and movedat clients as well.
-c Capacity positive integer
  Set a limit for the maximum number of concurrent transactions, or zero for the license default.  See the Capacity section for more details.
-D ShowDotFiles Boolean
  Deprecated.  Determined whether or not version 1.8 clients and earlier would see unix files whose name starts with a dot.  By default, such files were hidden, but accessible.  Modern clients decide this for themselves.  Default: False.
-e Expire seconds
  Sets the default transaction timeout period for clients which do not specify one.  This determines how long servedat will wait without hearing from a client before it gives up and aborts a stalled transaction.  Longer values may be useful on highly unreliable networks.  Default: 40 seconds.
ExpireLimit seconds
  Sets the maximum Expire value which clients may select.  Default: None.
-E PackTimeout seconds
  This sets an upper bound on how long a packaging utility or object handler is allowed to run.  It is intended as a safety check against runaway processes.  Default: None.
-k MaxRate  
MaxRateIn
MaxRateOut
kilobytes per second
  Sets a default speed limit for individual uploads and downloads.  You may specify different values for uploads and downloads (incoming and and outgoing data) by using the syntax "in:out" with MaxRate or by defining separate MaxRateIn and MaxRateOut variables.  Clients may override this setting.  Default: None.
MaxRateLimit  
MaxRateLimitIn
MaxRateLimitOut
kilobytes per second
  Sets a hard speed limit for individual uploads and downloads.  You may specify different values for uploads and downloads (incoming and and outgoing data) by using the syntax "in:out" with MaxRateLimit or by defining separate MaxRateLimitIn and MaxRateLimitOut variables.  Clients may not override this value.  Default: None.
-t MaxRateTotal  
MaxRateTotalIn
MaxRateTotalOut
kilobytes per second
  Limits the total bandwidth of all uploads and of all downloads.  You may specify different values for uploads and downloads (incoming and and outgoing data) by using the syntax "in:out" with MaxRateTotal or by defining separate MaxRateTotalIn and MaxRateTotalOut variables.  Upload and download bandwidths are calculated indpendently (full-duplex is assumed).  Default: None.
MaxRTT milliseconds
  Request that the path latency for each transaction be limited to the given amount of time.  Use this option if other applications (such as VoIP or video) require that latency along the path be kept below a specific target.  Transfer speed will be reduced any time latency exceeds this value.  This could severely degrade performance if other network traffic is causing high latency.  Consider Aggression level -3 as an alternative.  Default: None.
MaxRTTLimit milliseconds
  Sets the maximum MaxRTT value which clients may select.  Default: None.
-L MinRTT milliseconds
  Advise MTP/IP of operation on a path with very high latency.  The value should be the minimum observed round trip time of the path, in milliseconds.  This setting will have no effect for RTTs less than 500ms and has little effect for RTTs less than 2000ms.
-N NoiseRatio 4 to 5000
  MTP/IP normally regards packet loss as an indication of network congestion.  This option will cause MTP/IP to ignore packet losses up to a rate of one in N, for a given number N.  For example, a value of 100 will cause MTP/IP to ignore a loss rate of up to 1%.  This option should only be used on noisy data paths where loss is occurring due to external factors such as uncorrected bit errors.  Improper use of this option may severely disrupt the network and result in a loss of performance or connectivity, especially when Aggression is elevated.  Default: None.
NoiseRatioLimit 4 to 5000
  Set the lowest NoiseRatio value which clients may select.  As a special case, setting NoiseRatioLimit to 0 will disable NoiseRatio for all clients. Default: None.
-T MaxDatagram bytes
  Limit the size of network datagram payloads to no more than this amount.  The full IP datagram size will be 56 bytes larger when MTP/UDP/IP headers are included.  Tunneling, VPNs, IPsec, MPLS and other encapsulations will add more.  If your network is known to have problems with IP fragmentation, try setting a value of 1408 or smaller.  Default: None.
-U MinDatagram bytes
  Use network datagram payloads of at least this size.  If your network path is very fast (gigabit or more) and every device along that path supports Jumbo frames (MTU 9000), you may be able to reduce CPU overhead by setting this to a value between 1408 and 8192.  Even larger values, up to 32768 may be used on networks configured to support such MTUs (e.g. InfiniBand).  Settings above 1408 without Jumbo frames fully supported may cause severe performance problems or loss of connectivity.  Note that setting MinDatagram will increase the minimum throttling limit discussed in the Performance chapter.  Default: None.
SiteOptions address[/bits] [Option[=Value]], ...
 

Set configuration options based on the client host's public IP address.  Address must be a DNS name, IP address, or subnet.  For subnets, use an address followed by a slash and the number of mask bits.  The remaining fields are comma separated pairs of the form Option=Value.  The following options are currently available:
Aggression, AggressionLimit, Expire, ExpireLimit, MaxDatagram, MaxRate, MaxRateLimit, MaxRateIn, MaxRateOut, MaxRateLimitIn, MaxRateLimitOut, MaxRTT, MaxRTTLimit, MinRTT, NoiseRatio, NoiseRatioLimit

If a value is given, then that value will be used in place of the corresponding global configuration value.  If an option is given with no value, then the corresponding global value will be ignored for this site.  Some global settings trigger changes in others (e.g. MaxRate also sets MaxRateIn and MaxRateOut).  To override such a setting, you must override all of the settings it triggers.

You may have multiple SiteOptions declarations.  servedat will attempt to resolve DNS names when it first runs and will refresh them periodically.  Default: None.
-Z NoCompression Boolean
  Disables support for inline ZLIB compression (zli).  Requests seeking compression will be denied.  Default: False.