# $EPIC: server.txt,v 1.9 2006/10/06 00:38:30 jnelson Exp $
server [<server description>|<server refnum>]
server [+|-][<server name>]
server [-add] <server description> [see below]
server [-delete <server refnum>] server [-update <server description>]
The nexus of irc is the server, also known as “ircd”, which comes in different classes, such as “irc2.8”, “irc2.9”, “EFNext”, “ircu2.8” “ircu2.9”, “hybrid5”, “hybrid6”, “hybrid7”, “dreamforge”, “bahamut”, and a huge list of others. The above list classifies the most likely types of servers you will encounter. There are some irc-like implementations, most of which have been devised for microsoft windows operating systems. EPIC does not promise to work on any server that diverges significantly from traditional irc (which these servers usually do) and so we will not consider these servers at all in this discussion.
At the most basic level, all unix irc servers in widespread use have a direct lineage to one common ancestor, ircd2.8. Therefore, the features provided by ircd2.8 are portable to all irc servers. This includes the ability to join channels, to send messages to other users, to set topics, channel and user modes, to kick users from channels, and the like. How- ever, through the course of time many extensions have been added to the ircd software, and a particular set of extensions to ircd are distributed as a software package and typically are used by an entire network. Each server “class” defines a loose set of extended functionality that is available to the user whenever you use that class of server. That server's extensions may not be available on other servers, or it may be available in a different way.
How does EPIC know what servers you want to use? EPIC always tries to keep a server list, even if it contains only one server.
The contents of the server list will always contain:
If the server list is still empty *or* if you use the -a command line option, then EPIC will read the “servers file”, which is:
The “servers file” can be an absolute path or start with a tilde (for home directory expansion), but if it is neither, then the file will be looked for in the IRCLIB directory, which is:
If all of the above fails, EPIC will use the value of #define DEFAULT_SERVER_LIST which is there only as a failsafe and not as a useful default server list.
See server description for more information about server descriptions and server refnums.
See referring to servers for more information about how to refer to your servers once you've added them to the server list.
Windows and servers have a many-to-one relationship. Each window is always connected to exactly one server at a time; no more and no less. You can have as many windows connected to a server as you want.
You can have as many servers open as you want. A server is automatically opened when the first window is connected to it. There is always one window connected to every open server; a server is automatically closed when the last window is disconnected from it.
The SERVER command manages EPIC's server list, letting you add, remove, connect, or disconnect servers as you need to.
|/SERVER||Show the server list.|
|/SERVER -DELETE <refnum or desc>|| Remove server <refnum> (or <desc>) from server list.
Fails if you do not give it a refnum or desc.
Fails if server does not exist.
Fails if server is open.
|/SERVER -ADD <desc>|| Add server <desc> to server list.
Fails if you do not give it a <desc>
|/SERVER -UPDATE <refnum> <desc>|| Change server <refnum> changing any fields to new values specified in <desc>.
You cannot update a server that is open.
|/SERVER +<refnum or desc>|| If the server's state is “CLOSED”, change it to “RECONNECT”.
This allows the server to reconnect if windows are pointed to it.
Note: server reconnection is asynchronous
|/SERVER -<refnum or desc>|| Unconditionally close a server connection
Note: server disconnection is synchronous!
|/SERVER +||Switch windows from current server to next server in same group|
|/SERVER -||Switch windows from current server to previous server in same group|
|/SERVER <refnum or desc>||Switch windows from current server to another server.|
As the colon is already used by EPIC as an argument seperator, IPv6 adresses need to be surrounded in square brackets  to prevent the colons from being interpeted.
To change to a new server, irc.foobar.com, on port 6668:
/server irc.foobar.com 6668 /server irc.foobar.com:6668
To change to a new server and register with the nickname “JoeBob”:
To switch to the next, or previous, server in the same group
/server + /server -
To associate a new server, irc.booya.net, to your current window:
To delete server 5 from your list:
/server -delete 5
To add server “irc.foo.com” on port 6667 with nick “blah” to your list:
/server -add irc.foo.com:6667::blah
To connect to an SSL server: