ProcServ configuration begins at build time. The file config.h in the directory
include/ contains some #define s which have
to be edited or maybe ProcServ won't be able to communicate with your irc server.
The defines are already documented in config.h but to be sure having mentioned all
configuration abilities here i will list every define:
#define
|
Description
|
XMLFILE
|
sets the default path and filename to the procserv
configuration file in XML format.
Non-full-qualified paths are allowed though but i recommend you
to use a full-qualified path to ensure it does not matter
from where procserv got started.
|
DEBUG
|
This feature is used by (the) developer(s) to debug ProcServ.
If you wish to get extended information on what ProcServ is doing
#define this.
Else I recommend you not to use this define.
|
VERBOSE_MEMORY
|
Is used to do basic memory profiling. Else you are not a developer
I recommend you not to define VERBOSE_MEMORY.
|
DEBUG_XML
|
Another define to enable ProcServ debugging. This options will make
ProcServ _really_ verbose on startup. Do not define DEBUG_XML.
|
SERVER_TYPE
|
This #define is mandatory as it sets
the way ProcServ will communicate with your used irc server.
Valid value are #defined in config.h:
SERVER_HYBIRD
|
1 |
SERVER_BAHAMUT
|
2 |
SERVER_UNREAL*
|
3 |
|
* - ProcServ does not support this feature currently.
Real procserv configuration is done through a file as defined with
XMLFILE . Its format bases on XML.
The entities and what they set will be described yet:
The ProcServ configuration file must contain only one entity named ProcServ and has got 3
subentities named "IRC",
"Processes" and
"Auth":
<ProcServ>
<IRC >
.
.
.
</IRC >
<Processes>
.
.
.
</Processes>
<Auth>
.
.
.
</Auth>
</ProcServ>
Entity IRC
The entity "IRC" has got 3 subentities named
"Remote",
"Local" and
"Manager".
Entity "Remote" sets values important for the connection to
an irc hub where ProcServ should connect to.
<Remote>
<Server>irc.server.com</Server>
<Port>port.at.irc.server.com</Port>
<Password>password-used-to-connect-irc.server.com</Password>
</Remote>
"Server" sets the dns name or ip of the server which
ProcServ should connect.
"Port" is an integer and sets the port which should be connected.
"Password" is the connect password which will be used after an successfull connect.
The following entity sets values which will be used when procserv introduces itself
to the irc network.
<Local>
<Hostname>ProcServ.at.server.com </Hostname>
<ServerDescription >ProcServ - process server<ServerDescription>
</Local>
"Hostname" sets the server name which will be used to
identify procserv in the irc network.
"ServerDescription" sets the server description.
The "Manager" entity includes the values for the ProcServ manager:
<Manager>
<Nick> </Nick>
<Ident> </Ident>
<Address> </Address>
<Realname> </Realname>
<Modes> </Modes>
</Manager>
"Nick" sets the manager nick. Maybe you want to make
this nick only available for ircops with an Q:line.
"Ident" sets the virtual ident for the Manager.
"Address" sets the virtual address for the Manager.
"Realname" sets the realname used for the Manager.
"Modes" sets the user modes ProcServ.
Warning: this values are not checked against limitations implemented by the
irc server. Means if the maximum nicklength is 9 and you have set an Manager
nick with 10 ore more characters procserv will not correct your values.
Furthermore ProcServ should not work properly as he uses the nicknames to differ between
ProcServ tasks and the Manager and the real Managernickname differs from the intern nickname!
!! I expect from the ProcServ user that he or she has got enough experiences made with his
his / her favourite ircd to configure ProcServ correctly !!
Entity Processes
The "Processes" entity must not have any subentities of type "Process"
but in generally it is a good idea to define virtual processes or ProcServ will be rather
useless :-) .
At least this declaration is mandatory or ProcServ will refuse to start.
<Processes>
</Processes>
Additionally one can write:
<Processes>
<OverwriteArguments>integer</OverwriteArguments>
<DefaultIRCIdent>ident-string</DefaultIRCIdent>
<DefaultIRCAddress;gt;inet-address</DefaultIRCAddress>
<DefaultIRCRealname>realname-string</DefaultIRCRealname>
<DefaultIRCModes>irc-usermode</DefaultIRCModes>
<DefaultIRCChannel>channelname</DefaultIRCChannel>
<Process>
<ID>processidentifier-string</ID>
<Command>executeable-string</Command>
<Options>executeableoptions-string<Options>
<IRCName>irc-nickname</IRCName>
<IRCIdent >irc-ident </IRCIdent>
<IRCAddress>inet-address</IRCAddress>
<IRCRealname>process's_name-string</IRCRealname>
<IRCModes >irc-usermodes</IRCModes>
<IRCChannel>irc-channel </IRCChannel>
<OverwriteArguments>integer</OverwriteArguments>
<Process>
</Processes>
There is no limitation on how many "Process" entities may defined.
A "Process" entity describes a ProcServ task.
"ID" sets the identifier string for this ProcServ task and may not contain any
white spaces. ID must be unique!
"Command" sets the name of the executeable which is connected to "ID".
"Options" will be given as an argument to the executeable.
"ID", "Command" and "Options" declarations are mandatory
in contrast to the "IRC*" declarations. If not defined their value will be used
from fall-back values. I think the names of the IRC* declarations are self-explanatory.
Their values oblige the same irc server limitations as mentioned above.
With the "Default*" declarations in entity "Processes" the fall-back values
can be set. But these declarations are not mandatory though it makes sense to include them in your
own procserv.xml configfile.
Entity Auth
This entity is used to set logins. I recomm you to define some logins here or you wont be able
to use ProcServ really :-) .
A typical Auth entity would look like this:
<Auth>
<Name>Bill</Name>
<Password>dontlikepenguionscausetheyarebadforbusiness</Password>
<Name>name-string</Name>
<Password>password-string</Password>
</Auth>
"Name" sets the favoured login name. This one should be unique
and may not contain any whitespaces.
The same for "Password". There are no limitations on the string length
It is generally a good idea to use ascii characters only as unicode is not
supported by procserv (yet).
This entity is mandatory as well as "Processes" and "IRC" are.
An example how a procserv configurationfile could look like is included within the procserv
package. One can find it in the subdirectory 'etc/' and is named "procserv.xml".
|