![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() News About Features Screenshots FAQ Mailing list Contact
|
Configuration directive referenceIndex of currently documented configuration directives:
MetalServe posts advertisements to the IRC channels so that users know that it serves files. The advertise_delay directive sets the delay between these advertisements. Setting this value too low will easily get you kicked and/or banned from IRC channels since you'll get on the IRC users' nerves.
The channel directive can appear:
For each configured IRC network, at least one channel directive must be specified.
The client_lookups directive specifies whether MetalServe should look up (and display/log) the hostname of connecting IRC clients or leave their IP addresses unresolved. Hostnames tell you more about the origin of your clients, but introduce an additional delay until a client's request is satisfied. This option takes either "on" or "yes" as argument to be enabled, or "off" or "no" to be disabled.
The compress_command directive specifies a command to be executed by makelist as soon as the file list generation completes. command_string may contain two placeholders: %a will be replaced with the archive name (without an extension which is subject to be added by the compressor itself) and %l will be replaced with the list filename. This directive should be used when the generated filelist reaches a size where compression really starts to make sense (think of 56 kbit/s modem users having to download a 1 Megabyte filelist). Most clients including AutoGet support .zip-compressed file lists, therefore you should specify "zip" and not "tar"/ "gzip" as compressor. If a compress_command directive is specified, MetalServe by default deletes the uncompressed textfile. You can modify this behaviour using the keep_uncompressed_list directive.
dcc_largefiles_mincps directive
The dcc_largefiles_mincps directive works exactly like the dcc_mincps directive, but is applied to "large files" only. The file size threshold that makes a file a "large file" is configured using the dcc_largefiles_threshold directive. The idea is that you may want that only users with an acceptable large Internet connection (DSL, Cable or faster) can download really large files such as eg. MPEG video files.
dcc_largefiles_threshold directive
The dcc_largefiles_threshold directive specifies the threshold value MetalServe uses to determine whether a file is considered a "large file" or not. If a file is a "large file", the minimum CPS limit configured with the dcc_largefiles_mincps directive will be in effect, otherwise the limit set by the dcc_mincps directive. Please note that while there is a default value of 10240 KB for this directive, there are no default values for both dcc_largefiles_mincps and dcc_mincps directives. MetalServe will thus by default never abort a transfer because it thinks it's going too slow.
The dcc_maxlistqueue directive sets the length of the filelist request queue. This value determines how many "waiting positions" are available for users requesting your filelist, when the number of filelist send slots, configured with the dcc_maxlistxfers directive, has been exhausted. For a detailed discussion of this and related configuration directives, see DCC sends.
The dcc_maxlistxfers directive sets the number of send slots available for the transfer of your file list. When additional requests come in and all send slots are in use, the request will be queued in the filelist request queue, whose length can be set with the dcc_maxlistqueue directive. For a detailed discussion of this and related configuration directives, see DCC sends.
The dcc_maxqueue directive sets the length of the file request queue. This value determines how many "waiting positions" are available for users requesting files other than your filelist (for which special directives are available), when the number of send slots, configured with the dcc_maxxfers directive, has been exhausted. For a detailed discussion of this and related configuration directives, see DCC sends.
The dcc_maxuserqueue directive restricts the number of requests a specific user can place in the file request queue. If a user files a request and has reached this limit, his request will be denied and other users' requests will be accepted into the queue instead. The (obvious) idea is to keep single users from dominating your DCC queue and give everyone a fair chance. The value specified here must be lower than the value specified at the dcc_maxqueue directive or MetalServe will complain. For a detailed discussion of this and related configuration directives, see DCC sends.
The dcc_maxuserxfers directive restricts the number of parallel file transfers to a single user. If a send slot becomes available and the user has already reached this limit, the slot will be assigned to a different user. The (obvious) idea is to keep single users from dominating your DCC sends and give everyone a fair chance. The value specified here must be lower than the value specified at the dcc_maxxfers directive or MetalServe will complain. For a detailed discussion of this and related configuration directives, see DCC sends.
The dcc_maxxfers directive sets the number of send slots available for the transfer of files other than your filelist. When additional requests come in and all send slots are in use, the request will be queued in the file request queue, whose length can be set with the dcc_maxqueue directive. For a detailed discussion of this and related configuration directives, see DCC sends.
The dcc_mincps directive sets a minimum CPS restriction that must be fulfilled for DCC transfers to finish. If a transfer repeatedly drops below this configured value, MetalServe will abort the transfer. While there is no minimum CPS limit configured by default, you may use the directive to keep users with an unbearable slow Internet connection from using your send slots forever.
The dcc_ports directive restricts the range of TCP ports that will be used by MetalServe for DCC sends to clients requesting files. This may be useful on firewalls where a certain surveyable range of ports is opened. If this option is not specified, MetalServe will use the entire high port range (ie. everything above port 1023).
The dcc_timeout directive specifies the amount of time MetalServe should wait when a DCC connection appears to stall. If no activity occurs on the connection and the specified time in seconds has passed, the connection is assumed to have died and will be closed. The value specified here should be high enough to accomodate typical Internet conditions that can cause a connection to stall for some time. You should not specify a lower value than the default of 120 seconds.
The dir_overview directive specifies whether makelist should include an overview of the scanned directories in front of the actual file listing. This overview is useful especially in large file lists when the first directory level represents a genre as you can sometimes argue over what genre an album should belong to.
The email_address directive specifies the email address that MetalServe should use to log on to the configured IRC network(s). This is what users see when they /WHOIS the IRC user represented by MetalServe. Some IRC networks may require by policy that you specify a valid email address here, so you should check twice before you specify something else. An email_address directive must appear in the configuration file.
The find_trigger directive specifies whether MetalServe should process @find and @locator searches IRC users post in the channels MetalServe is serving in. MetalServe will search your filelist using the keywords the users specified and send him the first five matches through a private message. You should only disable this option if MetalServe is drowning too much CPU time with this type of searches. Not all clients may use client-side scripts such as AutoGet for mIRC on the Windows platform, which provides filelist search and management facilities.
The hintsfile directive specifies the destination file for "hints" submitted by users via the @<nickname>-hint command. If a filename is specified you should make sure that the specified file can be written to by the user MetalServe runs under. If the special keyword syslog is specified, it may be followed by a colon and the desired syslog facility (eg. local4, refer to your system's "syslog.conf" manpage). The special keyword none disables the "hints" facility (ie. users won't be able to notify you of broken files), but we strongly recommend to leave it enabled so users can help you in improving the quality of the files offered (unless, of course, the mechanism is abused). Included in the MetalServe distribution is a shell script that simply mails the contents of the "hints" file to a configured EMail address and resets it afterwards. You could run this script eg. as a cron job every night so that you get a mail once a day if any hints were submitted. The script can be found under /bin/mail_hints.sh.
The ignored_users directive takes a list of IRC nicknames to be ignored. This option may be used to exclude certain abusive users from being served. Currently only nicknames can be specified, in the future userid@hostmask combinations may be accepted as well to make this option as efficient as K-lines on the IRC server side (and prevent users from singly changing nicknames). If no ignored_users directive is specified, all files will be included.
The include_extensions directive takes a list of filename extensions as argument which describe the file types which are exclusively to be included. Files with extensions that do not appear in this list will be ignored by makelist. If no include_extensions directive is specified, all files will be included.
MetalServe by default attempts to join those channels on an IRC network that were configured using channel directives. However, joining may fail, eg. if the channel's user limit has been reached. In such a case, it makes sense to retry to join the channel at a later point in time. This directive therefore specifies an upper limit as to the number of attempts MetalServe will perform in order to join a given channel. If all attempts have failed, MetalServe will give up and consider the channel to be disabled. The delay between the join attempts can be configured with the join_retrydelay directive. Note that this directives differs from the onkick_rejoin_attempts directive in that the latter only applies to the case of rejoining a channel after being KICKed out of it.
This directive configures the delay between the attempts to join or rejoin a channel (see the join_attempts and onkick_rejoin_attempts directives). Valid values range between 0 and 86400 seconds (24 hours).
keep_uncompressed_list directive
The keep_uncompressed_list directive specifies whether MetalServe should keep and offer the filelist also in its original uncompressed textfile form, if compression of the filelist was enabled using the compress_command directive. By default Metalserve deletes the uncompressed textfile. This directive has no effect if no compress_command directive was specified.
The list_header directive specifies the filename of an auxiliary text file to be included as a list header, in between MetalServe's own header and the directory/files listing. What you put into this file is up to you, but it doesn't really make sense to include fancy ASCII graphics since the font used by the viewer of download clients such as AutoGet is often a proportional one, giving the logo a rather distorted look. Note that you do not need to include a blank line at the end of your header as makelist will add one itself before a seperator line is written.
The logfile directive enables the logging of more or less important messages (influenced by the loglevel parameter) to the specified logfile, syslog or disables all logging. If the special keyword syslog is specified, it may be followed by a colon and the desired syslog facility (eg. local4, refer to your system's "syslog.conf" manpage). The special keyword none disables any logging.
See also Logging.
The loglevel directive specifies the minimum required severity for a message to be logged. Lowering the specified severity level will increase the amount of messages logged and vice versa. Valid arguments for the severity level are in descending order of severity and ascending order of verboseness: critical, error, warning, notice, info, debug. See also Logging.
The network directive opens a subsection of directives related to a network of IRC servers. The directive's argument is a network name like Undernet, EFNet, IRCNet etc. The subsection opened by this directive must contain at least one channel and at least one server directive. Each network directives configures a seperate IRC network, at least from MetalServe's point of view, and there must be a least one network directive in the configuration file or MetalServe will complain.
The nickname directive specifies the preferred nickname and desired alternatives that MetalServe should use to log on to the configured IRC network(s). For each IRC network, MetalServe will try the nicknames in the specified order. This means that it is possible that you serve on different IRC networks with different nicknames at the same time. If MetalServe can not successfully log on to an IRC network with any of the specified nicknames, it will give up on that IRC network (and maybe retry later, see the network directive). If it can't log on to any of the configured IRC networks, it will log an error message and exit, as in that case you should really consider different and/or more nicknames. Nicknames are subject to the usual IRC restrictions: nicknames must consist of 1 to 9 characters. The first character must be a letter, the other characters can be letters, numbers or any of the special characters '-', '[', ']', '\', '`', '^', '{' or '}'. IRC servers will complain if you specify an invalid nickname. If you plan to serve in channels where advertisements are not welcome, you should probably choose a nickname that somehow indicates to other users that you're serving. For example, you could include "DCC" in your nicknames. A nickname directive must appear in the configuration file.
onkick_rejoin_attempts directive
MetalServe may be KICKed off of one of the channels it was configured to join for some good or not so good reason. Since machines can't "react" to the reason being specified for the kick (if specified at all), this parameter configures how to be have in such a case. A non-zero value from 1 to 5 specifies the maximum number of attempts made in order to rejoin the channel, with join_retrydelay seconds between each attempt. A value of zero specifies that MetalServe should not attempt to rejoin the channel at all. Note that this directives differs from the join_attempts directive in that it only applies when MetalServe is kicked off a channel.
The part_finishdccs directive specifies whether a user's ongoing DCC transfers are finished or cancelled, when he PARTs (leaves) a channel for a longer time than specified with the part_timeout option. This option takes either "on" or "yes" as argument to be enabled, or "off" or "no" to be disabled.
The part_timeout directive specifies the amount of time a user may be missing from a channel until his and his queued file requests are removed, and his ongoing DCC sends are cancelled (unless part_finishdccs is enabled). The idea is that users have to stay in the channel as long as they have requests open and/or transfers in progress. The value specified here should be high enough to accomodate users reconnecting after being disconnected by their Internet providers or suffering from IRC netsplits. You should not specify a lower value than the default of 120 seconds.
The password directive specifies a password that must be sent by MetalServe in order to be accepted by the associated IRC server. Server passwords are rather rare, yet there may be some "private" IRC networks that realize their privacy by means of server passwords. However, you will probably never need to specify this directive.
The ports directive specifies the TCP port range that the associated IRC server is listening on for client connections. IRC servers usually listen on other ports besides the default port 6667, mostly ports in the range 6660-6669 (which is why this range is the default), but the actual used range varies. If a server listens on a single port only, you can specify just that port number (ie. you do not need to construct a range with the port being both minport and maxport). Note that you can specify only one continous port range, it is eg. not possible to specify ports 6660-6667 and port 6669.
The priority directive can be used to order the list of channels or IRC servers within a configured IRC network and give preference to certain servers over others. MetalServe will respect this setting when the IRC server restricts the number of channels that can be joined at a given time resp. when it determines which server of an IRC network it connects to (and which server to try if the selected server fails).
The realname directive specifies the real name that MetalServe should use to log on to the configured IRC network(s). This is what users see when they /WHOIS the IRC user represented by MetalServe. Some IRC networks may require by policy that you specify your real name, so you should check twice before you specify something else. A realname directive must appear in the configuration file.
The server directive can appear:
For each configured IRC network, at least one server directive must be specified. A list of IRC networks and their servers can be found at irchelp.org.
server_connect_attempts directive
The server_connect_attempts directive specifies the maximum number of attempts MetalServe will perform in order to connect to each IRC server. If this limit has been reached, the server will be disabled. If a fatal error occurs, eg. the server's hostname could not be resolved, the server is disabled immediately.
server_connect_timeout directive
The server_connect_timeout directive specifies the amount of time MetalServe will wait for a connection to an IRC server to be established. After the specified time in seconds has passed, MetalServe will abort the connection to this server and try another server within the same IRC network. Do not confuse this directive with the server_timeout directive.
The server_timeout directive specifies the amount of time MetalServe should wait when a server connection appears to stall. If no activity occurs on the connection and the specified time in seconds has passed, the connection is assumed to have died and will be closed. Usually IRC servers periodically send PINGs to IRC clients to determine whether clients are still alive. MetalServe responds to these requests properly with a PONG. If no PINGs arrive, however, the configured server_timeout will become effective. Do not confuse this directive with the server_connect_timeout directive.
The serverroot directive specifies the root directory containing the files to be included in the file list and to be served by MetalServe.
A serverroot directive must appear in the configuration file.
The visible_address directive specifies the IP address or hostname that should be sent to the IRC servers and clients. The determined address must be externally reachable or you can give up the idea of serving files at all. By default, or if the special keyword default is specified, MetalServe will take the system's configured hostname as returned by the gethostname() call. This name is usually set at boot time with a call of the hostname command. You can override this behaviour by specifying a hostname or an IP address. If the latter is specified, MetalServe will try to lookup the first associated hostname and only use the IP address if the lookup fails. Alternatively you may specify the special keyword interface followed by the name of a network interface. MetalServe will then determine the interface's current IP address whenever a server connection attempt is made (and use that address for subsequent client connections). This setup is especially suited for users with Internet connections with dynamic IP addresses.
|