On Fri, 2009-04-03 at 17:50 -0400, Alex Vandiver wrote:
> [snip] I noticed that there doesn't seem to be any POD about known
> config options.  Would lib/DJabberd/Config.pod be the right place?

First pass at documenting djabberd.conf attached.
 - Alex
>From aecf975e3bde25946612eed452afde27dd5df179 Mon Sep 17 00:00:00 2001
From: Alex Vandiver <ale...@mit.edu>
Date: Fri, 3 Apr 2009 19:33:29 -0400
Subject: [PATCH] First pass at documentation for djabberd.conf

---
 DJabberd/lib/DJabberd/Config.pod |  204 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 204 insertions(+), 0 deletions(-)
 create mode 100644 DJabberd/lib/DJabberd/Config.pod

diff --git a/DJabberd/lib/DJabberd/Config.pod b/DJabberd/lib/DJabberd/Config.pod
new file mode 100644
index 0000000..a312b2b
--- /dev/null
+++ b/DJabberd/lib/DJabberd/Config.pod
@@ -0,0 +1,204 @@
+
+=head1 NAME
+
+DJabberd::Config - Configuration options in djabberd.conf
+
+=head1 DESCRIPTION
+
+The following describes the format and allowed options of
+F<djabberd.conf>.  F<djabberd.conf> is formatted similarly to Apache
+configuration files; that is:
+
+   # Lines beginning with '#' are comments
+   SomeGlobalOption on
+   
+   <VHost vhost.example.com>
+      # Options herein apply only to this vhost
+   </VHost>
+
+Configuration directives are not case sensitive.  Directives which
+take a "boolean" value can be passed any commonly-understood
+expression of a boolean; C<1>, C<y>, C<yes>, C<true>, C<t>, C<on>,
+C<enable>, or C<enabled> for truth, or C<0>, C<n>, C<no>, C<false>,
+C<f>, C<off>, C<disable>, or C<disabled> for false.
+
+=head1 GLOBAL CONFIGURATION
+
+=head2 DeclareMonitor C<IP address>
+
+Declares that a given IP address is used only for checking
+connectivity to the server, and should not be logged or assigned an
+internal ID.  Useful if you have a C<nagios> host.
+
+=head2 SSLCertificateKeyFile C</path/to/key.pem>
+
+Sets the path to the private key file for the server.  This key should
+be in PEM format and only readable by the server, and is used to
+encrypt traffic to clients to ask for TLS.  If it is not set, the
+server will not support TLS.
+
+=head2 SSLCertificateFile C</path/to/cert.pem>
+
+Sets the path to the certificate file for the server.  This
+certificate should be in PEM format, and will be presented to the
+clients who ask for TLS.  If it is not set, the server will not
+support TLS.
+
+=head2 OldSSL C<boolean>
+
+Defaults to off; if set, the server will also listen on port 5223, and
+immediately attempt TLS negotiation on all opened connections.  As the
+name implies, this is deprecated, and C<StartTLS> stanzas are now the
+preferred method to enable TLS communication with clients.
+
+=head2 UnixDomainSocket C</path/to/socket>
+
+Defaults to unset; if set, specifies the absolute path to a UNIX
+domain socket to listen on, in addition to any TCP ports (set by
+L</ClientPort> and L</ServerPort>).
+
+=head2 ClientPort C<port>
+
+Sets the port to listen for client-to-server connections on; defaults
+to 5222.  May also specify an IP address to bind to, in addition to a
+port, such as C<127.0.0.1:5222>.
+
+=head2 ServerPort C<port>
+
+Sets the port to listen for server-to-server connection on; defaults
+to 5269.  If explicitly set to 0, disables server-to-server listening
+for all virtual hosts.  May also specify an IP address to bind to, in
+addition to a port, such as C<127.0.0.1:5222>.
+
+=head2 AdminPort C<port>
+
+Sets the port to listen for administrative connections on; defaults to
+off.  For security reasons, you will most certainly want to bind this
+to a specific IP address, to prevent access by unauthorized users.
+See L<DJabberd::Connection::Admin>.
+
+=head2 IntraDomainListen C<port>
+
+Sets the port to listen for inter-cluster messages; defaults to off.
+Clustering support is still in development.
+
+=head2 PidFile C</path/to/pidfile>
+
+If set, writes the server's PID to the given file.
+
+=head2 CaseSensitive C<boolean>
+
+If set to a true value, Jabber IDs will be treated as entirely
+case-sensitive; defaults to off.  This setting exists purely for
+backwards compatibility, as previous versions incorrectly treated
+Jabber IDs as case-sensitive.
+
+=head2 ShareParsers C<boolean>
+
+Defaults to on; controls whether L<DJabberd::XMLParser> objects are
+held onto between stanzas.
+
+
+
+=head1 VIRTUAL HOST CONFIGURATION
+
+Each virtual host is configured with a block which declares the name
+of the virtual host:
+
+    <VHost jabber.example.com>
+      # Configuration for jabber.example.com
+    </VHost>
+
+Virtual hosts can effectively be nested, using the Subdomain block:
+
+    <VHost jabber.example.com>
+      # Configuration for jabber.example.com
+      <Subdomain muc>
+        # Configuration for muc.jabber.example.com
+      </Subdomain>
+    </VHost>
+
+=head2 QuirksMode C<boolean>
+
+Enables or disables "quirks mode"; defaults to on.  See
+F<doc/quirks-mode.txt> for a list of workaround this enables.
+
+=head2 S2S C<boolean>
+
+Enables or disables server-to-server communication, or "federation."
+Defaults to off; note that C</ServerPort> being set to 0 will override
+this configuration.
+
+=head2 InBandReg C<boolean>
+
+If set, enables in-band registration of new users; defaults to off.
+
+=head2 ChildService C<JID> C<description>
+
+Adds a mapping between a JID on this server, and the given
+description; this is used for client service auto-discovery.
+
+=head2 RequireSSL C<boolean>
+
+If set, requires that clients have negotiated a TLS before
+authentication information is sent.
+
+
+
+=head1 PLUGIN CONFIGURATION
+
+Plugins can only be configured on a per virtual host basis.  Each
+plugin defines its own configuration parameters.  Plugins bundled with
+the base DJabberd server include:
+
+=over
+
+=item L<DJabberd::Delivery::ComponentConnection>
+
+Delivery through a JEP-0114 component connection.
+
+=item L<DJabberd::Delivery::Local>
+
+Delivery to local users; implicitly added by default.
+
+=item L<DJabberd::Delivery::S2S>
+
+Delivery via server-to-server connection; implicitly added if L</S2S>
+is enabled.
+
+=item L<DJabberd::Delivery::LocalVHosts>
+
+Delivery to locally configured virtual hosts; implicitly added between
+a virtual host and all of its configured subdomains.
+
+=item L<DJabberd::RosterStorage::InMemoryOnly>
+
+Store rosters in memory only.  See L<DJabberd::RosterStorage::SQLite>
+for a common, more persistent, alternative.
+
+=item L<DJabberd::Authen::AllowedUsers>
+
+Only allow the given users to connect.
+
+=item L<DJabberd::Authen::StaticPassword>
+
+Set a static password for all users.
+
+=item L<DJabberd::Authen::InMemoryOnly>
+
+Store users' correct passwords (set on in-band registration, for
+instance) in memory only.
+
+=item L<DJabberd::Bot::Admin>
+
+Provides an alternative interface to L<DJabberd::Connection::Admin>
+for certain users.
+
+=item L<DJabberd::SASL> and subclasses
+
+Enables a particular type of SASL negotiation.
+
+=back
+
+=cut
+
-- 
1.6.2.1.321.g7b198.dirty

Reply via email to