Connecting


In order to send and receive messages Snak must be connected to an IRC server. In order to gain access to a server Snak has to know what nickname to use, the name of the server and a few other things. All that information is stored in a connection profile.

Snak comes with a number of predefined profiles that will let you connect to the largest IRC networks without further configuration. If you want to change your default nickname or connect to other networks you'll use the profile list.

Profiles


When you open the profile list with Cmd-K a list of the existing profiles and their channels is displayed.
To edit a profile, select it in the list and press Edit. A dialog will appear where the default nickname, servers and other things can be changed.
XChatnetProfile

The nickname and alternative nickname fields hold the nicknames that Snak will use when connecting to the server. If the first nickname is already taken, Snak will try the alternative. If that is also taken Snak will bring up a dialog that allows you to enter something else.
The password field is only used if the server requires you to enter a password before gaining access. For example, some universities have private IRC servers that require such a password.

The server list allows you to add multiple servers to a profile. Snak will then attempt to connect to each server in turn until it finds one that will let you in. You can drag the servers around to change the order in which they will be tried.
The Startup Commands field is used to have Snak execute specific commands after it connects to a server. The field has room for 500 characters, and accept any IRC commands, separated by return.

Normally the startup commands should not be used to join channels (especially not if the channel requires a password). Instead, simply join the channel manually the first time, and then either leave the channel panel open when you quit the program (i.e. don't close it) or rejoin it by doubleclicking on the channel name in the profile list. If the channel panel is left open, you can click in it, and press Cmd-O to reopen the connection and rejoin the channel next time you start the program. The Automatic connect option will also rejoin the open channels.

On some networks a nickname can be registered, meaning that no one else may use it. The IRC server will then require you to demonstrate that you are the rightful owner of a nickname by providing the password. It's possible to use the Startup Commands to automatically send the password for your nickname but it's not the best way to authenticate.

If you have registered your nick you will get a message when you connect asking you to provide the password. It's much better to create an Action that responds to that particular message with your password, than to use the Startup Commands . The reason is that the Startup Commands are only executed once, at startup, but if you get de-synced (an error condition on the network itself) any time after that the nick service will require your password again. If you have an Action set up it will respond automatically every time.

(Note: This is just an example and the password for the nick should not be confused with the optional server password explained above).

To automatically open a particular connection when you launch Snak, check the "Automatic Connect" checkbox.

Opening a connection


There are several ways to open a connection. If you have an existing profile then you can select the desired channel in the Profile List (Cmd-K) and double click it, or press the Join button. The name of the button changes to Leave if the you are already a member of the channel.

Snak remembers the windows you had open the last time you ran the program. If you have windows open with the channels that you want to join, you can just select them and press Cmd-O or use the Open Connection menu item under the file menu. You can also open a connection for a profile by going to the File menu and using the hierarchical menu under Connect To.

To see the state of a connection, open the profile list and look at the icon.


SnakScreenSnapz021
The connection is fully opened and the server has given you access to join channels



SnakScreenSnapz020
The server has accepted the connection but it has not yet given you access to join channel.



SnakScreenSnapz017
The connection is in the process of being opened.



SnakScreenSnapz016
The connection is closed.


Additionally, the server messages panel that is associated with each connection will show the state as text in the upper left corner. The server messages panel is the location where Snak will display the various informational messages that the IRC server sends. For example, the server will typically display an extensive "message of the day" often abbreviated MOTD where the server operator explains the rules for using the server.

To open the server message panel if it's closed, either select the profile or a channel that belong to the connection, and use the Server Messages menu item in the Panels menu.

Switching servers


After you have connected you may find that the server is lagged or not the one you wanted to be on. A lagged server is overloaded and takes too long to pass your messages on to the other members. There are several ways to switch servers.

If you have multiple servers in the active connection profile and you want to switch to the next one in the list you can use the command "/server +" or "/server –" to switch to the previous one.
You can also select a channel or console that belongs to the connection and press Cmd-E, or use the Server List item in the Panels menu. This will bring up the Server Selection dialog where you can select another server. This dialog will change the server that the current connection profile uses. It will not make a new connection. If you want to have multiple connections to different servers, go to the profile list (Cmd-K) and set up as many profiles as you want.

ServerSelection

You can select a server by double clicking on it or by single clicking and pressing the OK button. When you do that the current connection will disconnect (if it was connected) and switch to the server you selected.

In addition to the above two methods Snak also supports the "/server servername" command that allows you to connect directly to a particular server. Snak will use the nickname and username information from the profile that is associated with the channel or console where you typed the command.

Adding or editing servers


Snak comes with an updated list of about 350 major IRC servers on many networks from around the world, but there are a great deal more. Any server that is not already in the list can be easily added. As mentioned earlier it is possible to use the /server command to manually connect to any server. However, the server must be in the list of known servers in order to use it in a connection profile.

The server list is stored in the file servers.ini in the ~/Library/Application Support/SnakV5 folder (this is called a "path" to the file and it means that the SnakV5 folder is inside the Application Support folder in the Library folder in your home directory).

The server list comes from the excellent PC IRC client mIRC and is used with permission from the author. The list is updated regularly and the latest version can be downloaded from the mIRC website at http://www.mirc.co.uk/servers.ini

To use an updated mIRC server list in Snak, quit the program and place the new list in the folder mentioned above. The list is only read into Snak when the program starts up, so be sure it is not running when the server list is replaced. Snak also comes with an AppleScript called Update Servers that will automatically replace the list with the most recent version. To launch the script, show the Script folder with the command from the Scripts menu, open the folder in the Finder, and doubleclick on the script to run it.

To add a server or network to the server list, open the Server Selection dialog with Cmd-E or choose the Server List item in the Panels menu.
To add a server, first select the network to which the server belongs. If the network is not already in the list of networks it can be added it by pressing the Add button to the left of the network list.
EditServer

Once a network is selected you can add servers by pressing the Add button that is to the left of the server list.

The dialog that comes up contains fields for the server name, what port to use on the server (typically port 6667), a comment field and a timeout value. If the server takes a long time to respond you might want to increase the timeout value.

To edit the values for an existing server, select it in the list and press the Edit button.


SSL servers


SSL stands for Secure Socket Layer, and it is a method of encrypting the traffic between your computer and the IRC server. The IRC server has to be specifically set up to support encrypted communication, and currently only a small number of servers are configured in this way. To make Snak attempt to open a SSL encrypted connection when it connects to a server, select the SSL check box in the Edit Server dialog.

It is also possible to specify SSL when connecting manually. To do this, use a "-ssl" flag in the /server command like "/server -ssl ssl.ircserver.org:9999". This will attempt to connect the currently selected profile to the server using SSL. The port number 9999 is separated from the server name by a : (colon) character. The "/sslserver" command is just an alias for "/server -ssl".

The benefit of SSL is that the information you exchange with the IRC server over an encrypted connection can not be viewed by others. For example, if your company operates an IRC server for business communication while you are travelling there is clear benefit in using SSL. There are other scenarios but at the end of the day it comes down to your personal situation and needs. Most likely SSL is not something you need.

Also, due to the nature of IRC and the way the IRC servers communicate with each other, SSL must be used carefully to reap the full benefit. The traffic between you and your IRC server is encrypted, but if the IRC server has to forward the messages to another IRC server in order to reach other channel members, the messages will be sent in clear text.

So, to ensure an encrypted communication, both you and the person you communicate with must use SSL and be connected to the same server. If you communicate in a channel, every single member of the channel must use SSL, and every one must be connected to the same IRC server. If just one channel member is on a separate server or does not use SSL the communication will not be secure.


V60