NNTP Configuration

The NNTP service is controlled by a two configuration blocks in the config.xml. These are the nntpserver block and the nntp-repository block.

The nntpserver block

The nntpserver tag defines the boundaries of the configuration block. It encloses much of the relevant configuration for the NNTP server.

This tag has an optional boolean attribute - enabled - that defines whether the service is active or not. The value defaults to "true" if not present.

The standard children of the nntpserver tag are:

- port - This is an optional integer value. This value is the port on which this NNTP server is configured to listen.If the tag or value is omitted, the value will default to the standard NNTP port, 119.
- bind - This is an optional value. If present, this value is a string describing the IP address to which this service should be bound. If the tag or value is absent then the service will bind to all network interfaces for the machine.
- useTLS - This is an optional boolean value. If this value is true, then the "ssl" server socket factory is used to generate the server socket for this service. If it is false, the "plain" server socket factory is used. In either case this behavior is overridden by the serverSocketType tag which is described under the expert configuration options.
- handler - This is an artifact preserved for backwards compatibility. This tag was used to group related parameters. It should disappear in future versions.

- helloName - This is a required tag with an optional body that defines the server name used in the initial service greeting. The tag may have an optional attribute - autodetect. If the autodetect attribute is present and true, the service will use the local hostname returned by the Java libraries. If autodetect is absent or false, the body of the tag will be used. In this case, if no body is present, the value "localhost" will be used.
- connectionTimeout - This is an optional tag with a non-negative integer body.
- authRequired - This is an optional tag with a boolean body. If true, then the server will require authentication before allowing the client to view news articles. If this tag is absent, or the value is false then the client will not be prompted for authentication. Only simple user/password authentication is supported at this time.

There are a few additional children of the nntpserver tag that are appropriate for advanced configurations. These should only be used by expert administrators. All tags in this group are optional.

- serverSocketFactory - This is an optional tag with a string body. If the tag is present, the body must be the name of one of the server socket factories specified in the socket manager block. Any other value will result in an error. If present, this tag overrides the useTLS tag.
- threadGroup - This is an optional tag with a string body. If the tag is present, the body must be the name of one of the thread groups specified in the thread manager block. Any other value will result in an error. This tag is best used to fine tune thread allocation between the services.
- connectionLimit - The connectionLimit parameter specifies the maximum number of client connections that this service will allow. If no value is specified, the value defaults to that specified in the connectionmanager block. A value of 0 means that there is no limit imposed by the service, although resource limitations imposed by other components (i.e. max # of threads) may serve to limit the number of open connections.

The nntp-repository block
The remainder of the NNTP service configuration is controlled by the nntp-repository configuration block. This section of configuration data relates to the server-side NNTP article repository.

- readOnly - This is a required boolean tag. If the value is true, posting will not be permitted by the NNTP server.
- rootPath - This is a required string tag. It must be in the form of a URL with a "file:" prefix. This specifies the root directory for the NNTP repository. Groups hosted on the NNTP server will be represented as folders under this root, and articles will be stored in the appropriate folders.
- tempPath - This is a required string tag. It must be in the form of a URL with a "file:" prefix. This specifies the directory where the NNTP server will store posted articles before they are added to the spool.
- articleIDPath - This is a required string tag. It must be in the form of a URL with a "file:" prefix. This specifies the directory where the NNTP server will store the mappings between article ID and the groups containing that article.
- articleIDDomainSuffix - This is a required string tag. It is the suffix appended to all article IDs generated by this NNTP server.
- newsgroups - This is a required container tag. It has a single newsgroup child for each newsgroup hosted on the server. The body of each of those newsgroup tags is the name of the newsgroup.