App icon

Help for WinShoe IRC Client

Introduction and Getting Started

Introduction

WinShoe is an Internet Relay Chat (IRC) client for devices running Windows 7 or later that enables you to connect to IRC networks.

IRC is a mostly text based, and real time protocol that enables groups of people to chat in subject-specific "chat rooms", distribute targeted news links, share files, host games and quizzes, etc., and is quite separate from the web protocols used with browsers, so you access it via a client program dedicated to the IRC protocol. This is the most efficient way as the IRC client connects directly to IRC network servers without having to go through an intermediate server such as are used on web interfaces, which also often require you to sign up to a separate account, or tie you to a particular network, or lack features provided on a proper IRC client.

IRC uses low bandwidth and generally works well for responsive world-wide chat, and performs much better than high bandwidth web services when internet providers suffer temporary bandwidth restrictions.

Features of the Winshoe IRC client include the ability to connect to multiple IRC networks at the same time, server lists, channel lists, and channel sets for convenient connection and selection of favourite channels or sets of channels, aliases and popups, scripts with the ability to cross post from one network to another, connection state lists, text searches with highlighted indication on the searched window and matching results listed on a separate search results window, a user configurable cuss filter, RFC2811 channel identifier support, browsing from URLs, colour code modes compatible with mIRC, extended mIRC, pIRCh, cIRCus, Ircle, Hex and ANSI formats, access to raw IRC messages, channel windows with a topic / general information header and nickname sidebars with adjustable widths, and a comprehensive help file.

WinShoe also supports a Finger server, Finger client and an Ident server.

Version 2.00 now supports Unicode®, SSL/TLS and IPv6, and has been built and tested on Windows 7 and Windows 10. The user interface has been redesigned to allow the app's various windows (including channels) to be easily distributed across multiple monitors.

WinShoe is free software for general use. No registration or licensing is required.

Contents

Main (Introduction and Getting Started)

Reference

History

Getting Started

Windows Install

You can install a 32 bit or a 64 bit version, either for the current user only, or for all users. These options are supported with 4 installers, one for each combination. The file name indicates the options, e.g.

"Install_Winshoe200_64_All.exe" installs a 64 bit app for all users,
"Install_Winshoe200_64_CU.exe" installs a 64 bit app for the current user,
"Install_Winshoe200_32_All.exe" installs a 32 bit app for all users,
"Install_Winshoe200_32_CU.exe" installs a 32 bit app for the current user,

There are installers for two different architectures and two installation modes. These are named accordingly as follows.

Install_Winshoe200_32_CU.exe

Within the file name, 200 means version 2.0.0,
32 means 32 bit architecture,
64 means 64 bit architecture,
CU means "Install for current user",
All means "Install for all users".

Note that the 64 bit executable is named WinShoe.exe while the 32 bit executable is named WinShoe32.exe.

If you download the files in a zip file, you must first unzip the file to extract the .exe files. Don't forget to run antivirus or antimalware software on any downloaded files before using them.

Creating links and shortcuts

These are particularly handy if you use a portable installation, although of course if you have it on a removable drive the links only work when the drive is present.

To create a desktop shortcut, open Windows 10’s Start menu and find Winshoe in the Apps list. You can drag and drop the application’s shortcut from there to your desktop. When over the desktop, an icon with the word "Link" will appear. You just need to release the mouse button to create the desktop shortcut.

Another method is to click on the Winshoe.exe or Winshoe32.exe file, e.g. in a portable installation, then right click, select "Send To", then "Desktop (create shortcut)". If you want a shortcut somewhere other than the desktop, you can drag or copy (Ctrl+drag) this shortcut to a folder.

To create a link in the Start menu or on the taskbar, you can right click the .exe file and select "Pin to Start", or "Pin to taskbar".

Creating Shortcuts for Windows 7:

(1) Use Explorer and create a shortcut to your WinShoe.exe program:

Select the file, by using Explorer (Left-click the WinShoe application file).

Press the Right mouse button and drag the file to the Desktop, or to a Folder on the Desktop. At the prompt, select "Create Shortcut(s) Here".

(2) You can also start Explorer, locate the file, and double click on it to run.

(3) Or use the Start button, select Run, and enter the full path to the program.

Additional notes for Windows 10:

(1) Method (1) above changed in Windows 10: Do not drag the file to the Desktop as this will now copy the whole file. Instead, right-click, select "Send to", then select "Desktop (create shortcut)".

(2) After installation, if you checked "Add a Start menu shortcut", you should be able to left click Start, enter "Winshoe", and get links to the installed Winshoe program.

Uninstalling:

Before uninstalling, check where your %APPDATA% area is. Your settings there will be left unchanged by the uninstaller so that if you re-install they will be available again as you left them.

Uninstalling Winshoe that was installed by an installer

In Windows 7:

From the Start menu, select Control Panel, select Program, then in Large or Small icon view, click Programs and Features. If you're using Category view, under "Programs", click "Uninstall a program".

Select the program you want to remove, and click Uninstall. Alternatively, right-click the program and select Uninstall.

In Windows 10:

Select Start. Locate the app (Winshoe), e.g. by typing in "Winshoe" until its name appears, right-click on the app and select “Uninstall.”

Alternatively, select Start and type in "Add or remove programs" until the link to "Add or remove programs" from System Settings appears, click this, then scroll down the list of apps until you find Winshoe. Click on the listing, which should reveal a "Modify" and "Uninstall" button, or just an "Uninstall" button. Click "Uninstall" and follow the prompts.

Portable Install

The app can also be installed as a portable application. That means simply that everything in the portable distribution package is copied together to a desired location and your profile files are maintained locally as subdirectories in that location. This gives you the option of installing to a flash drive, which can be used in different machines, and you run the app from the location where you put it on the flash drive. There is a 32 bit and a 64 bit version - most modern machines are 64 bit so normally you would use the 64 bit package. The distribution packages are separate for each architecture, and should be named as follows:

  • 32 bit package: Portable_Install_Winshoe200_32.zip
  • 64 bit package: Portable_Install_Winshoe200_64.zip
Uninstalling a portable installation

To uninstall a portable installation, simply delete all the files in the directory where you installed the software, including the \defaults\ subdirectory, but not the .ini files. Your settings (.ini files) will also be in the directory where you installed the software so make sure to keep them, unless you are really sure you don't need them any more.

You can keep the settings in your %APPDATA% area or the folder where you placed the portable install (these are the .ini files, and the folders one level below the portable executable location \Certificates, \debug, \scripts, \Downloads, \logs, \Uploads and \Defaults. Only delete these if you are sure you won't need them any more.

The application defaults supplied with the software are a level below the \defaults\ folder), and should be unchanged from the install package, so can easily be re-installed.

Running the program

When you start the program, it should appear similar to the following:

Main app window

In normal use, you simply start by clicking on the "Connect" button in the toolbar to connect to a network and join channels. You might need to use the main menu Setup dialogs to enter details of your favourite networks and channels, if these are not already in the built-in default lists, and enter your personal settings (e.g. nicknames) and app setting preferences using the main menu Setup / App Settings dialog.

Routine use of the WinShoe IRC client should enable you to quickly connect and join your favourite channels, either using the built-in lists, or after you have stored your own favourite networks and channels. A typical session would start like this:

  1. Run the application
  2. Click the Connect button
  3. Select a network and use the default server address or select one, and click one of the "Connect to..." buttons (for SSL/TLS or non-SSL/TLS protocol).
  4. On successful connection a server status window opens, and you can connect to a channel or channel set using the relevant button.
  5. Connect to another network if you wish, or close the IRC Connect dialog.
  6. Your selected channels should have opened, ready for you to start chatting or just observing.

The Tab Control and its built-in Tab Windows

There are four pre-defined permanent windows selected by tabs inside the main frame window. Collectively these are held in what is referred to as the "tab control". The tab control contains headers that group tabs associated with windows, and the windows themselves. Other windows can also be docked into the tab control or made free-floating again, as desired.

The Status window logs information about app initialisation, Winsock initialisation data, local host addresses the status of connections, incoming Ident and Finger queries etc. which is useful for checking the progress of connections and provides useful debug information (e.g. for bug reporting). Normally however, you would initiate a connection using the Connect button and not pay much attention to what is going on in the Status window - it's useful for support if necessary. Some of the logging here can be enabled or disabled by the app settings dialog.

If no logging options are enabled (Main menu / Setup / App Settings / Logging Settings tab) the status window will show the status of the configuration files (whether the Portable.ini file is present and whether portable mode is on or off, and whether other setup files exist or are being initialised), the Winsock version in effect, the generic WinSock library version, your Local Host Name and adapter addresses.

If all logging is enabled, and the Finger and Ident servers are enabled, there will be a lot more detail, normally ending up logging the Ident server startup on port 113 and the Finger server startup on port 79, each in their own thread.

Connections to IRC servers are logged as they are made. Loading of SSL/TLS certificates from your profile store is also logged here. If full SSL/TLS logging is enabled, you can see if an SSL/TLS negotiation fails (e.g. one scenario is if the server hangs or is overloaded, there may be many "SSL_connect wants read" logs, which eventually time out). If client logging is enabled, the creation of the client thread for an IRC connection is shown.

The Find Results window shows the results from text searches, and reply messages received from remote Finger servers when you send them a Finger Query (but if a remote client sends you a Finger query, the details of the incoming query are shown on the Status window).

The Script window shows the currently loaded script. The scripting is started, stopped and controlled by a right-click context menu.

The Script Log window shows how certain script commands will be executed when the script output is set to go to the Script log window, otherwise the script commands are executed and sent to the specified output, e.g. an IRC channel, except for special commands like "/SCRIPTLOG" and certain error reports.

The pre-defined windows automatically wrap text and display colours and text attributes. Other windows are created as necessary to display text relating to IRC servers, channels or private chats.

In any window, you can press the End key to go to the end of the text, and the Home key to go to the top. As pre-defined windows, server status, channel and private chat windows are display windows not used for editing, therefore End does not have the function to go to the end of a line, but the left and right arrow keys can be used to scroll sideways; text normally wraps so this shouldn't be necessary, except for nicknames in nick lists. Vertical and horizontal scrolling can be done using mouse left clicks on scrollbars as usual. Up and down arrows can be used to move up and down in the text one line at a time, or Page Up and Page Down to move in greater amounts (about one page of text). If the desired window does not respond, make sure it has focus by left-clicking on it.

A wheel mouse can be used to scroll up and down. Alternate mouse wheel (middle button) clicks will switch between the top and bottom of the text.

You can search for text in windows (see Find Dialog), access additional features using right-click pop-up menus, and you can use the mouse to select, Cut & Paste text from any text window or edit control. As channel text may be fast moving in a busy channel, the "Cut" operation happens automatically when you select a chunk of text with left button down, drag, and release button - there is no need to do a separate "copy" operation, the text is copied to the clipboard

You can move the window tabs in the tab control left and right, or to a new horizontal or vertical group. The following illustration shows the Script window moved to a new horizontal group, allowing the script to be viewed as the same time as the script log.

Main app window, script tab moved

The following illustration highlights features of the main window with annotations. Below the standard title bar with the application title and system minimize, maximize, and close buttons is a conventional main menu - as usual, clicking on a main menu item opens a sub-menu with a range of options to select dialogs and control functions - except "Redraw!" which immediately redraws the application.

Below the main menu is a toolbar which contains buttons to activate commonly used features. These are for connecting to a network, setting up channel lists, bringing all the app windows to the foreground, and redrawing (a quick way of doing the same as the "Redraw!" menu command).

Below the toolbar, and filling the rest of the window (except for the status bar at the bottom) is a tab control which is used to organise the functional windows of the application and allow you to make each one visible by clicking on a tab.

The tab control contains some built-in windows: Status, Find Results, Script Log and Script. Additional windows can be docked in the tab control, adding to the tabs on the top left of each group. If there are more tabs than can fit in the window width, you can shift them into view using the left and right arrow buttons at the top right of each tab group. Another button at top right (with a down-pointing arrow icon) can be used to list the tabs in the form of a popup menu so that you can select a tab even if it is not in view.

If you create a tab group, the split between then can be adjusted by dragging the divider between them.

The tab control tabs themselves have a right-click popup menu, as shown in this screenshot. The options allow you to move the tabs left or right in the tab order, move a tab to another group, or change the tab group arrangement between horizontal and vertical.

Main app window with annotations

Status Bar

The status bar is a horizontal window at the bottom of the main application window in which various kinds of status information is displayed. The status bar is normally divided into parts to display different types of information, except when browsing the main menu, when an extended description of menu items may be shown instead.

The first three panels from the left show the connection state for Finger Client, Finger Server, and Ident Server.

  • UNC: Not connected, disconnected, or not running.
  • RNG: Resolving a host domain name or IP.
  • RES: Host was resolved, connect initiated.
  • LIS: Listening for connections (server).
  • ACC: Accepting a connection request (server).
  • DIS: Shown for disabled finger or ident servers.

For more information, see Connection State.

The next two panels are reserved for DCC SEND file transfer progress. The originator, sending the file with a DCC server, has progress displayed as "DCC (S) prog:" with a percentage value in the first panel, and the recipient running a DCC client has progress displayed as "DCC (C) prog:" with a percentage value in the second panel. For more information, see Start DCC Send.

The last panel shows the name of the loaded script file, after "Script:". If no script file has been loaded it will be blank.

To connect to an IRC server:

Click the "Connect" button on the main window toolbar, or select Tools on the Main Menu, then IRC Connect - a dialog box will appear, to allow you to select a network and select a server and start the connection process. The "Connect" dialog is a restricted version of the Setup/IRC Servers Configuration dialog to reduce the risk of unintentional changes to the database when you only need to connect to an existing network/server, and this is why some controls will be disabled.

Using the list box under "IRC Network", select the IRC network that you want to connect to (e.g. "Chat4All.org") by scrolling the list until the name is visible and left clicking the row. The servers for this network should then be listed in the second list, under "Servers on IRC Network: Chat4All.org". Networks often have a generic address such as "irc.chat4all.org" which the network uses to map your connection to one of their servers that should give you the best performance, e.g. "eu.chat4all.org" or "us.chat4all.org". The list of networks and servers originally comes as a default set, but you can modify it as you wish. Sometimes one of the servers is out of action, so having alternative addresses is useful. You can sort the order of servers for each network, and a recommended ordering is a generic server at the top, then one that works best for you, and further servers as required.

Under the servers list you will see a "Connect to non-SSL/TLS port" button, a "Connect to SSL/TLS port" button, and a Login-on-connect checkbox. Login-on-connect is a special procedure for connecting to a few networks, which is currently subject to change and not consistently implemented across networks - normally you don't need this so leave it unchecked. You can connect to a server using the original unencrypted method ("Connect to non-SSL/TLS port") or using a more secure method with the "Connect to SSL/TLS port" button, if the related ports "Port" or "SSL Port" are defined in the server list and the network supports the method.

For your information when connecting, below the connect buttons is a box showing relevant user settings such as the nicknames to be used for connecting, and a connection status list showing the connections already in use.

The host name, user and nickname settings used when you launch the IRC Connect dialog are set up in the Main menu - Setup / App Settings / Identification tab.

While the program is connecting, you can monitor progress by watching the connection status list, or opening the more detailed "Tools/IRC Status" dialog. The IRC Connect dialog stays open while connecting, so you can connect to another network straight away or click the Close button to dismiss the dialog. The IRC Connect dialog is resizeable, if you want to see more details at once in the lists.

Server information, channel text, and private messages each appear on their own windows.

Server Status Window

When you are connected to the server, a Server Status Window appears, titled with "Status:" followed by the network name and connection number (e.g. "Status:Chat4All.org (1)").

Server Status Window

The toolbar contains buttons labelled "Channels", "Channel sets", "To Foreground", and "Redraw", and tabs "Formatted", "Raw", and "Split". The tabs select the display format for the status window. The "Formatted" tab shows messages from the server interpreted for optimum human readability. The "Raw" tab shows raw messages in full detail from the server, which is of more interest for IRC app development, learning about the IRC protocol, debugging and bug reports. These are the messages as received from the IRC server, without any translation (attributes and colour codes are also shown "raw"). The "Split" tab selects a layout with a dividing bar that can be repositioned, showing both the "Raw" and "Formatted" versions side by side.

The server status window will show numerous messages and notices from the network server, including:

  • Channel and user mode settings, e.g. "#channel +ptn"
  • Nick name changes
  • Quit messages
  • PONG replies
  • /WHOIS lists
  • Kick messages
  • CTCP messages
  • Server notification of your SSL cipher and fingerprint

The "Channels" button opens the "Join IRC channel" dialog. The "Channel sets" button opens the "Join IRC channel set" dialog. The "To Foreground" button brings all channel windows associated with this server to the foreground. The "Redraw" button repaints all text in the window (occasionally due to shared memory access restrictions or issues with overlapping windows, the display may not get fully updated and this will refresh any imperfectly drawn areas).

The main window, server status, channel and private windows are all fully resizable, as are many of the app's dialogs.

Underneath the main text window is an edit box for entering commands. You can't enter plain text here, or it will display an error message: "{Error} Text not in channel", but you can enter commands intended for the server or containing specified channels or users, for example "/join #help", "/msg NickServ help".

Server login messages - Preamble

If your connection and login to a server is successful, the server will send a screen-full or more of various information. This usually starts with some notices about the login process, then a numeric message, (generally called a "reply" although these are often unsolicited notifications), which is assigned the number 001 (IRC specifications and documents assign this number the symbol RPL_WELCOME for better readability by humans). A few more low-numbered numeric replies follow with basic information. For example (from an EFNet server:) when you have logged in with the nickname YourNick (the prefixes and numeric message numbers can be seen on the "Raw" tab, but are stripped when displayed on the "Formatted" tab of the server status window):

NOTICE AUTH :*** Processing connection to irc.colosolutions.net
NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** Found your hostname
NOTICE AUTH :*** No Ident response
:irc.colosolutions.net 001 YourNick :Welcome to the EFNet Internet Relay Chat Network YourNick
:irc.colosolutions.net 002 YourNick :Your host is irc.colosolutions.net[198.252.144.2/6667], running version ircd-ratbox-3.0.8
:irc.colosolutions.net 003 YourNick :This server was created Wed Jan 2 2013 at 18:28:38 EST
:irc.colosolutions.net 004 YourNick irc.colosolutions.net ircd-ratbox-3.0.8 oiwszcrkfydnxbauglZCD biklmnopstveIrS bkloveI
:irc.colosolutions.net 005 YourNick CHANTYPES=&# EXCEPTS INVEX CHANMODES=eIb,k,l,imnpstS CHANLIMIT=&#:100 PREFIX=(ov)@+ MAXLIST=beI:100 MODES=4 NETWORK=EFNet KNOCK STATUSMSG=@+ CALLERID=g :are supported by this server
:irc.colosolutions.net 005 YourNick SAFELIST ELIST=U CASEMAPPING=rfc1459 CHARSET=ascii NICKLEN=9 CHANNELLEN=50 TOPICLEN=160 ETRACE CPRIVMSG CNOTICE DEAF=D MONITOR=60 :are supported by this server
:irc.colosolutions.net 005 YourNick FNC TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:10,NOTICE:10,ACCEPT:,MONITOR: :are supported by this server

Numeric replies start with a prefix which is the origin of the message - normally the server you are connected to, but could originate in another server linked into the network. Then the reply number is given, the recipient (nickname), followed by the principal content of the message.

The RPL_WELCOME (001) reply gives you a welcome message identifying the network.

RPL_YOURHOST (002) identifies the host and the type of server software it is running.

RPL_CREATED (003) gives the date/time that the server was started or created.

RPL_MYINFO 004 lists available user modes and channel modes

Numeric 005 (RPL_ISUPPORT), which was pioneered by Dalnet, allows the server to inform the client of any protocol extensions supported by the IRC server. Due to the often large number of parameters, the server may split them between multiple 005s sent consecutively.

Further numeric messages may follow giving information about the server status.

RPL_LUSERCLIENT (251): Number of users and servers
RPL_LUSEROP (252): Number of IRC Operators online
RPL_LUSERUNKNOWN (253): Number of unknown connections (in an indeterminate state)
RPL_LUSERCHANNELS (254): Number of channels formed
RPL_LUSERME (255): Number of connected clients and linked servers
RPL_LOCALUSERS (265): Number of local users
RPL_GLOBALUSERS (266): Number of global users
RPL_STATSCONN (250): Highest connection count

Server login messages - Message Of The Day (MOTD)

The Message Of The Day (MOTD) is usually sent soon after you log in to an IRC server, to provide useful information about the network and the local server, using the following three types of numeric reply:

RPL_MOTDSTART (375): Indicates the start of the Message of the Day.
RPL_MOTD (372): Successive lines of the MOTD body are sent using this numeric.
RPL_ENDOFMOTD (376): Marks the end of the MOTD.

For further information about the MOTD, and an example, see Message Of The Day (MOTD).

After the MOTD, introductory messages from the server should end briefly with some of the following:

  • Service notices about nickname registration
  • Sometimes some of the numerics e.g. 251, 252, 266 are displayed after the MOTD instead of before it
  • Network settings of your user mode
  • CTCP queries about your client
  • Periodically a PONG "keepalive" message that your client must reply to in order to stay connected (this happens automatically)
  • Notices about available services
  • Notification of your SSL cipher

Further information appears on the server status window depending on your activities, for example when you join a channel details of the channel topic and modes, and nicknames in the channel, are listed.

Server status window right-click popup

image

A right click on the text area will bring up a popup menu with various commands, some of which appear on most text windows, and others that appear for specific windows only; for example, commands for finding matching text, opening channel and channel set dialogs, controlling scripts, copying text to the clipboard, docking the window to the tab control, controlling logging, etc.

  • Find... - Opens the find dialog to search for matching text.
  • Clear Finds - Removes highlighting of previous finds.
  • Clear Window - Removes all text from the underlying window
  • Server: celestia.canternet.org (greyed) - Shows you the server name
  • View SSL/TLS certificate... - Opens the SSL/TLS certificate viewing dialog
  • Join Channel... - Opens the "Join IRC channel" dialog
  • Join Channel set... - Opens the "Join IRC channel sets" dialog
  • Channel listing... - Opens the Channel Listing dialog
  • Quit - User defined QUIT messages
  • Word: discord.canternet.org (greyed) - Shows the word under the mouse click
  • Copy word to clipboard - Copies the word under the mouse click to the system clipboard
  • Browse in new window - Opens word as a browser URL
  • Dock - Docks the server status window in the main window's tab control
  • Copy All to Clipboard - Copies all text in the window under the mouse to the clipboard

Right click menus on text windows can be extended by "Popups", which are user defined commands that can be edited from the main menu using "Edit" / "Edit Popups, Aliases, Ignores". In this case, the server status window has "Quit" added, with two subcommands for quitting a connection with specific user-definable messages. Popups can be nested to produce a tree of items and subitems. A default set of popups are included with the installation including basic CTCP functions, channel modes and op commands, and quit messages.

For further details of the right-click menu items, see Right Click Popup Menus.

To join a channel on this server, left click the "Channels..." item on the popup menu (or click the "Channels" button on the toolbar at the top of the window). A dialog appears, which should have a drop-down list containing all the channel names defined for the network, as shown under "On network". Note that these are not necessarily all the channels on the network, which is often a huge number, but are ones predefined in your profile database. You add, edit or delete channels for each network using the main menu Setup / IRC Channels Configuration dialog (if no channels have been defined for the network, your "Join IRC Channel" dialog channel list will be empty, but if you know the name of a channel you can type "/join #channelname" in the edit box at the bottom of the server window. Channels can also be added to the profile channel list using the right-click "Bookmark channel" command when you have joined one.

Join IRC Channel Dialog

Select the channel you want using the dropdown list. The channel you selected should be shown under "Selected Channel" and the related network under "On Network". Then click OK to join that channel, or Cancel to close the dialog without joining. If you want to join a channel not in the Channel List, just type the command /join followed by the channel name (e.g. /join #help, or /j #help for short) in the edit box at the bottom of the Server status window.

When you have joined a channel, a Channel Window will appear. You can now chat to anyone in this channel by typing text into the edit box at the bottom of the Channel window. Commands (e.g. /join) can also be entered in the Channel window edit box. However, using the Server window edit box for commands helps to ensure that if you make a mistake entering the command, it won't appear as text in the channel. A channel window looks like the following image:

Channel window

The Channel window contains three textual sub-windows, and you can change their relative proportions using a horizontal and vertical divider.

The top window, called a topic or channel information window, shows information about the channel, including the topic set for the channel by its operators, and information about channel modes.

A list of channel topics for each channel on the network can be obtained using the /list command.

The items placed in the channel information window include:

Topic: The channel topic, set by a channel op using the /TOPIC command.

Topic updated by: This tells you when the topic was last changed or set, and who did it.

Channel Modes: This is a list of modes for the channel.

Channel created: This tells you when the channel was created.

Channel Key: This gives the keyword associated with the "k" mode, if set.

The two windows below the information window are the text window for all the discussions and messages in the channel, and a nickname list. The Main menu Setup/App Settings/General tab includes a "Nick List on left" checkbox for placing the nick lists on the left; if you uncheck this, you can have the nick lists on the right.

The main text window is normally wider than the nickname list, and contains channel text, which consists of messages from the other channel users, some status messages (e.g. join and kick messages), and copies of any text that you send.

Wrapping is done automatically, and attributes and colour codes are translated according to the colour mode (see the Main menu - Setup / App Settings / General tab). Winshoe has two colour modes. One supports mIRC, pIRCh, cIRCus, ANSI and hex colour codes. The other supports Ircle, ANSI and Hex colour codes.

The narrow divider bars between the text windows are for adjusting their relative positions. They set the width of the nick window and the information window, while the main text window will scale with the overall channel window size. Note that this sets the widths globally, so dividers on all channels will be synchronised to the one you are adjusting.

The nickname list is sorted in alphabetical order (with voiced and opped nicks at the top), and nicknames are not wrapped (use the horizontal scroll bar if necessary or adjust the vertical divider).

Text can be highlighted using attributes and/or colours. These are added by using special Control Codes in the edit boxes, usually for channel windows. There is a special colour selection dialog which appears when you enter Ctrl+k in an edit box, which allows you to pick colours from coloured buttons and enters the right codes automatically.

There is also a text snippets dialog which appears when you enter Ctrl+t in an edit box, which allows you to recall, create and edit lines of text to paste into the edit control of server, channel or private windows.

Relationship of Winshoe Windows after connecting to a server and channel

When you have connected to a server, and joined a channel or two, you should see a set of windows similar to these:

From left to right:

  • The main app window containing the main menu, 4 toolbar buttons, a tab control window divided into 2 horizontal sections, and a status bar.
  • The IRC Connect dialog remains open as a modeless dialog, so that you can quickly join another network. The current connection is shown as registered on the status list.
  • The Server Status window for the connection to EFNet.
  • Two channels on EFNet: #computers and #EFNetNews.

Jump List

The channel windows operate as independent windows on the desktop, so what if they get covered up by other app windows? You can go to the Windows Taskbar, locate the Winshoe tab, right click and then right click on the "All to foreground" item that pops up in the "Jump List". This works in a similar way to the "To Foreground" button on the main window and will bring all channel windows to the foreground. Note that on Windows 7, this feature may result in the taskbar tab flashing after use, which appears to be a system behaviour "by design" but is simply a nuisance. Fortunately, this does not appear to happen on Windows 10.

Jump list

Restoring off-screen windows

It's useful to be able to move the separately floating WinShoe windows to a second monitor, but if you change your monitor setup and have saved the window position, it can become unreachable as it's no longer on a displayable area. The main menu Window / Select/Restore dialog allows you to bring specific windows to the foreground, or restore it to a default position and size.

If you have lost the main window of this or any Windows application due to monitor changes or inadvertently shifting it off screen, there is a procedure you can use to restore it:

Select the program window on the taskbar, so it has the focus. Hit Alt+Space. Then press M, which selects Move on the system menu. Now use the arrow keys or left-click-drag the mouse to move the window back onto the visible display. Then click somewhere with the mouse or hit Enter to end the move.

Alternatively, for Windows 7 only: Hold down the Windows key, then press the right or left arrow key until the app appears on your display.

Private Messages and Notices

Private Message windows and Notices will also appear when you receive a private message or notice from an IRC user or bot. The difference between a message and a notice (which are based on two fundamental IRC protocol components) is that messages are used for two-way chat, whereas notices are sent one-way and are not to be replied to. Therefore if you receive a private notice, it will normally be displayed in the Server Status window as shown below.

Private Notice on Server Status

If someone sends you a private message, a Private Message window will open and you can talk privately by typing your replies in its edit box at the bottom. If you close the private message window, a new one will open if the other user sends you another message, so normally it is a good idea to say your goodbyes first.

A private message window allows you to chat as for a channel window, but it has one text area and sends your text to one person only, whose nick is in the window title and any lines that they type. Likewise, they send their private message window text to you only and this chat goes on independently of any channel windows and is mediated by the IRC server that you are connected to.

More details on private message windows are given below.

Private notices are often sent by channel operators or bots when you join a channel. Sometimes they send you a "notice" using the message protocol, which will open a private message window instead (you can close these windows and continue to watch the main channel).

If you open a chat with a bot or service using /msg <service>, when it replies and opens the private message window, you can then type commands in the window without entering the /msg <service> every time.

Most communication between people and services is done using messages and notices. At the lowest level, these are the PRIVMSG and NOTICE commands which perform delivery of a text message from one client to another. When you type text into the edit box in a channel window, Winshoe will generate a properly formatted PRIVMSG command addressed to the channel. If you use the /MSG command in the edit box, followed by a nick and some text, Winshoe will generate a properly formatted PRIVMSG command addressed to the specified nick. You can use the /NOTICE command to send a notice to someone. However, NOTICE is normally used for server and channel services to send short informative messages to users, e.g. notes on how to register a nickname:

  <NS>[NOTICE->SilverCat]  The Nickname silvercat, is available for registration.
  <NS>[NOTICE->SilverCat]  To register silvercat, type /msg NS register password 
  <NS>[NOTICE->SilverCat]  Where the word password is one of your choice 

Messaging with Service Nicks

IRC networks may operate services (special nicks), for example to manage registered nicknames. The /MSG command can be used to communicate with the service nick for registration purposes, and you will normally be given instructions on what commands to use. For example, if you have logged in to Dalnet with a registered nickname and need to identify yourself against a previous registration, you may get a notice on the Server status window like this:

  <NickServ>[NOTICE->YourNick] This nick is owned by someone else. Please choose another.
  <NickServ>[NOTICE->YourNick] If this is your nick, type: /msg NickServ@services.dal.net IDENTIFY <password>
  <NickServ>[NOTICE->YourNick] Your nick will be changed in 60 seconds if you do not comply.

After entering your registration password using the specified format in a /MSG message, the NickServ service responds, assuming the password is correct, with another notice in the Server Status window:

 /msg NickServ@services.dal.net identify yourpassword
  <NickServ>[NOTICE->YourNick] Password accepted for YourNick.

There is no specific mechanism in the IRC protocol for notices to be addressed to channels, but if the text of the notice appears to be associated with a channel (as is often the case, the relevant channel is mentioned, as shown in the example channel window above) then Winshoe will display the notice in the relevant channel as well as the Server Status window. Notices to you are displayed in the Server Status window.

The Private Message Window

If you want to chat to someone in private, you can use the /MSG <nick> <text> command to send them (if their nick name is <nick>) the message <text>.

The default popups for nick lists include a "Msg" command which opens a query dialog containing the legend "Enter private message to send". The query dialog is invoked by a special token used in popup definitions to get text from the user. Otherwise, if you are using /MSG in the edit box, you won't get this dialog, the command just sends the text to the other nick. Usually on receiving a message address to the nick, rather than the channel, an IRC client opens up a private message window displaying the message received, and you can then continue the conversation in that window, with the messages being generated automatically from the text you enter.

If they reply, the reply will appear in a new window. The first /MSG message that you send does not appear in its own window, but will be displayed on the server or channel window where you entered it. It won't be visible to other users in the channel. To be on the safe side, you should make a habit of entering /MSGs in a server or global edit box, so that if you make a mistake and it turns out to be interpreted as plain text, it will not be sent to other users. Alternatively, you can use a user-defined Popup (see Aliases and Popup Menu Custom Commands), which is how the default "Msg" command is implemented.

Channel window

The above shows a private message window opened by Helpy. You can reply by typing in the edit box at the bottom, and only the two participants can see the conversation. Unlike channels, private windows are not listed by the server and can not be joined arbitrarily by other users. However, private message window messages go through the IRC server, so if you want something more secure you might consider using DCC CHAT or the SSL/TLS version XDCC CHAT.

A Private Message window allows you to chat as for a channel window, but it has one text area and sends your text to one person only, whose nick is in the window title and any lines that they type. Likewise, they send their private message window text to you only and this chat goes on independently of any channel windows and is mediated by the IRC server that you are connected to.

The image below shows the two sides of a private message chat, in a demonstration produced by logging in to the same local IRC server twice to create two nicks.

Private Message Pair

The private chat starts when SilverCat types "/msg FooBerry Testing" in the channel edit box (or right-clicks on FooBerry in the nick list and uses the Msg popup). This opens a window titled "SilverCat - localhost (2)" on FooBerry's connection and displays the message as "<SilverCat> testing" in the text window using the normal colour for chat messages from other users.

FooBerry then replies "back at ya", which is displayed in light blue on this window, gets sent to SilverCat and is displayed in black on SilverCat's connection in a window titled "FooBerry - localhost (1)", in other words a window which is showing private messages from FooBerry. Of course normally a user would only see one window at a time as they don't see the remote user's window. The chat can then continue as long as required, then the users can close the private chat windows.

Back to Top

What is IRC?

Internet Relay Chat (IRC) is a text-based, real time chat structured around topic-based channels.

Topics on IRC channels are as unlimited as those on the WWW. There are channels for discussion of current affairs, software applications and development, computer games, politics, general chit-chat, quizzes hosted in the channel itself, investment, business, sports, music, languages, science etc. Major international events cause surges in interest with channels opened specifically to discuss that subject and share relevant news articles.

To use IRC, you connect to an IRC server, by running an IRC client program on your local computer. After getting connected, you then join a channel (sometimes called a chat room), which is a group of users who can all see the messages that each one types. Channels are generally based on a particular topic or concept.

IRC was pioneered by Jarkko Oikarinen (http://www.kumpu.org/jto/), at the University of Oulu in Finland. In 1988, he developed IRC client-server software to improve on the facilities offered by the Unix "Talk" program. In his words: "Internet Relay Chat is text-based Internet-wide multi-user communication system, where discussions are organized into channels". Jarkko Oikarinen was awarded the 1997 Dvorak Award for Personal Achievement for designing IRC.

An IRC network consists of a number of interconnected servers. Users connect to these servers over the internet and when a user sends a text message by typing it into an IRC client program, the server sends it to other users according to the type of message and the channels that each user has joined.

Why are there so many different IRC networks? One reason is that the protocol does not scale sufficiently well for large networks, since all servers must know about all other servers, clients and channels, and changes need to be updated in real time. Another reason is that IRC networks are susceptible to network congestion, the end result often being disconnection of a server and all its clients ("netsplit") and this, and the subsequent reconnection, generates a lot of traffic that tends to prolong the congestion. Clearly this would be worse for bigger and bigger networks as more users would be affected. A third reason is that the network management is often parochial and prefer their networks to focus on certain subjects and use the server software and services of their own preference. Networks are usually limited in the number of personnel available to manage the network. Hence you will find each IRC network tends to have its own flavour of server software and services, and support specific channel topics, matching the interests of its management.

User Nick names

Each user on a network has their own unique nickname. This was historically limited to 9 characters, but modern networks allow more. A nickname can contain letters (uppercase or lowercase), numbers, and the characters '-', '_', '[', ']', '{', '}', '\', '`' and '|'. A name cannot start with a number or hyphen. Modern networks also allow the use of Unicode® characters in nicknames and text, facilitating chat in the proper alphabet for your language.

Operators

IRC operators (IRCops) manage the IRC servers. Channel operators (chanops) manage individual channels on an IRC network.

Channels

Each channel on an IRC network groups a number of users. There may be many different channels on the network, and a user can join multiple channels. Channels are normall created when a user joins a channel whose name does not exist. However, these channels disappear when the last user leaves. Therefore to keep the channel open and protect it from malicious persons, there is normally a permanent presence of channel operators responsible for the channel. Network services can also provide automated channel management users that you can register for to manage your channel.

Channel names begin with a channel prefix, which is the character '#', '&', '+' or '!'; the '#' form is the most common and means that the channel is available on all servers in the network - for example: #irchelp.

'&' channels are restricted to the local server.

'+' channels are preset to mode 't' and their modes can not be changed.

'!' channels are "safe channels" (See RFC2811 for details).

Back to Top

Safe Chatting

Here are a few important rules that everyone should be aware of. The links I have given below have more information.

Never tell anyone you meet on the Internet personal details such as home address, telephone number, school's name, passwords, bank or credit card information.

Be very wary of people who want to arrange a face-to-face meeting- people don't always tell the truth online. If you are chatting to a "child", it could be an adult pretending to be a child. But if you really must meet someone, take a friend, or a responsible adult, and meet in a public place, preferably with CCTV coverage.

Never open downloaded files or attachments unless you have had them scanned using good, up to date anti-virus software. They could contain viruses or other malicious software which could destroy data and software on your computer, or read personal information from it.

Apparently safe files can be dangerous- even a trusted person could pass on a file containing a virus accidentally, because they haven't discovered it themselves, or because the virus sent the file automatically without their knowledge. Earlier versions of WinShoe did not support the DCC file transfer protocol, but as it does support it now, you should either disable it in the IRC options (Setup / DCC dialog, Enable DCC CHAT request and accept, Enable DCC SEND request and accept), or make sure you have strong and well accredited tools for scanning downloaded files against malware. See also Viruses.

Don't respond to messages that are nasty or worrying. Remember you can always leave. Just click the close button at the top right of the program. Use the /IGNORE and the /SILENCE commands to block annoying messages from specific people. Report harassment to channel ops, IRC ops, or look up the network's web page and contact the administrators.

Remember you can log chats- right click on the channel text, look for "Logging (OFF / ON)", click, and answer the "YES/NO" confirmation dialog box to start logging to a file which will be named after the channel, and stored in the logs directory set up in the Main menu - Setup / App Settings / General tab. This can also be done with private message windows.

Ask yourself: "Are people telling the truth?" and "How would I know?".

Use the /WHOIS <nick> command to check someone's IRC information. Although often there will be nothing much there to really identify someone, the details may be more useful as evidence to pass on, e.g. to raise a case with channel operators or the IRC network administration.

Useful Links

How to Use Proper Chat Room Etiquette

A wikiHow article: "When you go into a chat room for the first time, it is often hard to access or acquire the chat room rules even after lurking for a bit. These little hints can help..."
https://www.wikihow.com/Use-Proper-Chat-Room-Etiquette

How to Be Safe in the Chat Rooms

A wikiHow article including topics such as keeping Your personal information private, interacting with people offline, being aware of predators, and ceasing communication and reporting threats.
https://www.wikihow.com/Be-Safe-in-the-Chat-Rooms

Childnet International

"...a non-profit organisation working with others to help make the internet a great and safe place for children..."
https://www.childnet.com/

US Computer Emergency Readiness Team

Using Instant Messaging and Chat Rooms Safely - security tips regarding instant messaging, chat rooms, and bots.
https://www.us-cert.gov/ncas/tips/ST04-011

School of Privacy - How to IRC Safely

https://school-of-privacy.com/post/35226883804/how-to-irc-safely

Please note that IRC servers and links mentioned elsewhere in this help file or in the default server list may not be suitable for kids. Never assume that any chat service is "safe for kids", or completely free from "Inappropriate chat", even if promoted as such. Ownership of servers and operating policies may change over time.

Back to Top

Right-click Popup Menus

All text windows have a pop-up context menu that is shown when you right click with the mouse on the window content area. You can define additional custom nick, channel and server popup items to be added to the right click popups, using the main menu "Edit/Edit Popups, Aliases, Ignores" command on the main menu to open an editor dialog.

The following right-click popups are available on "single windows", which are windows that don't have a text-entry edit box or other text windows (e.g. NOT channel, server status, or private chat windows), and are not associated with a specific network connection.

Status, Find Results, Script, Script Log, Debug File
Right-click menu item
Windows
Description
Find...
All except Find Results
Opens the find dialog to search for matching text. Matched lines are highlighted in yellow, and optionally copied to Find Results.
Clear Finds
All except Find Results
Removes highlighting of previous finds.
Clear Window
All
The contents of the underlying window are cleared. Normally the window will fill up with new data until it reaches a limit and the oldest lines disappear from the top.
Copy all to clipboard
All
Copies all the text in the window under the mouse to the clipboard.

The following additional right-click popup commands are available on the Script Window only.

Additional Script Window right-click menu commands
Right-click menu item
Windows
Description
Scripting OFF [Tickbox group]
Script
Click to stop the script being executed - all script functions are disabled
Scripting ON
Script
Click to start the script; each IRC message is processed according to the script and any resulting commands are sent either to the channel or server where the message originated, or to the network and channel specified by the OUTPUT statement, and timers may be started.
Script output as set by script [Tickbox group]
Script
Script output goes to the channel that triggered a response, or to the channel defined by the script OUTPUT command
Script output forced to Script Log (debug mode)
Script
Script output commands are displayed on the Script log window for debugging
Scripting local input is set by script [Tickbox group]
Script
Responses to text entered locally are set by the INPUT script command
Scripting local input forced OFF
Script
Responses to text entered locally are disabled, overriding the INPUT command
Scripting local input forced ON
Script
Responses to text entered locally are enabled, overriding the INPUT command

The following right-click popups are available on Channel and Server Status windows, which are normally associated with a specific network connection, have a text-entry edit box, and may be grouped with other windows (e.g. channel windows which have 3 grouped text windows and an edit box).

Channel, Server Status
Right-click menu item
Windows
Description
Find...
All
Opens the find dialog to search for matching text. Matched lines are highlighted in yellow, and optionally copied to Find Results.
Clear Finds
All
Removes highlighting of previous finds.
Clear Window
All except nick lists and info/topic windows
The contents of the underlying window are cleared.
Server:
All
Shows the server connection that the window relates to, or "Unconnected" if closed
View SSL/TLS certificate... [if connected via SSL/TLS]
All
Opens the SSL/TLS certificate dialog to show the details of the server's certificate
Join Channel...
All (if connected)
Opens the "Join IRC channel" dialog
Join Channel set...
All (if connected)
Opens the "Join IRC channel sets" dialog
Channel listing...
All (if connected)
Opens the Channel Listing dialog
User-defined server popup items, e.g. Quit >
All
Added from the profile default server popups - provides custom quit message options
Chan:
Channel
Shows the channel name associated with the window
"Logging (now ON)" or "Logging (now OFF)"
Channel (not nick or info)
Enables or disables logging to a text file in the \logs folder of your profile. A "YES/NO" confirmation dialog box will appear. Windows are logged to a file named after the channel window title, in the logs directory set up in the main menu / App Settings / General tab.
Remember Current Position
Channel
Saves the window position and size in the app profile
Re-save Current Position
Channel
Updates the window position and size in the app profile to current values
Forget Position
Channel
Removes the stored window position and size from the app profile
Bookmark to channel list
Channel
Opens a dialog to save the channel in the profile channel list, with an optional description
User-defined channel popup items, e.g. Channel Modes >
Channel
Added from the profile default channel popups - provides commands to set common channel modes
Word: or Nick:
All
Shows the word or nickname under the mouse click position
Copy word to clipboard
All
Copies the word under the mouse click position
Copy nick to clipboard
All
As for "Copy word to clipboard", but the word under the mouse has been identified as a nickname
Word to touch-tone code
Channel
Converts the word or nick into its touch-tone pad numeric equivalent and pastes it into the channel edit box. See /TTONE in Reference: IRC Client Side Commands
DCC Chat
Channel
Opens a Start DCC Chat dialog to initiate DCC chat with the nick, if the word under the mouse has been identified as a nickname
DCC Send
Channel
Opens a Start DCC Send dialog to initiate a DCC file send with the nick, if the word under the mouse has been identified as a nickname
Browse in new window
All
If the word under the mouse appears to be a valid URL, opens it in a browser. This is not available for nicks.
User-defined nick popup items, e.g. Whois
Channel
Added from the profile default nick popups if the word under the mouse has been identified as a nickname - provides commands addressed to nicks, e.g. Whois, Op controls, CTCP commands
Dock
All
Docks the window in the main window's tab control
Copy all to clipboard
All
Copies all the text in the window under the mouse to the clipboard.

The following right-click popups are available on "private windows", which are windows that are used for a person to person chat, and have a text-entry edit box. Private IRC windows host users from a specific IRC network. Private DCC windows link two users without involving any IRC servers.

Private IRC, Private DCC
Right-click menu item
Windows
Description
Find...
All
Opens the find dialog to search for matching text. Matched lines are highlighted in yellow, and optionally copied to Find Results.
Clear Finds
All
Removes highlighting of previous finds.
Clear Window
All except nick lists and info/topic windows
The contents of the underlying window are cleared.
Server:
All except private DCC windows
Shows the server connection that the window relates to, or "Unconnected" if closed
View SSL/TLS certificate... [if connected via SSL/TLS]
All except private DCC windows
Opens the SSL/TLS certificate dialog to show the details of the server's certificate
Join Channel...
All (if connected) except private DCC windows
Opens the "Join IRC channel" dialog
Join Channel set...
All (if connected) except private DCC windows
Opens the "Join IRC channel sets" dialog
Channel listing...
All (if connected) except private DCC windows
Opens the Channel Listing dialog
User-defined server popup items, e.g. Quit >
All except private DCC windows
Added from the profile default server popups - provides custom quit message options
Chan:
Channel
Shows the channel name associated with the window
"Logging (now ON)" or "Logging (now OFF)"
Private (not nick or info)
Enables or disables logging to a text file in the \logs folder of your profile. A "YES/NO" confirmation dialog box will appear. Windows are logged to a file named after the channel window title, in the logs directory set up in the main menu / App Settings / General tab.
Word: or Nick:
All
Shows the word or nickname under the mouse click position
Copy word to clipboard
All
Copies the word under the mouse click position
Copy nick to clipboard
All
As for "Copy word to clipboard", but the word under the mouse has been identified as a nickname
Browse in new window
All
If the word under the mouse appears to be a valid URL, opens it in a browser. This is not available for nicks.
Dock
All
Docks the Channel, Server Status, or Private window in the main window's tab control
Copy all to clipboard
All
Copies all the text in the window under the mouse to the clipboard.

The following right-click popups are available on the main window tab control tabs.

Tab control tabs
Right-click menu item
Windows
Description
Move left
Tab control tabs
Moves the tab left, exchanging positions with the previous tab, if possible.
Move right
Tab control tabs
Moves the tab right, exchanging positions with the previous tab, if possible.
Move to next horizontal/vertical group
Tab control tabs
Moves the tab to the next horizontal or vertical group, creating one if necessary.
Move to previous horizontal/vertical group
Tab control tabs
Moves the tab to the previous horizontal or vertical group.
Move to first horizontal/vertical group
Tab control tabs
Moves the tab to the first horizontal or vertical group (shown if there are more than two groups).
Change to vertical/horizontal arrangement
Tab control tabs
Changes the tab groups to a vertical or horizontal arrangement (separated by vertical or horizontal dividers).

The File/Edit File and Edit/Popups, Aliases and Ignores dialogs, and text entry boxes also have right-click popup menus, but these are simply the standard Windows edit box menu.

Summary Tables

File menu (Link) Submenu item
Open Script File
Open Debug File
Edit File
Import setup file
Exit
Edit menu (Link) Submenu item
Edit Popups, Aliases, Ignores
Redraw! menu (Link) (no submenu items)
Tools menu (Link) Submenu item
Finger Client
IRC Connect
IRC Status & Channel Listing
DCC Status
Abort Finger Client!
Abort Finger Server!
Abort Ident Server!
Ident Client
Debug
Setup menu (Link) Submenu item
Font
App Settings
IRC Servers Configuration
IRC Channels Configuration
IRC Channel Set Configuration
IRC Access Levels
Ident Server Settings
DCC
Cuss Filter
Colours (mIRC/pIRCh/cIRCus)
Colours (Ircle)
Colours (ANSI)
Colours (Events)
Text Snippets Library Editor
Open the app's data location
Window menu (Link) Submenu item
Bring All to Foreground!
Select/Restore
Help menu (Link) Submenu item
Help file
About

Open Script File

This is a file that specifies responses to incoming messages that are triggered when certain key conditions are matched. It is opened into the Script tab of the main app window.

Open Debug File

Open a debug file. This is a file that can simulate messages from an IRC server or demonstrate display capabilities of the program. It is opened into a simple display window, which interprets colour and attribute codes in the same way as server and channel windows. It has no menu, toolbar or status bar, but a right-click menu is available with Find, Clear Finds, Clear Window and Copy All to Clipboard commands.

Edit File

image

Open a file for editing. This is a simple text file editor, convenient for making changes to small files such as script files. After you have opened a file you can edit it in the Editor dialog. Click Undo to undo an action, click Cancel to exit without saving, or click Save As to save the file (changing the file name if you want to create a new version without overwriting the old one) and exit. The right click menu is the standard Windows edit box menu.

Import setup File

Opens the Import Setup dialog, which allows information in legacy setup files to be read in and added to your current setup file. I would recommend comparing your current setup.ini and networks.ini files with the legacy setup.ini file using a tool such as Winmerge or another Diff tool first.

First select a file to import, using the Browse button to browse for a file, or you can copy a file path directly into the edit box. This may be an old version of your setup.ini file saved as backup, or saved from an old version of the software. Legacy versions of setup.ini contain network and server data as well, but the imported data is saved to the app's normal setup.ini (app settings) and networks.ini files (network, servers, channels and channel sets data). The Import Setup dialog won't read a networks.ini file as it is designed for importing from legacy files only (as saved by WinShoe versions before 2.0, including unreleased development versions).

As users may only want to import certain types of data, there are a series of checkboxes to specify what to import.

App Settings

The "Import Winshoe App settings" checkbox will import general settings (except for obsolete settings) and overwrite any matching settings, leaving other settings in the current setup.ini file unchanged.

IRC Servers and Channels

"Import servers" will import IRC server definitions.
"Import channels" will import IRC channel definitions.
"Import channel sets" will import IRC channel set definitions. Normally this is not required, as no publicly released version of the application saved channel sets in setup.ini.
"Import additional network descriptions even if not in server or channel data". Normally this is not required, as no publicly released version of the application saved additional network descriptions in setup.ini.

The IRC Servers and Channels settings have radiobuttons to select whether the existing data will be overwritten (replacing the existing settings entirely), or added (appending the imported data and retaining the original data).

Popups, Aliases and Ignores

"Import Popups": Imports definitions for the extensions to right-click menus for application windows.
"Import Aliases": Imports alias commands, which enable you to type abbreviated versions of more long-winded built-in IRC commands.
"Import Ignores": Imports the list of nicknames whose messages are to be suppressed from display.

The Popups, Aliases and Ignores settings will overwrite existing data. As there may be considerable overlap between imported data and existing, it is considered unwise to automatically append this data. if you want to add items selectively from an old setup.ini file it is recommended that you open up the Edit/Edit Popups, Aliases, Ignores dialog, and separately open up the old setup.ini file in a text editor, and search for the items that you need that are not already in the existing data, then copy and paste the relevant lines into the dialog.

Import Colour Sets

"Import Colour sets" checkbox: Imports definitions of colours assigned to colour codes and events. Normally this is not required, as no publicly released version of the application saved colour sets.

When you click OK, the legacy setup file is imported and saved to setup.ini and networks.ini in your application profile. Copies of the previous versions will be saved as setup.ini.bak and networks.ini.bak to enable roll-back in case of problems with the imported data.

Exit

Exit the program. If any IRC connections are made, quit messages will be sent using the default quit message (see Main menu - Setup / App Settings / General tab. There is usually a short delay while Winshoe attempts to gracefully close any outstanding network sockets and save setup information including the sizing and tab settings of the main window.

Edit Popups, Aliases, Ignores

image

This will bring up a dialog that allows you to edit your custom popup menu items and command aliases. These are automatically saved when you click on OK.

The illustration shows the Nick popup list loaded into the edit box. You can click on one of the other radio buttons to edit the other lists. Popups are extensions to right-click menus for application windows.
Aliases are pseudo-commands, which are intended to provide abbreviated versions of more long-winded built-in IRC commands when you type into an edit box belonging to a channel or server status window.
Ignores is a list of nicknames whose messages are to be suppressed from display.
If you edit one of the lists, you will be asked if you want to save the contents when you switch to another list.

Popup menu items and aliases are formatted using a similar alias and popup menu syntax to that used by other IRC programs, so that users can easily transfer their favourite settings between programs. For further information, see Aliases and Popup Menu Custom Commands

Popup lists:
  • Nick: These are the popup menu items that appear when you right-click on a nick in a nick window or a channel text window.
  • Channel: These are the popup menu items that appear when you right-click on any text panel of a channel window.
  • Server: These are the popup menu items that appear when you right-click on any text panel of a server window or channel window.

The popup lists may be combined according to the context. For example, if you right click on a nick in a channel window, all three lists will apply, as a channel always belongs to a specific server.

Other Lists:
  • Aliases: These items are for translation of command aliases, which allow you to use shortened versions of commands, or even a pre-formatted line of text including colour codes with certain optional parameters.
  • Ignores: Messages (including PRIVMSG, NOTICE, and INVITE messages) from nicks on the ignore list will not be displayed. You can add nicks to this list either by editing the list or entering the /IGNORE <nick> command.

Please note that there is currently a limit of 128 for the number of entries allowed in a server list, channel list, server popup, channel popup, nick popup, alias list, or ignore list.

This causes the program to redraw all its windows. Use this if a window appears garbled- this can occur if a window has not been updated automatically. Since redrawing and receiving network messages both access the program's memory, it is necessary to lock out access to the memory while storing new data (otherwise memory can become corrupted). Occasionally this can result in a display not being updated properly; use the Redraw! command to correct this.

This menu command does the same as the Redraw button in the main window toolbar

Finger Client

image

Opens the dialog box for the Finger Client.

The Finger Client sends "finger" queries to remote Finger Servers, and displays results received on the Find Results window.

If allowed by the remote administrator, a Finger server will provide a list of online users and possibly optional information such as terminal location, office location, office phone number, job name, or terminal idle time. For security reasons, the finger service or some of this information is often unavailable.

For further information, see Finger Client.

IRC Connect

Opens the dialog box for the IRC client to select a network and then select a server and start the connection process, using either SSL/TLS or non-SSL/TLS connections. See also To connect to an IRC server in the "Getting Started" section.

This menu command does the same as the Connect button in the main window toolbar

The first two items from the top in this dialog are a checkbox titled "Show only favourites (checked rows)", and then a list of IRC networks. Each row has a checkbox - if you check this, you are tagging the network as a favourite, so when the "Show only favourites..." checkbox is checked, only the rows tagged as favourites are shown. This makes it much easier to select from the networks that you actually use (Winshoe comes with a long list of predefined networks). When you click Close, the checkbox settings are saved.

Right-clicking on a network list row gives you several options. As the "Connect" dialog is a restricted version of the Setup/IRC Servers Configuration dialog, Edit and Delete are disabled, but you can connect to the default server (first one in the server list) using a conventional non-SSL connection, or using a more secure method using SSL/TLS, if the related ports "Port" or "SSL Port" are defined in the server list and the network supports the method. A left click on a network list row selects it and shows its servers on the server list. The network list also shows the number of servers for each network, and an additional description for the network, that you can add or edit using the Setup/IRC Servers Configuration dialog.

The "Add a new network" is disabled - use the Setup/IRC Servers Configuration dialog for this.

The second list is a list of servers on the network that is selected in the network list. The first one in the list is the default server - usually you would enter the generic server URL that the network makes available. This is meant to connect you to the optimum server for your location. Some networks don't have a generic URL, but instead you can pick the one that appears to work best for the first in the list when you add or edit servers in the Setup/IRC Servers Configuration dialog (the best is often the geographically closest, but that also depends on their server resources and internet connection).

Any server in the list can be selected by left clicking the row. A double left click will connect using the non-SSL port. A right click will show a popup menu with commands available to connect using either non-SSL or SSL/TLS ports. The selected row can also be connected to by clicking the "Connect to non-SSL/TLS port" or "Connect to SSL/TLS port" buttons below the list.

There are some user settings that are used when you connect to a server, such as the nicknames to be used for connecting, and these are shown in the bottom left box to remind you (these are configured on the Setup / IRC Settings, Identification tab).

The "Add a new Server" button is disabled here, but is available on the Setup/IRC Servers Configuration dialog.

At bottom right is an abbreviated version of the Tools/IRC status dialog - this is a list of all IRC connections, showing the server connected to, and the connection status. A status of "Registered" is achieved when you have successfully connected to the server and negotiated login. Connections go through a sequence of states as described under Connection State, but some of them might pass too quickly to see on the status list.

While the program is connecting, you can monitor progress by watching the connection status list, or opening the more detailed "Tools/IRC Status" dialog. The IRC Connect dialog stays open while connecting, so you can connect to another network straight away or click the Close button to dismiss the dialog. The IRC Connect dialog is resizeable, if you want to see more details at once in the lists.

Login-on-connect

Under the servers list you will see a "Login-on-connect" checkbox. Login-on-connect is a special procedure for connecting to a few networks, which is currently subject to change and not consistently implemented across networks - normally you don't need this so leave it unchecked. If you do use it, when you connect, Winshoe first displays a dialog titled "Login-on-connect details".

The Login-on-connect dialog has text entry boxes for an account name and a password. For servers that expect a password only, according to RFC2812, you can enter the password here with the default first radio button "Use a normal connection password..." selected (no account name is required, so the edit box is disabled). Login-on-connect with additional options is achieved by packing the extra items in where the password is normally submitted. This is done automatically via the Login-on-connect dialog. If you need a format that is not included as a radio button option, you can add the details in to the password field, using the RFC2812 format.

Other Login-on-connect modes are available when you select one of the other radio buttons, and these are typically associated with a particular network:

Undernet - 'x' and '!' modes:

Radio button: -x+! Connect without usermode +x but not if login server is unavailable

Radio button: -x Connect without usermode +x including when login server is unavailable (same as: -x-!)

Radio button: +x! Connect with usermode +x but not if login server is unavailable

Radio button: +x Connect with usermode +x including when login server is unavailable (same as: +x-!)

Examples:

Connect without usermode +x but not if login server is unavailable: -x+! myUser myPassword

Connect without usermode +x including when login server is unavailable -x myUser myPassword
NOTE: Same result as: -x-! myUser myPassword

Connect with usermode +x but not if login server is unavailable: +x! myUser myPassword

Connect with usermode +x including when login server is unavailable: +x myUser myPassword
NOTE: Same result as: +x-! myUser myPassword

Reference:
https://groups.google.com/forum/#!topic/kiwiirc/yvBbMqMjlNg

Darenet - account + password with a '!' option:

Radio button: "account password"

Radio button: "!account password"

Examples:

account:password or !account:password <-- Note no delimiter after '!'

You can force the server to disconnect you if login-on-connect fails for any reason by prefixing your username with an exclamation mark. The account and password may be separated by a colon or space; Winshoe uses a space.

Reference:
https://www.darenet.org/help/guides/login-on-connect

AfterNET - "/username/password" format:

A '/' specifies the login format /username/password

Radio button: "/username/password" format (e.g. AfterNET)

Reference:
https://www.afternet.org/help/connecting/login-on-connect

IRC Status & Channel Listing

Opens the IRC Status dialog, which shows details of each IRC connection and the connection status. This shows the following attributes in each column:

  • IRC Conn. No.: The connection number, shown in window titles to cross-reference them, and in scripts to identify a connection.
  • Nick: The nick you are using on the network.
  • User: The user name set in Setup/App Settings/Identification and used at login in the USER command.
  • Real name: The "real name" set in Setup/App Settings/Identification and used at login in the USER command.
  • Network: The IRC network connected to.
  • Server: The IRC server connected to on the network.
  • Description: The IRC server description saved in your server list.
  • Port: The port number used to connect to, which together with the server IP identifies the connection end point.
  • Status: The connection state, as described in Connection State
  • Idle: The time in seconds since the last data was received from the connection (see Setup/App Settings/Time settings)

The right click popup menu for the IRC Status list includes:

  • Network information for <network> - Opens the Network information dialog. This is also available on the connection status list in the Tools/IRC Connect and Setup/IRC Servers Configuration dialogs.
  • View SSL/TLS certificate... - Opens the SSL/TLS certificate viewing dialog
  • Channel listing for <network> - Opens the Channel Listing dialog for the selected network
  • Join IRC Channel... - Opens the Join IRC Channel dialog to select a channel to join from your profile channel list.
  • Quit - Sends a /QUIT command to leave the selected network.
  • Abort - Use this as a last resort to force the connection to be shut down, if the IRC connection becomes unresponsive.

There is also a button labelled "Channel list for selected connection" which opens the channel listing dialog for the selected row, and a "Close" button to close this dialog.

Network Information
image

The Network Information dialog shows the same information as columns in the IRC Status list, plus "Host Name", but excluding connection number, status and idle time. It is more useful when called from the smaller status lists in the Tools/IRC Connect and Setup/IRC Servers Configuration dialogs as they have fewer columns.

Channel Listing

The Channel Listing dialog is opened from the IRC Status & Channel Listing dialog, after selecting a network to list channels on. This dialog allows you to set up optional listing options for the channel list command (/LIST) and update the list (sending the appropriate /LIST command and parameters to the server).

If you are connected to more than one network, you can select any network to generate a channel list by selecting the appropriate row in the IRC Status & Channel Listing dialog.

A channel list will be requested from the server when you click the "Update list" button. You can select an option by clicking on the adjacent checkbox to enable it.

The channel list in this dialog is not the same as the channel list saved in your setup profile, but is a live update of channels that are on the server. You can add channels to your profile channel list from this list using the right click bookmark command.

Not all servers support the list options. The number of users and time options may be combined, but usually the match text option must be used on its own.

Based on the replies from the server, a list is compiled showing each channel name, number of visible users, and channel topic. You can save the list to a file by clicking the "Save list to file" button. Support for each of the listing options depends on what is supported by the network/server. The list is also updated automatically if you enter the /LIST command manually. It shows the contents of a list compiled from the server replies to the /LIST command.

You can sort by channel name, number of users, or channel topic by clicking on the column header.

Channel list right-click popup
image

A right click on the channel list will bring up a popup menu with various commands. You can use this to join or part from a channel, list the channel users on the server status window (this will send a /NAMES command), save the list (same as the "Save list to file" button) or bookmark the channel to your profile channel list.

DCC Status

Opens the DCC Status dialog, which shows details of each DCC connection and the connection status. There is a list for server connections (made when you initiate a DCC connection or send a file), and client connections (made when you answer a request for a DCC connection, or accept a file download).

The DCC Status dialog shows two lists, the top list is for DCC server connections, while the bottom list is for DCC client connections.

When the connection is a DCC SEND, the user running the server is sending the file and will have an entry in the top list, and the user running the client is receiving the file, and will have an entry in the bottom list. DCC SEND entries should persist only as long as the file transfer.

For DCC chat, no files are being sent, but the user running the server initiated the chat, and the user running the client accepted it. The Type column will show CHAT for DCC chat, and SEND for DCC file sending. The SSL/TLS column shows Yes if you started the connection with SSL/TLS enabled (equivalent to using the DCC SCHAT or SSEND verbs). This is known as Secure DCC (SDCC).

The example shows a DCC chat set up with a local test connection, where the same user has initiated and accepted the DCC chat - otherwise, the local and remote nick would normally be different. Note that this test won't work with SDCC as the SSL layer won't connect if both ends are the same host.

The right click popup menu for DCC Status includes one command - Abort. Use this as a last resort to force the connection to be shut down, if the DCC connection becomes unresponsive.

Abort Finger Client

Forces a finger client to be shut down, should one enter an unresponsive state. Normally a finger client should run for no more than a few seconds and quickly revert to "unconnected" state, in which case "Conn State: An active Finger client could not be found to abort" will be displayed on the Status window.

Abort Finger Server

Forces the Finger server to be shut down, should it enter an unresponsive state. You can restart it by disabling the Finger server in Setup / App Settings / General tab, "Enable Finger" checkbox, and closing the dialog, then open the dialog again, and re-enable the checkbox. The Finger server will also restart, if enabled, if you close and restart Winshoe.

Abort Ident Server

Forces the Ident server to be shut down, should it enter an unresponsive state. You can restart it by disabling the Ident server in Setup / App Settings / General tab, "Enable Ident" checkbox, and closing the dialog, then open the dialog again, and re-enable the checkbox. The Ident server will also restart, if enabled, if you close and restart Winshoe.

Ident Client

image

This initiates an Ident query (normally this is done by a network server to get Ident information from your client), and by using localhost as the host name, you can use it to test your Ident server.

The Ident server is provided only to satisfy IRC servers, so the scope of the reply generated is limited to what should be interpreted as a valid reply. An Ident server always listens for TCP connections on TCP port 113 (decimal). The "Ports to Query" represent the ports that the simulated remote Ident client is asking about. Which ports these are is normally up to the IRC server and may vary. Using the supplied defaults should therefore be sufficient. If you click OK, then the Ident client will send a query to your server on the local host at port 113, i.e.:

"51377, 6667"

The Ident server will then reply:

"51377, 6667 : USERID : UNIX : Winshoe"

In this reply, the "USERID" represents a nominal user for the remote client. The Ident server helps to speed up logins, but many IRC users are likely to have port 113 blocked by a firewall in their router, which is not always accessible, and may also need a port forwarding setup. In any case many users prefer to avoid opening ports on the router firewall for security reasons, in case of malware making port 113 available, so you may as well be prepared to put up with a login delay. Nevertheless the Ident server is there if you do want to use it and can be tested with this Ident client.


Debug

Opens the dialog box for the IRC debugger.

This enables you to open a debug file (which may be based on raw IRC messages as received from a server, or edited to present test cases for testing how the application parses IRC messages). The file can then be single stepped ("Step" button) or processed in its entirity ("Go" button). Open the file using the "Open file" button at the top, which opens a system file browsing dialog. The contents of the file are then shown in the first edit box. After you have single stepped the first line, the next line in the file to be analysed is shown in the next edit box.

When single stepped, analysis of each message is shown in the Results window. Results from parsing can be parsed and acted on just as if they were received from an actual IRC server, e.g. resulting in the opening of server status and channel windows, depending on whether the relevant IRC commands are included in the file. The Results window shows:

  • The complete file line
  • Prefix
  • Name (servername or nickname)
  • User
  • Host
  • Command (e.g. PRIVMSG, or the numeric value)
  • Numeric Reply: (0 if not numeric, 1 if numeric)
  • params
  • First param
  • Second param

IRC messages are parsed into the components <prefix>, <command> and a list of parameters (<params>), as described in RFC2812. The prefix will be further broken down into a name, user and host, if possible, as described in RFC2812.

servername / ( nickname [ [ "!" user ] "@" host ] )

Beyond this point, the parameters will be broken down for further analysis depending on the type of command, but this further analysis is too complex to show in the debug dialog.

Font dialog

The Font dialog box lets you choose attributes for the main font used for text on all text display windows, such as font family and point size. The appearance of the selected font is previewed under "Sample".

While it is possible to select italic or bold fonts, it is recommended not to do this, because it prevents similar IRC text attributes from showing up properly. A good font to use is Consolas Regular, an improvement on older monospace fonts like Courier, with proportions closer to normal text and allowing more comfortable reading.

This font is used for text on all text display windows.

You can now use proportional fonts and retain correct spacing of tabulated data, as long as the server or users make proper use of the monospace text attribute, but the monospace attribute should make no difference to column alignment if you are already using a monospaced font.

App Settings

Opens a tabbed dialog titled "Settings", with the following tabs:

  • Identification
  • General
  • SSL/TLS
  • Tab Stops
  • Window text
  • Flood
  • Logging
  • Time
Identification

This dialog sets your user identification details comprising host name, user id, nick and real name. There are also entries for an alternative nick to be used if your primary nickname is already in use. If your alternative nick is also in use, the alternative nick prefix is used to generate a nickname, which will have a serial number appended to it.

When the IRC client connects you to a server, it automatically sends the USER command, which specifies the "username", "hostname" and "realname" of a new user. It also sets your nickname using the NICK command. These parameters are set up in the relevant edit boxes of the Identification dialog.

Your identity on IRC is expressed in terms of your nick, user ID, and hostname. When messages are sent to you or received from others the user is identified in the message in the form <nick>!<userid>@<host>, although this is usually stripped from messages before they are displayed in a channel.

For example:

manfred!eswl@pa158.kielce.sdi.tpnet.pl

Here,

<nick> = manfred
<userid> = eswl
<host> = pa158.kielce.sdi.tpnet.pl

Sometimes the same information is given without the '!' and '@' separators, e.g. in a WHOIS reply:

manfred eswl pa158.kielce.sdi.tpnet.pl

Host

Buttons "Get Host Name" and "Get Local Host IP" set the Host to the name of your local host, or its Internet Protocol address number which is a set of numbers separated by dots. Alternatively, you can change the Host entry to anything you like. Your local host name identifies your computer, and it may be a single word, or a domain name equivalent to your IP address number.

"Get Local Host IP" opens a dialog as shown which lists the adapter IPs available on your machine. In the example shown, there are IPv4 and IPv6 IPs listed for the computer's network adapter, plus two more which belong to a virtual machine. However, you would normally only use the local host IP for testing with a IRC server also running on your local host. For normal use with an external IRC server, you need the external host IP.

"Get External Host IP (v4)" or "Get External Host IP (v6)" fills in the Host box with the IP of your system as seen by the remote IRC server, for IPv4 and IPv6 respectively. This works by sending a query to an OpenDNS server using the Windows command-line nslookup command. If this fails, you may see one the the following errors displayed in a message box:

  • Failed to allocate memory in GetExternalHost() - Your system is short of memory (should not normally happen!)
  • Failed to execute nslookup in CMD in GetExternalHost() - Something went wrong with the Windows command line parser or the nslookup command
  • DNS request timed out while requesting external host IP in GetExternalHost() - The DNS server failed to respond - usually because you lost internet connectivity
  • Could not get external host IP (no response from your server via myip.opendns.com) - The DNS server could not find your host - most likely on IPv6 if your ISP does not support it, or if somehow you are firewalled from the remote DNS server.
  • Could not get external host IP (IP address not found in OpenDNS response) - The remote DNS server could not find an IP address to list in its reply.

The remote IRC server may obtain your host name by looking it up, rather than using the host name that you fill in. The IRC server may check your host name entry though and you may have to use your proper host name anyway. It all depends on how the particular IRC server is configured to authenticate logins.

Internet Service Providers (ISPs) usually assign a different (dynamic) IP address every time you connect. You may need to update the host entry if this is the case. If you find you can connect to your IRC server without doing this, there is no point in updating the host entry.

Some ISPs offer you a unique IP Address (static IP); this also is often the case for computers connected to a local area network, where each PC may be assigned a unique IP address by the network IT staff.

The Host setting is stored in your setup .ini file until you choose to change it. Note that, if you move your setup .ini file between computers, a Host Name or IP setting may become incorrect, then you may need to update it.

The host name, user and nickname settings are used when you launch the IRC Connect dialog.

User

On Unix systems, this is normally a login name. On a Windows/PC system, you can choose your User ID. If you click the button labelled "Use Ident user ID", the user ID will be set to match the one currently set in Setup/Ident Server Settings, and there is a similar button in the Ident Server dialog that works the other way round. Some IRC servers may require this to be set to the user name that you use with your ISP. For example, if you log in to your ISP as "bloggs", set this to "bloggs" and set the Ident Server user ID to the same.

User names must be between 1 and 63 characters long. Space and '@' characters are not allowed in user names.

Nick

Your nick name is the name by which you are primarily identified in channels and addressed by other users. You can choose anything you like, composed of letters, numbers, and some special characters such as ^, -, _, `, \, [, ], {, }. Some networks have a system for registration of nicknames and won't let you use one that is already registered, and you can't use a nickname if that nick is already on the network- each user must have their own unique nickname.

In particular, spaces, '@' and round brackets are not allowed in nicknames.

Nickname entries can take up to 40 characters, but servers adhering to RFC 1459 (1993) limit nicks to 9 characters. RFC 2812 (2000) recommended that "clients SHOULD accept longer strings as they may become used in future evolutions of the protocol", and some networks do allow nicknames of 15 characters or more.

The Random button can be used to generate a random nick (see also the /RNICK client command).

On initial installation, the nick setting is set to a randomly generated nick within the RFC 1459 limit of 9 characters.

Alternative Nick if Nick exists at login

This nick will automatically be tried if your main choice of nick fails. You should choose something that isn't likely to already exist or be registered, such as a random combination.

On initial installation, the alternative nick setting is set to a randomly generated nick within the RFC 1459 limit of 9 characters.

Alternative Nick Prefix for additional connections

If you have made 2 connections to the same network, it is assumed that your primary and alternative nick are in use. This is a prefix, so that for further connections a serial number starting at 00 will be appended to the prefix for the nick. This will be subject to a maximum number of IRC connections allowed of 20 connections.

On initial installation, the alternative nick prefix is set to a randomly generated nick, limited to 7 characters to ensure the composite result with 2 digits is within the RFC 1459 limit.

If your nick is still rejected, you may have a chance to try another nick, but you have to enter it manually using the /NICK command, and this has to be done quickly.

Real Name

More often than not, this isn't set to anybodys real name (isn't it ironic?).

You can put in a witty comment, an email address, a web page address, or even your real name if you aren't worried about disclosing your identity. Don't assume that filling in fake information will conceal your identity.

If you want to look up someone's "realname", you can use the /WHOIS command.

General

This dialog, selected by the General tab from the Main Menu / Setup / App Settings tabbed dialog, allows you to adjust various settings for files, default messages, options and displayable colour modes.

Quit Message:

This is the default quit message that is sent if you quit from an IRC server connection without specifying a quit message explicitly, e.g. closing the program, or issuing a plain "/quit" command.

Part Message:

This is the default quit message that is sent if you part from an IRC channel without specifying a part message explicitly, e.g. closing the channel window, or issuing a plain "/part <channel>" command.

Initial Script:

This is a script file that is pre-loaded when you start the program (it is not activated until you change the mode by right-clicking on the Script window and selecting "Scripting ON" or "Debug mode").

Scripts Directory:

This is the directory normally used to store the script files, which will be used as a starting point when you use File/Open Script File.

Logs Directory:

This is the directory used to store log files.

Debug Directory:

This is the directory normally used to store debug files, which will be used as a starting point when you use File/Open Debug File.

Portable mode status:

This displays "Portable mode is OFF" or "Portable mode is ON".

If there is a Portable.ini file in your installation directory (where the Winshoe app executable is located), it sets the portable mode. This file should contain this setting:

[Portable]
Portable=0

Setting Portable=0 is equivalent to portable mode OFF, and Portable=1 is equivalent to portable mode ON. If the file is not present, or does not contain the specified setting, portable mode defaults to TRUE. Installation to Windows normally generates a Portable.ini file with the setting Portable=0.

Open app data location button:

Clicking this button will open Windows Explorer at your %APPDATA% location. This lies under your user home directory, following the path .\AppData\Roaming\CJSSoft\Winshoe. This is where your setup data files are located for an installed application. It also contains subdirectories for TLS certificates, debug files, DCC uploads and downloads, logs, and scripts. The %APPDATA% location is at a lower level than the Windows %userprofile% folder and is more convenient as it is a more direct path to the application data.

If you are running in portable mode, the app data location is the folder where Winshoe is installed. However, Finger files such as plan.ini remain in the %APPDATA% location as these are considered computer user data, not application data.

Entering %APPDATA% in Windows Explorer should take you to a folder under the "Users" folder, typically \<Username on your computer>\AppData\Roaming, which is considered the user equivalent of the user home folder ~user on Unix-like systems. This is where Winshoe expects to find files like .forward, .nofinger, .pgpkey, .plan and .project.

Show quits in channel:

Check this option checkbox if you want users' quit reports to be displayed in channel windows.

Show parts in channel:

Check this option checkbox if you want users' part reports to be displayed in channel windows.

Show joins in channel:

Check this option checkbox if you want users' join reports to be displayed in channel windows.

Enable Nick Lists:

Uncheck this option checkbox if you don't want nick lists to be updated and displayed. Any nicks joining or leaving the channel will not be recorded while this is unchecked, so if you re-enable it, to get an up to date nick list, you should part from and re-join the channel.

Nick Lists on left:

When checked, this option places the nick lists on the left of channel windows. When unchecked, this option places the nick lists on the right of channel windows.

Show ignores in status:

If this option is checked, status reports will be displayed on the server status window for each message that is ignored as a result of using the /IGNORE command and Ignore list. For example:

"{Ignored} <nick>!<user>@<host>"

Enable Ident Server:

Uncheck this option checkbox if you don't want the Ident Server enabled.

Enable Finger Server:

Uncheck this option checkbox if you don't want the Finger Server enabled.

Show timestamps:

Check this option to add timestamps to user messages in the channel windows.

Show mode letter info:

Check this option to show a description for each mode letter in a mode setting in the server status window.

Displayable colour codes

Under the label "Displayable colour codes", there are two radio buttons, one of which may be selected to choose the colour mode used for display on windows. Note that the Control-k colour codes dialog determines which codes are used for entry.

mIRC / pIRCh / cIRCus, ANSI, Hex:

Winshoe will detect and display the format of colour code originally used with mIRC, pIRCh, and cIRCus, as well as extended mIRC (Extended IRC color palette proposal version 0.1), ANSI and Hex colour codes. Ircle codes will not display properly in this mode. For most purposes, this mode should be used.

Ircle, ANSI, Hex:

Winshoe will detect and display the format of colour code originally used with Ircle, as well as ANSI and Hex colour codes. mIRC, pIRCh, and cIRCus codes will not display properly in this mode.

The types of colour codes available include both codes of historical interest that were incorporated when they were in use, and proposals for future extensions - see table below:

Origin of supported colour modes
Client/Code
Description
mIRC
The mIRC colour codes date back to around 1996 and remain in widespread use. There is a palette of 16 colours with foreground and background selectable independently.
Extended mIRC
These codes follow the mIRC pattern and extend the available palette of colours. This was based on the (Extended IRC color palette proposal version 0.1) that came out of a discussion on the mIRC discussion forums in 2012.
pIRCh
Windows shareware, last release January 1, 2001 (superseded by Vortec IRC) by Northwest Computer Services
IRCle
MAC shareware, by Onno Tijdgat, discontinued in 2009
cIRCus
Graphical IRC client by Ivo van der Wijk and Mark de boer, for Linux with X. Current status unknown, support may have been discontinued.
ANSI
Supported by mIRC if option IRC/Messages/ANSI codes is checked (v6.3.5) (also supported by jIRC client by Jeremy Harmon)
ANSI Escape Code Support

IRC clients supporting ANSI formatting was, historically, due to clients outputting messages via terminals that supported ANSI escape codes. Many IRC clients today do not display through an interface that natively supports ANSI escape codes, and so must implement this behaviour themselves if they wish to support it.

Clients can support or not support ANSI escape codes as they like. However, they should implement this feature with the knowledge that a large number of IRC clients today, even those using a terminal interface, do not support displaying text formatted using ANSI escape codes.

"Modern IRC Client Protocol" https://modern.ircdocs.horse/formatting.html#ansi-escape-code-support
Hex
Supported by Visual IRC and possibly other clients
Hex Color
 ASCII 0x04 
Following this character [ASCII 0x04] are six hex digits representing the Red, Green and Blue values of the colour to display (e.g. FF0000 means bright red).

Keep the Forms of Color Codes section above in mind, as this method of formatting keeps these same rules – the exceptions being that <CODE> represents the hex color character (0x04) and <COLOR> represents a six-digit hex value as RRGGBB.

"Modern IRC Client Protocol" https://modern.ircdocs.horse/formatting.html

See Control Codes for more information on colour codes.

Host Setting

Under the label "Host Setting", there are three radio buttons to determine the way in which the host name is set when you launch the Tools/IRC Connect dialog.

Manual

If this radio button is selected, the host name is not changed automatically; it remains set to whatever was last entered manually or by using the "Get Host Name" and "Get Host IP" buttons in the Setup/App Settings/Identification Tab dialog.

Auto Get Host Name

If this radio button is selected, when you launch the Tools/IRC Connect dialog, the host name will be preset to the local host name that identifies your computer.

Auto Get Host IP

If this radio button is selected, when you launch the Tools/IRC Connect dialog, the host name will be set to the Internet Protocol address number for your computer. As modern PCs may have multiple adapters and host addresses, this may not result in the desired address, so a "Get Host IP" dialog must be shown to pick the IP. Normally you'll find it more convenient to use one of the other settings.

Open server status windows in tabs

When this is checked, server status windows are opened in tabs in the main app window, instead of in independent windows.

SSL/TLS

The dialog has 3 checkboxes for SSL/TLS modes, and 2 timeout settings.

Enable use of client certificate

When this is enabled, the Winshoe IRC client sends a client certificate to the server. These are the files client_cert.crt and client_cert.key that are installed in your %APPDATA% profile in the Certificates folder.

This will typically be in a location like:

C:\Users\<USERNAME>\AppData\Roaming\CJSSoft\Winshoe\Certificates

If the files are not present, a certificate is generated in software and sent. It is not normally necessary for clients to send certificates. Some IRC networks, e.g. ZEnet, OFTC, use client certificates to identify you to network services.

Verify peer certificate

When this is enabled, the server's certificate is verified and if it fails verification (common on IRC due to use of self-signed and expired certificates) the connection gets aborted immediately. Normally you should leave this option disabled, and then you will have a messagebox come up as shown below to ask if you want to continue. Don't take too long answering "Yes" if you want to continue, or you will get a "Registration timeout" (shown on the Server Status window).

Server failed certificate validation
Disable older less secure SSL/TLS protocols

If checked, this tells Winshoe to configure SSL/TLS for TLS versions 1.2 or higher only. Older versions are considered outdated and vulnerable, particularly for HTTP servers. All of the older SSL protocols have been deprecated for some time now, and browsers have started removing support for TLS versions 1.0 and 1.1 as of 2020. As far as IRC networks are concerned, the same security issues apply but as IRC servers are often not up to date with the latest SSL/TLS support, even individual servers in a network where other servers are more up to date, you may need to leave the older protocols enabled, try a different server to see if it is more up to date, or use a non-SSL/TLS connection if that is acceptable.

If you change this setting, in order for it to take effect you must close Winshoe and restart to update the SSL/TLS settings.

Use a software generated client certificate

When this is enabled, a default client certificate is generated in memory when the "Enable use of client certificate" option is enabled. This also happens if there are no client certificate files provided in the %APPDATA% Certificates folder.

The default Winshoe client and server certificate files and the software generated ones are self-signed. For software that verifies the files, e.g. a well-known remote IRC server, or the IRC server simulator IRCDSS which can also be downloaded from http://www.colinjs.com/software.htm (see IRCD Server/Simulator (IRCDSS)), the CA.pem block relating to the creation of the client and server certificates has been added to the cacert.pem file.

Normally this is only useful for intranet use when you are running your own server or testing on localhost. If you want to you can get your client certificates signed by a trusted authority and then remote servers should verify them, but for the purposes of IRC, when used for identification to network services, networks either don't need them, or have procedures to accept self-signed client certificates.

If you update cacert.pem, you can easily add in this block to your new file from the old one. Be sure that the final line, i.e. "-----END CERTIFICATE-----" is followed by a valid character, normally 0x0A (newline control character) as the absence of such a character has been known to cause parsing problems in the OpenSSL library. It is also recommended that the cacert.pem file should have UNIX (LF) line endings.

Clients, such as the Winshoe IRC client, should normally be verifying the server's certificate.

A default installation of Winshoe has a set of SSL/TLS certificates in the Certificates folder as follows:

File name
Description
cacert.pem
a list of trusted CA certificates used to validate SSL/TLS IRC server connections
client_cert.crt
Certificate - used for secure IRC and DCC clients
client_cert.key
Key file for above certificate
server_cert.crt
Certificate - used for secure DCC servers
server_cert.key
Key file for above certificate

To obtain an updated list of trusted CA certificates, see https://curl.haxx.se/docs/caextract.html

Timeout in seconds for client SSL/TLS negotiation

This setting is for Winshoe clients connecting to remote servers. When the software negotiates a connection using SSL/TLS methods, it usually takes a fraction of a second or sometimes a bit longer. To avoid hangups in the event of excessive networking lag, a default timeout of 10 seconds is set, adjustable with this control.

Timeout in seconds for server SSL/TLS negotiation

As above, but affecting remote clients connecting to Winshoe servers (e.g. when using secure DCC).

Tab Stops

This allows you to configure how tabbed text is laid out in text windows in response to the special character entered with the Tab key (value 9). These have a default Windows behaviour in edit boxes, but are mapped to tab stops in display text such as channel text. You can enter one or more numbers, separated by spaces or commas. If you enter 8, then each tab stop is set 8 characters to the right of the previous one. Note that this only affects how your client displays tabs. Other IRC users may be using different settings. There is a limit of 100 tab stops.

Entering more numbers allows you to modify the spacing of successive tab stops. For example, "8 6 4" should result in the first tab stop being 8 characters inset to the right, then the second tab stop being 6 characters to the right of the previous one, then the third tab stop will be 4 characters to the right of the previous one, and all subsequent tab stops will also be 4 characters to the right, taking the last specified number.

Window text settings
Maximum number of lines in window text

The number of lines in each text window is limited to prevent excessive CPU loading. The maximum number of lines can be changed from the default of 500, in the range 10 to 32767.

Maximum number of lines in nick lists

The number of lines in nick list windows is larger, to accommodate the more highly occupied channels found on some IRC networks, e.g. Abjects. This setting can also be changed from the default of 5000, in the range 10 to 32767.

Flood settings

A flood is when a large number of messages are received in a short time interval. This may happen when scripts go wrong and produce repetitive output, or users carry out malicious attempts to lock up your client, and so on. The flood protection mechanisms are designed to suppress too many repetitive messages to minimise interference with normal chat. One type of flood protection limits the number of incoming CTCP messages that are fully processed. The other limits how often your script can respond to messages, in case a script is poorly designed or suffers a feedback loop, or some anomalous text activity starts up in the channel, when a script might be triggered to produce excessive output.

The flood protection mechanism takes the average interval between messages over a number of samples. The bottom setting labelled "Use up to this number of time intervals to calculate average flood timing" specifies how many samples to use for averaging. This way, we can avoid triggering flood protection just by two messages coincidentally arriving, if this is not repeated.

For both CTCP replies and Script responses, you can specify the minimum time between replies or responses (or set it to 0 to disable flood protection). This time value is compared with the average timing of message samples to determine when to trigger the flood protection.

The default minimum time between script event responses is 250ms. Consider increasing this minimum time for complex scripts that run slower or generate a lot of output. The script MINTIME command can be used to overrule this setting.

For both CTCP replies and Script responses, you can also specify how long the flood protection lasts ("timeout delay"). After this time elapses, the flood protection is turned off.

"Reset to default" buttons are provided for all the settings to set them to the predetermined default settings.

When a flood is detected, a message such as the following is displayed on the relevant server status window (or if the connection was closed, it displays on the main Status window):

{Script response} Flood: (Nickname!Winshoe@192.168.1.64) [min. interval 250 ms, ave. interval 0.199 ms over 4 samples, timeout 10000 ms]

When the flood protection timout delay expires, the following message is displayed:

{Script response} Script flood protection turned off

Logging settings

These settings enable or disable logging of additional information to the Status window (this has nothing to do with logging of window text to files).

The status window will normally display certain information such as the status of the configuration files (whether the Portable.ini file is present and whether portable mode is on or off, and whether other setup files exist or are being initialised), the Winsock version in effect, the generic WinSock library version, and your Local Host Name and adapter addresses.

Connections to IRC servers are logged as they are made. Loading of SSL/TLS certificates from your profile store is also logged here. If full SSL/TLS logging is enabled, you can see if an SSL/TLS negotiation fails (e.g. one scenario is if the server hangs or is overloaded, there may be many "SSL_connect wants read" logs, which eventually time out). If client logging is enabled, the creation of the client thread for an IRC connection is shown.

These logging options add more details, which may be useful for debugging or bug reporting.

Enable logging of client messages

Enables messages about IRC, DCC, Finger and Ident clients and threads, thread creation and progress, end-thread events, closing DCC, Finger, Ident and IRC client connections.

Enable logging of server messages

Enables messages about DCC, Finger and Ident servers and threads, thread creation and progress, end-thread events, server listener status and protocol, accepting connections, closing DCC, Finger, and Ident server connections.

Enable logging of SSL messages.

Enables messages about SSL/TLS connections, "wants write" and "wants read" negotiations, the SSL cipher, SSL server connection accepts.

Enable logging of SSL certificates

Enables logging of SSL/TLS certificate data, retrieving server certificates (or not), verification results, server certificate chains, whether trusted CA certificate file found, certificate details, whether server certificate self-signed.

Enable logging of System CA certificates

When no "cacert.pem" file is found, the Windows System Certificate Store is used instead. This enables logging of each CA certificate from the Windows System Certificate Store. There may be many of these, so if you enable this option and no "cacert.pem" file is in place, this may add a lot of text to your Status window.

Time settings

In this tab, a setting labelled "Network activity" specifies the idle time timeout, which is a maximum limit for the idle time between messages received on an IRC network connection.

The idle time timeout is used to detect IRC connections that have failed abnormally, without notifying the app of a closed connection. If a connection has been idle for more than this number of seconds, the Network Idle time warning dialog will be displayed to alert you so that you can take steps to check the connection, and if found to be unresponsive, close or abort it and re-connect.

The network idle time can be monitored for each connection on the IRC Status & Channel Listing dialog. Whether or not the IRC Status dialog is open, an idle time over the idle time timeout setting triggers the display of the following dialog.

Network Idle time warning

It identifies the network, connection number, server name, port, and your nickname on the network, the idle timeout setting currently in use, and lists help advice for checking the state of the connection.

Normally, notices and channel messages arriving from the server prevent the connection being idle as each message resets a time stamp for the last message received. In addition if there is no other traffic, most IRC servers send a PING message to check the connection, which the IRC client must respond to. These messages are normally sent at intervals of 5 to 10 minutes. Accordingly, the default maximum idle time has been set to 900 seconds (15 minutes).

If there is a break in the TCP/IP connection to the internet, e.g. due to poor ISP service, a server may detect a network error or PING timeout and close the connection.

There are a number of ways that broken connections are normally detected, including:

  • An "End of data" notification
  • A "Premature close" SSL Error
  • Connection reset by peer (WSAECONNRESET)
  • SOCKET_ERROR from recv()
  • recv() or SSL_read() read error

If a broken connection occurs without any errors or notifications to detect it, the connection may appear to be still present despite being non-functioning, and the usual procedures for shutting down the connection will not have taken place. This state of affairs might look like there is simply no activity in the network channels and can be missed until you start to suspect that it has been idle for too long. The idle time check allows this situation to be detected automatically, so that Winshoe can alert you to the potentially disconnected server.

If the internet problem resolved itself, and the idle timeout expired without a PING timeout, then the connection might be in working order again. You can check this by sending a message to the server; the quickest way is to use one of the standard information requesting commands - typing /WHOIS yournick in the server status window edit box usually gets an immediate reply. If there is no response, the connection may be assumed lost. You can try closing the connection gracefully with the /QUIT message as usual, but if the connection is lost it will probably have no effect. You can try closing the connection by clicking the system close [X] button at the top right of the server status window. You can abort the connection forcefully by opening the IRC Status & Channel Listing dialog, right clicking on the connection's row, and clicking Abort. This will remove the connection entry and enable the server status window to be closed.

IRC Servers Configuration

Opens the IRC Server Configuration dialog. Note that as this is a write-enabled version of the same dialog that opens the Connect dialog, this will not open if you already have an IRC Connect dialog open.

This dialog includes the same functions as the IRC Connect dialog, i.e. selecting a network, selecting a server, and connecting using either SSL/TLS or non-SSL/TLS connections, filtering the network list to "Show only favourites", selecting favourites, viewing IRC connection status, and login-on-connect. In addition, there are facilities for editing the networks and servers, adding new networks and servers, or deleting them.

The dialog includes an IRC network list, a list of the servers saved for the current network, an IRC connection status list, and a summary of your user settings.

IRC Network list right click options

As for the "Connect" dialog, you can right click and select "Connect to default server (Non-SSL/TLS)", or "Connect to default server (SSL/TLS)". The IRC Server Configuration dialog also includes Edit and Delete features not available on the "Connect" dialog:

Edit network name or description
image

Opens a dialog box to edit the network name and/or description. The network name is the name used by the IRC network as its identity, so it is important that you get it right. The network description however can be any text that you would like to use to help identify the character, special features or facilities of the network for your own record. The network name is linked to the full list of servers, and is used to filter the servers that belong to that particular network.

Delete network (only if 0 servers/channels/channel sets)

To ensure that no stray server, channel, or channel set records are left around, and that the correct item is deleted, it is required that you first review and delete all server, channel, and channel set records associated with the network. If there are any of these present, a warning will be displayed showing the number of items that need to be deleted. When you have reviewed and deleted all associated server, channel, and channel set records, selecting "Delete network" will display a dialog asking you to confirm by clicking OK, otherwise Cancel.

Add a new network button
image

You cannot use a network without knowing the details of a server to connect to. Therefore, to add a new network, this will open an "Edit Server" dialog.

Enter the network name. The network name is the name used by the IRC network as its identity, so it is important that you get it right.

Enter the server's domain name / address. Most networks have lists of servers on their own website, which you can find on a search engine (e.g. Google). You can also search a list of networks at http://irc.netsplit.de/networks/. Networks often have a generic server address based on the network name, with a common top level domain such as .com, .net or .org. For example, AfterNET has irc.afternet.org.

Networks may also have generic regional server addresses, and ones for special purposes such as connecting via IPv6. For example 2600net has:

-  irc.2600.net <-- All Servers
-  irc-us.scuttled.net <-- All US Servers
-  irc-eu.scuttled.net <-- All EU Servers
-  irc-ipv6.scuttled.net <-- All IPv6 Servers

You will need to find out what ports the server uses to connect. Often they are 6667 for non-TLS connections, and 6697 for TLS connections, and these are filled in as defaults, but some servers use different ports, and may offer a range of ports for use. If the server operates one type of connection only, leave the other port blank. If you manage to connect to the network, the networks message of the day (MOTD) usually gives details of available ports.

The network description can be any text that you would like to use to help identify special characteristics of the server, e.g. geographical location, reliability, etc., or you can leave it blank. This will also be listed in the server list after the server is added.

Servers on IRC Network list right click options

As for the "Connect" dialog, you can right click and select "Connect to server (Non-SSL/TLS)", or "Connect to server (SSL/TLS)". The Servers on IRC Network also includes the following edit, delete and move features not available on the "Connect" dialog:

Edit server details

This will also open the "Edit Server" dialog, with all details already filled in from your server database, so that you can change them if necessary.

Delete server

This opens a "Yes/No" confirmation dialog box, where if you click Yes, the server will be deleted from the list of servers.

Move this item up

Except for the top row, this allows you to move a row up in order to sort the servers into a suitable arrangement. Usually the generic server address should be at the top, because it is used to connect as the default server from the network list right-click menu.

Move this item down

Except for the bottom row, this allows you to move a row down to sort the servers.

Add a new Server button

This will also open the "Edit Server" dialog, with the network name already filled in as the network selected in the network list. You will already have at least one server address listed if the network is already in your list, so you will be adding a different server address as an alternative connection point if one or more of the existing servers have perhaps gone off-line. Check if you need to change the default port numbers and add a description specific to the server if you wish.

IRC Channels Configuration

Opens the IRC Channel Configuration dialog which enables you to add, edit, or delete channel names to be stored in association with a specific network, along with an optional description. These channels will then be listed when you open the "Join IRC Channel" dialog from a server status window, by clicking the toolbar Channels button, or using the right-click menu.

The top network list shows the network names along with the number of servers, and the number of channels.

Select a row on the top network list in order to edit its associated channels, by left clicking on the row or using the up/down arrow keys. Existing channel names will be displayed in the bottom list.

Add a new channel button
image

Opens a dialog box to edit the channel name and/or description.

Channel names were introduced in RFC1459 (1993) as strings beginning with a '&' or '#' character, of length up to 200 characters. More recently, other types of prefix are in use, including '+' and '!', and the length was shortened to 50 characters (RFC2812, April 2000), but the '#' type is by far the most common. A channel name may not contain any spaces (' '), a control G (^G or ASCII 7), or a comma (','). Networks may impose their own shorter limits on channel name length. You can specify channel names that don't exist, and when you join the channel, if allowed by the network, a channel of that name will be created.

You can also add channels to the channel list using the channel listing dialog to bookmark them, or after joining a channel you can use the right click menu to bookmark the channel.

The channel description can be any text that you find helpful. The channel topic may be useful as a basis for a description of a new channel.

Edit channel details

This will also open the "Edit Channel" dialog, with all details already filled in from your channel list database, so that you can change them if necessary.

Delete channel

This opens a "Yes/No" confirmation dialog box, where if you click Yes, the channel will be deleted from the list of channels.

Move this item up

Except for the top row, this allows you to move a row up in order to sort the channels into a suitable arrangement.

Move this item down

Except for the bottom row, this allows you to move a row down to sort the channels.

IRC Channel Set Configuration

Opens the IRC Channel Set Configuration dialog. Channel sets are used when you want to join multiple channels on a network at the same time. This is very similar to the IRC Channel Configuration dialog, but allows for comma-delimited lists of channels which you can join simultaneously when you open the "Join IRC channel set" dialog from a server status window, by clicking the toolbar Channel Sets button, or using the right-click menu.

The top network list shows the network names along with the number of servers, and the number of channel sets.

Select a row on the top network list in order to edit its associated channel sets, by left clicking on the row or using the up/down arrow keys. Existing channel sets will be displayed in the bottom list.

Channel set right-click menu
Edit channel set details
image

Opens a dialog box to edit the channel set and/or description.

The channel set is a comma delimited list of channel names, for example "#Shakespeare,#Dickens,#Unicode".

The channel set description can be any text that you find helpful.

Delete channel set

This opens a "Yes/No" confirmation dialog box, where if you click Yes, the channel set will be deleted from the list of channel sets.

Move this item up

Except for the top row, this allows you to move a row up in order to sort the channel sets into a suitable arrangement.

Move this item down

Except for the bottom row, this allows you to move a row down to sort the channel sets.

Add a new channel set button

This will open the "Edit Channel Set" dialog, with the channel set and description left blank for your entry. See the description of the channel set right-click menu "Edit channel set details" for more information.

IRC Access Levels Dialog

This opens the IRC Access Level Configuration dialog, which enables you to enter access levels. These determine who is enabled to trigger certain script commands, and are specified with digit or string identifiers, a user mask, and a description for convenience. Each entry identifies a user, or users that match the user mask. If their access level exceeds that specified in the script command, then the script command gets executed.

Edit Access Level
image

Opens a dialog box to edit the selected user access level and/or description.

The access level is a comma delimited list of access level numbers or names.

The user mask contains a user nickname, user name and server address, delimited by a '!' and a '@'. Any of the fields can be specified using the rules of glob matching.

The description can be any text that you find helpful.

See the User Access Levels section for further information and examples.

Ident Server Settings

image

Opens a dialog box to set settings for the Ident server.

The Ident Server handles incoming Identification protocol connection requests (as described in RFC 1413) on port 113. Its purpose is to identify the identity of a user of a particular TCP connection.

The System setting should normally be "UNIX".

The User ID setting is nominally supposed to be set to the name you normally use in your email address, (the part before the '@'), although it can often be set to whatever you like.

If you click the button labelled "Use IRC user ID", the user ID will be set to match the one currently set in the Setup/App Settings/Identification Tab dialog.

If you click "Save as Defaults", the System and User ID settings are saved in your setup.ini file.

Click OK to close with the settings you specified, or Cancel to leave them unchanged.

For further information, see Ident Server.

DCC (DCC Setup dialog)

image

The DCC Setup dialog sets options for the DCC protocols.

The default port for DCC CHAT is 1026, and the default port for DCC SEND is 1028. You can select other ports if you wish by editing the ports in this dialog. Ports in the range 1024-5000 are commonly used for DCC, particularly the 5 ports between 1024 and 1028, although problems with routers have forced some people to use higher ranges such as 12000 and 65535. It's important to avoid clashes with other applications that might use the same port, and set up port forwarding if you are behind an ISP router, so that external computers can connect through to your DCC port.

You can individually enable or disable the DCC CHAT request and accept dialogs, and the DCC SEND request and accept dialogs.
If DCC CHAT request is disabled, you can't initiate a DCC chat.
If DCC CHAT accept is disabled, your app will not respond to DCC chat requests.
If DCC SEND request is disabled, you can't initiate a DCC file sending.
If DCC SEND accept is disabled, your app will not respond to DCC file sending requests.

If you check the "Enable send ahead mode" checkbox, DCC sends the file using a variation of the sending algorithm where a new packet is sent without waiting for an individual acknowledgement. The objective is to achieve faster transfer rates, however depending on network conditions, the improvement may be modest. A successful send is registered when all the packets have been acknowledged.

As the DCC protocol does not allow for file names that contain spaces, if you select a file that does contain spaces, there is a provision to hide the spaces using one of three methods. The Setup/DCC DCC Setup dialog provides three methods - underscore, hyphen, or quotes, selected by radio button.

  • Underscore - Replace spaces with underscores
  • Hyphen - Replace spaces with hyphens
  • Quotes - Put quote characters around the whole filename

Uploads directory: This sets the default location where files are browsed for in the Start DCC Send dialog.

Downloads directory: This sets the default location where files are saved in the DCC Send request dialog.

Click OK to save changed settings, or Cancel to close the dialog without change from the previous settings.

For further information on using DCC CHAT and SEND, see DCC Chat and Send.

Setup / Cuss Filter

The cuss filter hides certain prohibited words with asterisks or '#' signs from being displayed or sent. This might help avoid embarrassment when you are using IRC in front of elderly relatives, the press, or small children. It isn't much use for protecting against all forms of offensive language- people are far too inventive and can get round word filters quite easily, and in different cultures words can have quite different levels of offensiveness. The filter currently has its word definitions hard coded, and only for English (possibly with a British flavour).

The cuss filter has its own setup dialog: Main menu / Setup / Cuss Filter will open the dialog shown above. This dialog has options for the filter level, word filtering options, and a test input to check the result of the cuss filter on test sentences and words.

You can set up your Winshoe installation with protected cuss filter options for another person to use, by adding a lock password of your choice, and then setting the dialog to a locked state. When you have entered a lock password, it is stored encrypted, so you will need to know it and re-enter it to disable the lock.

Filter Level

You can set the filter level to one of 5 levels, from None (which disables filtering) to Level 4, which filters all categories of bad words.

Bad words are grouped into 4 classifications, based on the Ofcom Offensive language report 2016.

Word level classifications:

  • Severity Level 1: Milder words (generally of little concern) General swear words and body parts
  • Severity Level 2: Medium words (potentially unacceptable pre-watershed but acceptable postwatershed)
  • Severity Level 3: Strong words (generally unacceptable pre-watershed but mostly acceptable postwatershed)
  • Severity Level 4: Strongest words (highly unacceptable prewatershed but generally acceptable postwatershed)

Filter levels:

  • 0: No filtering
  • 1: Filter strongest severity words only
  • 2: Filter strong and strongest severity words
  • 3: Filter medium, strong and strongest severity words
  • 4: Filter milder, medium, strong and strongest severity words (all categories)
Cuss filter locking with password

To enable cuss filter locking, click on the "Create lock password" button, and enter your password in the dialog that appears, which has an entry box for the password, a second one where you enter the password again to check you are consistently entering the same password (in case you make a mistake), and click OK to save the password, or Cancel to exit without creating one. When there is a lock password, the button changes to "Change lock password".

After adding a lock password, the cuss filter dialog will show an extra Lock button to the left of the lock password button. Clicking on Lock brings up a password entry dialog; if you enter the correct password (e.g. one you just created) and click OK, the cuss filter dialog will be locked and the Lock button changes to "Unlock". In this state, you cannot use any of the controls except to unlock, change the lock password, or close the dialog. To unlock the dialog, click on Unlock to bring up the password entry dialog; if you enter the correct password and click OK, the cuss filter dialog will be unlocked and the Lock button changes back to "Lock". Note that with a password entered, a user who doesn't have the password can still change the cuss filter settings if the dialog is set to the unlocked state. You can remove (or change) the lock password by clicking the "Change lock password" button, entering your current password into the password entry dialog that comes up, then leave the password entry boxes blank and click OK. This will remove the lock password and the Lock button, and "Change lock password" button reverts to "Create lock password".

Word filtering options

Checking the Filter only whole words checkbox prevents cuss words that are embedded in another word from being masked (words must start and end on a word boundary to be filtered). If unchecked, a cuss word embedded in any longer word will be masked (except for a few allowed words)

Checking the Include suffixes for whole words checkbox masks whole words that comprise a cuss word plus certain suffixes (specified on an individual word basis, and most frequently including the plural "s"). This enables the filter to mask common variations of words. Thus (if "Filter only whole words" is checked) "dived" which is not a whole cuss word, but does not include a known suffix, is not masked, whereas "divs" which includes a recognised plural form, will be masked to "***s".

Checking the Leave first character unmasked checkbox causes masking to substitute only the first character in a cuss word with a masking character.

The "Selection summary" box provides a concise description of filtering preferences based on the settings of the above controls.

The "Small word threshold" setting (defaulting to 2) prevents small cuss words that are part of larger words being masked when the "Filter only whole words" option is unchecked. For example:

Small word threshold 1 (default is 2), filter only whole words unchecked
"house" gets filtered to "**use"

Small word threshold 2 (default)
"house" is not filtered

Mask character options

Mask incoming text (default checked): Unchecking this disables masking of received messages.

Mask outgoing text (default checked): Unchecking this disables masking of messages sent to servers, channels and other users.

Disabling both of these is equivalent to turning filtering off. Instead, you should set the filter level radio buttons to 0: No filtering.

Following these checkboxes are edit boxes that allow you to change the characters used for masking cuss words, which by default are an asterisk for incoming text, and a '#' for outgoing text.

Cuss filter preview

You can enter sentences into the edit box labelled "Input test string" to check the filtering. The text resulting after filtering is shown below under "Filtered string", and the "Debug Log" shows a summary of how many cuss words were masked at each severity level.

Colours (mIRC/pIRCh/cIRCus)

This is one of 4 similar colour selection dialogs that open from the main menu / Setup submenu. Winshoe gives you the option to customise the colours from the various colour sets. You can then switch back to the default colours if you wish, by selecting the dropdown choices control (top left) choosing "Custom user colours" or "Default colours". The custom colours are shown in the first column, plus their RGB values in decimal and hex, then followed by columns for the default colours, and their RGB values.

In IRC, text is coloured by inserting an escape code followed by a colour code for the foreground and/or background colours to use. Another escape code of the same type or a general cancel (inserted by Ctrl+o) ends the coloured section.

The colour codes used to select the palette colour within the relevant IRC colour syntax are shown in the rightmost column.

You edit the custom colour by either selecting a row with a left click and clicking the "Edit colour" button or right clicking on a row and selecting "Edit colour".

The "Colours (mIRC/pIRCh/cIRCus)" dialog is a palette of 100 colours including 16 colours in the original set, plus Extended mIRC colours.

mIRC / pIRCh / cIRCus colour syntax: <ETX> [ <N> ] [,<M>]

Colour attribute escape code: <ETX> = 0x03

Codes: N[,M] where the [,M] denotes the optional background colour.

N and M are in the range {0,1,..,15} for the base colours, {0,1,..,99} with extended colours.

Colours (Ircle)

This colour selection dialog is a palette of 42 colours including 28 base colours plus 14 further user defined system colours in an Ircle escape sequence (Winshoe uses its own colour set for events, so these may be used as ordinary colour codes like the base colours).

Ircle colour syntax: <ETX> <colourchar>

Colour attribute escape code: <ETX> = 0x04

A single colour character is used starting at ascii '0' on to 'K', then a further set (used by Ircle software for user defined system colours) are used at 'a' to 'n'.

Colours (ANSI)

This colour selection dialog is a palette of 8 colours that may be used for foreground or background colours in an ANSI escape sequence.

In the case of ANSI colours, the foreground and background codes for each colour are different, shown for example "30/40".

ANSI colour syntax: <ESC> "[" <attr1> *[;<attrn>] "m"

Colour attribute escape code: <ESC> = 0x1B

ANSI standard (ISO) 6429 defines colour attributes as a list of semicolon (;) delimited attributes between the characters '[' and 'm'. Multiple attributes can be combined, e.g. text after the code

<ESC>[30;43;1;4;7m

will be rendered in black on yellow, with bold, underscore, and reverse attributes.

The list of ANSI colours is the same for foreground and background, but the attributes 30 to 37 select the foreground colour and the attributes 40 to 47 select the background colour. The colours can be changed from the main menu Setup / Colours (ANSI) dialog.

Colours (Events and Window Background)

This colour selection dialog is a list of colours that Winshoe uses for events. This covers any text displayed on the application's text windows, such as normal text, CTCP actions (/ME), find results, notices, app events, status messages, errors, ignore notices, etc.

For the event colours, the last column shows the type of app event that the colour is used for.

This list also includes the "Window background" colour, as normally if you change this, it needs to be coordinated with other text colours, such as the Normal text, Normal background, and Status. For instance, if the Window background is changed to black, the normal text background colour should be changed to black to match, and normal text (foreground) changed to a light colour e.g. white. Then the Status text needs to be changed to white as well as the default black will make it invisible on a black background. Note that text written to windows is written with the prevailing colours and if these are changed, only new text will be shown with the new colours.

Hex colours

There is no colour palette dialog for hex colours, as the format explicitly defines the RGB colour to be used.

Hex colour syntax: <EOT> [ <N> ] [,<M>]

Colour attribute escape code: <EOT> = 0x04

Codes: N[,M] where the [,M] denotes the optional background colour.

N and M are 6 digit hexadecimal values in the range {0x000000 .. 0xFFFFFF} in RRGGBB format.

Text Snippets Library Editor

This opens the Text Snippets Library Dialog, which allows you to manage all of the text snippets that you have saved.

These text snippets may be used by entering Ctrl+t in an edit box, which opens a text snippets dialog for you to recall, create and edit lines of text to paste into the edit control of a server, channel or private window, filtered down to match the context of the window type, server and channel, so as to show only relevent text snippets.

For further information, see the Ctrl+t Text Snippets and Text Snippets Library Dialogs section.

Setup / Open the app's data location

This opens the app's data location, in the same way as the Setup / App settings / General tab "Open app data location" button does, in Windows Explorer.


Bring All To Foreground!

This menu command works in a similar way to the "To Foreground" button on the main window and will bring all channel windows to the foreground.

Select/Restore

Select Window to Activate Dialog

The "Select Window to Activate" dialog lists all server and channel windows. To bring a window to the foreground, select the relevant row and click the Activate button. The Restore button restores the window to its default position and size on your main display. This is especially useful if a window position has been set off-screen, and you have changed your multi-monitor setup, such that the window is no longer on visible screen area.


Help file

Displays the Help file Contents page.

About

"About" brings up a general information box with program identification, version number, Winsock version, app architecture, system information, build date, OS version, and credits. "App Architecture" shows the word length of the executable (i.e. 32 bit or 64 bit).

Back to Top

DCC Chat and Send

DCC is a protocol that enables IRC users to set up a direct client-to-client connection with another IRC user. Rather than using the IRC server to relay messages between the two users, as is normal in a private IRC window, DCC sets up a TCP/IP connection between the computers of the two users such that their text messages are not visible in any way at the IRC server, and it also facilitates transferring files directly between users.

As there is no involvement by the IRC server, the speed of a file transfer is not limited by the IRC server bandwidth or flood control measures.

To start a DCC chat or file transfer, left click on a nickname in a channel window, preferably using the nick list, and select "DCC chat" or "DCC send". The "DCC chat" command will open a "Start DCC Chat" dialog as shown below, or a "Start DCC Send" dialog as shown further below.

Start DCC Chat

image

This dialog gathers the information needed to start a DCC chat. It shows the nickname you right-clicked on and the IRC network for reference plus a server port and a host IP.

The server port together with your IP address defines the server's connection point for exchanging the DCC data. The default port is 1026. Ports in the range 1024-5000 are commonly used for DCC, particularly the 5 ports between 1024 and 1028, although problems with routers have forced some people to use higher ranges such as 12000 and 65535. It's important to avoid clashes with other applications that might use the same port, and set up port forwarding if you are behind an ISP router, so that external computers can connect through to your DCC port.

Winshoe follows the DCC protocol as described by Troy Rollo where a CHAT or SEND request goes as follows:

The initiator creates a network listening socket and sends the recipient a CTCP message containing a DCC CHAT or SEND request. This gives the recipient the address and port of the socket. If the recipient agrees to the request they allow a connection to be made over which the CHAT or SEND communication is performed. The listening socket is closed.

The recipient needs your IP address to communicate, which you provide in the Host IP edit box. If you are running on an intranet only, you can use your local host IP which can be obtained using the "Get Local Host IP" button, which opens a dialog for you to pick the correct IP if there are multiple adapters on your machine. If you are talking to someone via an ISP you need to provide your external-facing IP, which is obtained from an external service (OpenDNS) when you click the "Get External Host IP (v4)" or "Get External Host IP (v6)" buttons. If your ISP doesn't support IPv6, you will get a message box that says "Could not get external host IP (no response from your server via myip.opendns.com)". For more information, see under Host.

If you check the "Use SSL/TLS secure connection (SCHAT protocol)" checkbox, the connection will be made using a SSL/TLS encrypted TCP/IP connection instead of a regular TCP/IP one.

DCC Chat request

image

When the recipient receives the CTCP message containing the CHAT or SCHAT command, this dialog is displayed to allow the recipient to accept or reject the request.

The dialog shows the initiator's nick and host mask as known to the IRC server, the type of protocol requested, and the host IP and server port. Using DCC in an intranet (as was done in this demonstration example) would show a host IP in one of the reserved ranges:

IPv4:
10.0.0.0 to 10.255.255.255
172.16.0.0 to 172.31.255.255
192.168.0.0 to 192.168.255.255

IPv6: Within the "Unique Unicast" IP range of fc00::/7 as stated in RFC4193
(but organisations can also use their own uniquely assigned general IPv6 addresses)

DCC Chat windows

image

If you were the originator and closed the "Start DCC Chat" dialog with OK, a private DCC window appears, which has your originator's nick with "(S)" appended to the window title to show it is a server window. This will display a status message "{Info} Waiting for DCC client to accept connection", then if the recipient accepts the connection, "{Connected} DCC Client connected." as shown below under "DCC Chat windows".

If the recipient OKs the DCC Chat request dialog, the working connection is established and a private DCC window appears, which has the originator's nick with "(C)" appended to the window title to show it is a client window. Either side can start the chat. Each line of text you enter is sent directly to the other side when you hit the Enter/Return key.

DCC Chat closed by server

image

A status report is shown on the DCC Chat client window when the remote DCC server window is closed.

DCC Chat closed by client

image

Similarly, a status report is shown on the DCC Chat server window when the remote DCC client window is closed.

Start DCC Send

image

This dialog gathers the information needed to start DCC sending a file. Similarly to the Start DCC Chat dialog, it shows the nickname you right-clicked on and the IRC network for reference plus a server port and a host IP.

The default port for DCC SEND is 1028. Port ranges similar to the ones described for the Start DCC Chat dialog may be used. It's important to avoid clashes with other applications that might use the same port, and set up port forwarding if you are behind an ISP router, so that external computers can connect through to your DCC port.

A SEND request follows the same general routine as a CHAT request, but when a connection is accepted by the recipient the selected file is transferred to the recipient using a packet protocol as originally described by Troy Rollo.

The recipient needs your IP address to communicate, which you provide in the Host IP edit box. The Host IP buttons work in the same way as for the Start DCC Chat dialog.

If you check the "Use SSL/TLS secure connection (SSEND protocol)" checkbox, the connection will be made using a SSL/TLS encrypted TCP/IP connection instead of a regular TCP/IP one.

You need to select a file to send using the "Browse for file" button, after doing this the full file path and the file name are shown. If the file name contains spaces, which cannot be sent as-is, the substitution format will be shown. The substitution format is selected from the main menu, Setup/DCC DCC Setup dialog which provides three methods - underscore, hyphen, or quotes.

DCC Send can also be used with a send-ahead mode which is also set in the DCC Setup dialog.

DCC Send request

image

When the recipient receives the CTCP message containing the SEND or SSEND command, this dialog is displayed to allow the recipient to accept or reject the request.

The dialog shows the initiator's nick and host mask as known to the IRC server, the type of protocol requested, and the host IP and server port. Using DCC in an intranet (as was done in this demonstration example) would show a host IP in one of the reserved ranges:

IPv4:
10.0.0.0 to 10.255.255.255
172.16.0.0 to 172.31.255.255
192.168.0.0 to 192.168.255.255

IPv6: Within the "Unique Unicast" IP range of fc00::/7 as stated in RFC4193
(but organisations can also use their own uniquely assigned general IPv6 addresses)

When receiving a file over DCC, the sender's file name and file size are displayed. The recipient must choose the download location (defaulting to the app's download folder in the profile location). A browse button is provided to easily change the location. The file name can also be changed in the edit box.

If the recipient clicks OK, the dialog closes and the file transfer proceeds. If they click Cancel, the file transfer is rejected.

DCC Status bar

image

While a DCC file transfer is in progress, the progress is shown in the app's status bar. The sender has progress displayed as "DCC (S) prog:" with a percentage value, and the recipient has progress displayed as "DCC (C) prog:" with a percentage value. If you are testing locally through the same app, you can send files using non-SSL/TLS protocol only and both sides of the transfer will be shown in the status bar. However, you cannot test SSL/TLS sending between ports within the same app as the SSL/TLS layer does not support that.

DCC Status messages

Additional DCC status messages are shown on the Status window, if the relevant options are enabled in the main menu Setup / App Settings / Logging settings tab. The example shown below includes messages for the server end and client end being tested on the same instance of WinShoe:

DCC status messages

Connection State

The connection state is shown for the single Finger Client, Finger Server, and Ident Server on the status bar at the bottom of the app, as a three-letter abbreviation. For IRC and DCC connections, of which there may be several, the connection state is shown unabbreviated in the Status column of the IRC status (Main menu - Tools / IRC Status) and DCC status dialogs (Main menu - Tools / DCC Status). These dialogs give you right-click options to show the network information dialog, view the SSL/TLS certificate on a secure connection, open the Channels dialog, quit with the default quit message, or abort the connection. "Abort" should only be used if the IRC connection is not responding normally.

The possible connection states are:

State
Abbreviation
Description
Unconnected
UNC
Not connected, or disconnected (client), or not running (server).
Resolving
RNG
Resolving a host domain name or IP.
Resolved
RES
Host was resolved, connect initiated.
Connected
CON
Connected to IRC server, but not registered (Tools / IRC Status & Channel Listing Dialog only).
Registered
REG
Connected to IRC server and registered (Tools / IRC Status & Channel Listing Dialog only).
Listening
LIS
Listening for connections (server).
Accepting
ACC
Accepting a connection request (server).
Disabled
DIS
Shown for disabled finger or ident servers. Server does not respond to connection requests.

If the connection state sticks on RESOLVING, or RESOLVED, the host may not be responding, or there may be network delays. If it fails, the connection may eventually time out with a WinSock Error, such as WSAETIMEDOUT or WSAENOMORE (no more data available). Check for these errors on the Status window.

If the connection state for IRC sticks on CONNECTED, the host may simply be slow in responding, and the connection may eventually succeed, or time out with a WinSock Error.

When you have connected to an IRC server, the appropriate registration messages are sent automatically to the server. If you are accepted as registered, a sequence of introductory messages are sent by the server and your connection state will change to REGISTERED.

Note that the server may go through an authorisation process of checking hostname, and/or ident, before completing registration.

The 3-letter abbreviations CON and REG are reserved for IRC connections, but not used because viewing the IRC status has been enhanced by the addition of the Tools / IRC Status & Channel Listing Dialog, which can show all IRC connections, instead of the first two only that were supported by previous versions of the WinShoe connection state window).

Back to Top

Modifying the Server Database

The servers listed here are defined in your networks.ini file. All the tools required to modify the list are provided by the app's Main Menu / Setup / IRC Servers configuration dialog, so you don't normally need to modify the .ini file entries.

You may find server lists on the internet which have been formatted using a similar syntax. You cannot add these to your networks.ini file unless the formatting matches exactly, which may require careful editing of the source data. Therefore, it is strongly recommended that external lists are added by using the app's Main Menu / Setup / IRC Servers configuration dialog.

You can use the Import Setup dialog to import server lists from legacy Winshoe files, assuming they are in a compatible format (i.e. as used by earlier versions of WinShoe). In legacy Winshoe files, you will find the [Servers] section with the server data in the setup.ini file. To avoid overwriting other types of data and existing server data, uncheck all import options except for "Import Servers", and click the "Items that do not already exist will be added" radio button. Keep a backup copy of your setup.ini and networks.ini files before attempting anything like this, and compare the new result carefully with the previous versions using a diff tool like WinMerge. The import setup dialog will attempt to save backup files, but to be on the safe side it is advisable to make your own copies before running the software. It is always much safer to add networks and servers using the app's Main Menu / Setup / IRC Servers configuration dialog and this is strongly recommended.

When editing an .ini file, always make sure that the entry keywords (e.g. "n0=") are listed starting with the numeric digit 0 and increasing by 1 each time.

The "normal" port number for IRC is 6667- if in doubt, always use this number. IRC servers frequently listen on other ports, typically between 6665 and 6669, and sometimes 6660 to 6664 and/or one at 7000 are also available. Once you have connected to a server you can find out which other ports it accepts (sometimes given in the MOTD, and sometimes given in associated web pages for the network). Changing the port number may give you quicker connections.

See Server and Channel List Resources for web sources that list IRC servers.

An example of the file format for the networks.ini file in your app's %APPDATA% location where entries for the IRC dialog are stored looks like this:

[Servers]
n0=UndernetSERVER:ix1.undernet.org:6667GROUP:Undernet
n1=UndernetSERVER:MustyHay.eu.ix.Undernet.org:6667GROUP:Undernet
n2=ashburn.va.us.undernet.orgSERVER:ashburn.va.us.undernet.org:6667GROUP:Undernet
n3=FinancialChatSERVER:irc.FinancialChat.com:6667+6697GROUP:FinancialChat
etc.

In this format, the part of the entry string before the "SERVER:" keyword is the "Server Description", the part after "SERVER:" is the server's internet address; then after the server address and a delimiting colon (':') but before the "GROUP:" keyword is the "Port"; then after the "GROUP:" keyword is the "Server's Network Name".

If there is an SSL port, it is entered in the port field as an additional number prefixed by "+", for example: 6667+6697

See also .ini Files

It is recommended that you use the app's Main Menu / Setup / IRC Servers configuration dialog to edit the server list, rather than attempting to edit the networks.ini file as any mistake could easily corrupt the data.

Back to Top

Server and Channel List Resources

The following web resources list IRC servers. You may find others using search engines (e.g. Google).

IRChelp.org - click on Networks
http://www.irchelp.org/

Eris Free Network (EFNet)
http://www.efnet.org/?module=servers

Undernet Servers
http://www.undernet.org/servers/

DALnet servers
https://www.dal.net/servers/

Chatnet home and servers
http://www.chatnet.org/servers.html

Starlink-IRC servers
http://www.starlink-irc.org/index.servers.html

KreyNet Server List (Dutch focus)
http://www.krey.net/serverlist/index.html

IRC Networks (alphabetical list) at netsplit.de
http://irc.netsplit.de/networks/

Back to Top

Cut & Paste

To select text in any of the text windows you use the mouse with the left button in the usual way. When you release the left button, the highlighted text will be copied to the clipboard immediately. There is no need to separately copy the highlighted text - the result is faster, and in a constantly changing display, a block of text highlighted for copying will not then become a permanent block of inverted text in the scrolling text.

Text can be copied from any of the text windows, including raw status, nick lists, and channel info windows. When you copy from the raw status window panel, attributes and colour codes are included.

You can select text outside the window by holding the left mouse button down and scrolling the window using the arrow keys. You can also select and copy words and nicks by right clicking on the word that you want then left clicking on the popup menu where it says "Copy to Clipboard".

It is much more convenient, if you want to copy more than one page of text, to use the right-click menu uption "Copy All to Clipboard", which copies all the text in the window that is under the mouse to the clipboard, then you can paste it in a text editor and edit it down to the parts that you need.

Back to Top

Ident Server

Ident Server Settings Dialog

image

The Ident Server is controlled by a dialog opened from the main menu
Setup / Ident Server Settings item.

Opens a dialog box to set settings for the Ident server.

The Ident Server handles incoming Identification protocol connection requests (as described in RFC 1413) on port 113. Its purpose is to identify the identity of a user of a particular TCP connection. This is mainly a reflection of the Unix environment and is not particularly meaningful on a PC, as there is no distinction between administration of the user connection and the Ident server. The Ident server is provided with IRC as a means to facilitate or speed up connections.

Ident supports the ability of an IRC server shared by many users to ban a single user without banning the entire host, and provides additional information to allow server administrators to identify and deal with abusive users.

Many IRC servers send Ident queries, but often a connection can be registered even if your Ident server is blocked by a firewall, depending on the configuration setup of the remote IRC server. The reason for this is that on most IRC networks, when the server fails to get an Ident response, it instead uses the username provided by the IRC client at login, but marks it as "not verified" typically by prefixing the username with a tilde ('~'). However, you may still find that some IRC servers will bar you from connecting if they cannot get an ident response. Fortunately, as many home users will have difficulty routing Ident queries through their ISP and router, there are plenty of interesting IRC networks which do not have this restrictive policy.

The System setting should normally be "UNIX".

The User ID setting is nominally supposed to be set to the name you normally use in your email address, (the part before the '@'), although it can often be set to whatever you like.

If you click the button labelled "Use IRC user ID", the user ID will be set to match the one currently set in the Setup/App Settings/Identification Tab dialog.

If you click "Save as Defaults", the System and User ID settings are saved in your setup.ini file.

Click OK to close with the settings you specified, or Cancel to leave them unchanged.

If you want to use another Ident server program, simply run it before you run WinShoe.

If you want to disable the Ident Server, uncheck the "Enable Ident Server" checkbox in the Main menu - Setup / App Settings / General tab.

If you do /whois <mynick> the first line of the WHOIS reply will indicate if your Ident response has been accepted. A '-' or '~' sign will appear if it has not, for example:

mynick ~myusername some.isp.co.uk * :Realname

Finger Client

Finger Client Dialog

image

The Finger Client is controlled by a dialog opened from the main menu
Tools / Finger Client item.

The Finger Client sends "finger" queries to remote Finger Servers, and displays results received on the Find Results window.

If allowed by the remote administrator, a Finger server will provide a list of online users and possibly optional information such as terminal location, office location, office phone number, job name, or idle time. For security reasons, the finger service or some of this information is often unavailable.

The Finger service was one of the earliest computer network applications, created in the early 1970s by Les Earnest at the Stanford Artificial Intelligence Lab (SAIL). . Since the late 1990s its public availability has faded away because of privacy and security concerns, and by 2017, virtually nobody made the finger service publicly available any more. Due to its origin in the 1990s, a Finger server and client was built in to Winshoe from the start, but you can disable the server completely in the main menu's Setup / App Settings / General tab dialog. None of the servers mentioned below remain available today and few applications exist that can demonstrate its functionality outside of a private Unix/Linux setup that has had it fully configured.

The Finger Client dialog includes an edit box for the host name and an edit box for the login name. If the login name is entered together with the host name in the form <login name>@<host name>, in the host name box, the login name box is ignored and will be set to the <login name> part.

Checkbox options

The checkboxes select which option switches are sent with the finger request. How these switches are handled by remote servers depends on the implementation, and full support is (or was) generally available only on Linux hosts.

Syntax: finger [-lmsp] [user ...] [user@host ...] 

A -W option is also specified in RFC1288.

Display long format reply with files (-l)

If the "Display long format reply" check box is checked, a finger query with the "-l" option is sent, which requests more detailed information (if available).

In Unix implementations, the server is expected to produce a multi-line format displaying all of the information described for the -s option as well as the user’s home directory, home phone number, login shell, mail status and the contents of the files ".plan", ".project", ".pgpkey" and ".forward" from the user’s home directory. For Windows, Winshoe's finger server reports the user's logon type, logon time, and logon duration, IRC connections (network, server, nick and how long connected), and the contents of the files ".plan", ".project", ".pgpkey" and ".forward" from the user’s %APPDATA% directory, if present.

Prevent matching of usernames (-m)

Prevents matching of user names. User is usually a login name. Not currently supported by Winshoe's finger server.

Display short user login details (-s)

Linux behaviour: Finger displays the user’s login name, real name, terminal name and write status (if enabled). The Winshoe finger server displays the user’s login name, logon server, and logon domain.

Prevents the -l option of finger from displaying files (-p)

If set, this prevents the -l option of finger from displaying the contents of the ".plan", ".project" and ".pgpkey" files. If no options are specified, finger servers respond in the -l style output if operands are provided, in which case this option will suppress the display of the files.

Display "Whois" format reply (-W)

Similar to long format. The Winshoe finger server will respond identically as for "-l". RFC1288 "The Finger User Information Protocol" defines the token /W at best to signify a higher level of verbosity in the user information output, or at worst be ignored.

If you send a finger query to another PC running this version of Winshoe, if they have enabled their Finger server, and have not used a .nofinger file, and its ports are not blocked by a firewall, you will see a reply formatted as described under Finger Server, which will tell you which IRC networks the other user is on, and list the contents of the files ".plan", ".project", ".pgpkey" and ".forward" from the user’s %APPDATA% directory, if present.

You can enter the address 127.0.0.1 or the word localhost as host name to query your own finger server, if it is enabled, and the results will be displayed on the Find Results window. Finger connection status messages are also shown on the Status window.

Sometimes a specialised information service is provided through a Finger Server. For example, earthquake information was made available through several servers, but this is now easily available on a web browser and such finger services are no longer available. (see http://www.seismolab.caltech.edu/earthquakes.html for earthquake information)

Example of a Finger Server reply (from server ctan@ftp.dante.de):

Login name: ctan
Directory: /homes/server/ctan       	Shell: /bin/sync
Never logged in.
No unread mail
Plan:
In order to reduce network load, it is recommended that you use the
Comprehensive TeX Archive Network (CTAN) host which is located in the
closest network proximity to your site.  Alternatively, you may wish to
obtain a copy of the CTAN via CD-ROM (see help/CTAN.cdrom for details).
 
Known mirrors of the CTAN reside on (alphabetically, by country):
  ctan.unsw.edu.au (NSW, Australia)       /tex-archive
  mirror.aarnet.edu.au (QLD, Australia)   /pub/tex-archive
... etc. ...

Example of a Finger Server reply when no login name was given (from server elbereth.rutgers.edu):

Login       Name               TTY         Idle    When    Where
denda    Mitsunori Denda       pts/1         3d Mon 18:48  cronos
marcem   Marcelo Mydlarz       pts/4        21: Fri 18:35  norm
cammisa  Heather Cammisa      *pts/37        42 Fri 11:28  pm3a-s29.localisp.ne
... etc. ...

Example of a Finger Server reply including login name "denda" (from server elbereth.rutgers.edu):

Login       Name               TTY         Idle    When    Where
denda    Mitsunori Denda       pts/1         3d Mon 18:48  cronos
denda    Mitsunori Denda       pts/101      13d Mon 10:52  cronos

The Finger user information protocol is described in RFC 1288. Finger uses TCP port 79.

Back to Top

Finger Server

If a remote client sends you a Finger query, your finger server is enabled, and there is a path through all routers (with port forwarding if necessary) and firewalls in the way, the details of the incoming query are shown on the Status window. Winshoe sends a reply in a text line-based format.

Finger servers originated in Unix-based systems, so there are a few differences when running on a Windows machine. Winshoe aims to provide a reasonable approximation in its implementation. Winshoe's finger server reports the user's logon type, logon time, and logon duration, IRC connections (network, server, nick and how long connected), and the contents of the files ".plan", ".project", ".pgpkey" and ".forward" from the user’s %APPDATA% directory, if present.

Simple examples of the Finger files are distributed in the installation subdirectory \Defaults\AppData

Syntax: finger [-lmspW] [user ...] [user@host ...] 

Forwarding is not supported and will get the response "Finger forwarding service denied for fred@example.com". User information will not be returned except for the user who is running Winshoe, a finger query for any other will get a response like "No information available about user FRED".

Support for information about other logins or users on your PC remotely is not considered desirable. Only information about your own login and the IRC network connections that you are using is available.

Finger Server responses to options

Display long format reply with files (-l)

Winshoe's finger server reports the user's logon type, logon time, and logon duration, IRC connections (network, server, nick and how long connected), and the contents of the files ".plan", ".project", ".pgpkey" and ".forward" from the user’s %APPDATA% directory, if the files are present.

Prevent matching of usernames (-m)

Prevents matching of user names. User is usually a login name. Not currently supported by Winshoe's finger server.

Display short user login details (-s)

The Winshoe finger server displays the user’s login name, logon server, and logon domain.

Prevents the -l option of finger from displaying files (-p)

If set, this prevents the -l option of finger from displaying the contents of the ".plan", ".project", ".pgpkey" and ".forward" files. If no options are specified, finger servers respond in the -l style output if operands are provided, in which case this option will suppress the display of the files. If there is no .plan file, the line "No .plan" is sent, and similarly for ".project", ".pgpkey" and ".forward". No .plan No .project No .pgpkey No .forward

Display "Whois" format reply (-W)

Similar to long format. The Winshoe finger server will respond identically as for "-l". RFC1288 ("The Finger User Information Protocol") defines the token /W at best to signify a higher level of verbosity in the user information output, or at worst be ignored.

Example of short format

User name: ***
Logon server: ***-PC
On IRC net localhost, server localhost, as nick somenick
Connected for 8 seconds.

Example of long format

User name: ***
Logon server: ***-PC
Logon domain: ***-PC
Logon type: 2 (Interactive)
Logon time: 07/06/2020  08:49
Logged on for 0 days, 10 hours, 3 minutes, 45 seconds
On IRC net localhost, server localhost, as nick somenick
Connected for 82 seconds.
.plan:
 : This is a plan file for finger
 : 2nd line
.project:
 : ACME project
 : FOO project
.pgpkey:
 : -----BEGIN PGP PUBLIC KEY BLOCK-----
 : Version: BCPG C# v1.6.1.0
 : 
 : mQENBFpODaMBCACYGWzE3WL//ThrvAbxQuQzg9j8Ty1TzBipu+vhOPYr7vMTFluE
 : FXhvaGpJPUGMvxxL0zrNogVtisLW7BTFqSwcRQABiQMe4warz14umf9lmfhAxF84
 : Cgaje2WOfYmx7F2OqwvdZbzBwUKfLumO01/ykTHHMGDehB7T0QXe9Hdej4wPIqxp
 : KnhcXYZKlTLtsJ8i23m/dvzdnW14gUUcU2XyvijGx+e32N2ektf1Xf/ZGUm6s5Bk
 : m6+Ok7pUOCkM7WlJz7PLcXevUNx4Q5SE+4zc/DPTCR+65NYVf/gy4C13rPB3dzC6
 : Hgv6TKmbAd6jvAYXbiX0wu3aYolUO6C0CMjjABEBAAG0GGZvb0BlbGJlcmV0aC5y
 : dXRnZXJzLmVkdYkBHAQQAQIABgUCWk4NowAKCRAbVEOhEY2PF1YiB/wNUbgB8pxq
 : D5wdcIQm52Em0RJ6R8oTRL50mSlKol+fz7+YR3sTmau2U8bl5bNVIxSv18B+54Iy
 : BWFoy2ZAl85oemDQQS8VWZbsIqsbUOeNojj0xdlzij+3q+yuUN5de1ShUem6OOBm
 : /wZErfSkY6OqkDBQXtxzjYijaxJF1sV1kCziKo3ZK/frDrvWd0ErmUr6UvXKs1Cp
 : wHjd1iiTNtenKJLf8ckkhGQI8D+mfRWUaXQFwpH98KA4QygkI2SGF2IrK1AoP1SU
 : naVKTmJdQvXEF9DJOzYa/IGfgkKWY1AJUDXURSzIGayNSHr6M6z4NxUw+3MBRozT
 : /K9n2FAjCNOq
 : =Tk6S
 : -----END PGP PUBLIC KEY BLOCK-----
.forward:
 : jsmith@example.com

If you enter the address 127.0.0.1 in your Finger Client dialog, or the word localhost, you will be able to see the Finger Server information for your own machine which will be displayed on the Results window.

You can also send a Finger request to your PC running this software by entering the appropriate Finger command, which may depend on the local machine setup. For example, on a machine running the GNU linux bash shell, assuming that <IP> is your PC's Local Host IP number (displayed on the Status window after you have started IRC or Finger), you could enter (after the Login:~$ prompt):

Login:~$ finger @<IP>

Incoming Finger requests are logged on the Status window, for example:

{Finger query} from 127.0.0.1
Local server closed Finger connection (query answered).

See also Finger Client (Menu item) and Finger Client.

Finger uses TCP port 79.

For further information, see this web site:

www.emailman.com/finger/ Archive

If you want to disable the Finger Server, uncheck the "Enable Finger Server" checkbox in the Main menu - Setup / App Settings / General tab. It is recommended that you do this for security reasons unless you actually want to use the Finger Server.

On UNIX-like operating systems, if finger finds a file named .nofinger in a user's home directory, it will, for finger requests originating outside the local host, firmly deny the existence of that user.

For Winshoe's Finger server, if a .nofinger file is present in your %APPDATA% root location (e.g. C:\Users\USERNAME\AppData\Roaming), it will respond "User not found". The .nofinger file is ignored if you are sending Finger requests to a local host address.

Back to Top

Find Dialog

When you right click on a text window and select "Find...", or enter the Control+f key combination, the Find dialog appears.

Under "Find what:" is an edit box where you can enter search words or phrases, which can include "glob" syntax, which includes useful features like using an asterisk to match any number of characters, and a '?' to match exactly one of any character.

Assuming "Match anywhere in line" is checked, "over the lazy" will match a line "fox jumped over the lazy dog".

"over" will also match the same line, but "over the lazy" will not match a line "fox jumped over the big lazy dog".

If "Match anywhere in line" is unchecked, a search for "The*" will match any line starting with "The" which may be followed by any number of characters.

A search for "The" will only match a line containing exactly "The".

A search for "*The*" will match any line containing the word "The" anywhere in the line.

The search "*over*lazy*" will match any line containing the word over followed by the word lazy with any number of characters in between.

Glob syntax provides you with a powerful search tool which includes wildcards and the ability to specify character classes, and characters from the Unicode® character set. See Search Strings and Glob Matching for further information.

The "Search settings" checkboxes do the following.

Match whole words only: You can check this box to specify that words must match exactly, beginning and ending on a word boundary, which is the start or end of a line, white space, or certain punctuation characters. When not checked, a word in your search text will match against text even if it is embedded in a larger word.

Case Sensitive: If checked, the case (upper or lower) of the text must match exactly.

Match anywhere in line: The option "Match anywhere in line" avoids the need for wrapping your search term in asterisks, to enable it to be matched anywhere in a line. This allows the search term to be matched when it is preceded or followed by any number of characters, and saves you having to add the asterisks explicitly to conform to glob syntax, when most simple word searches need this by default.

The "Dialog and window settings" checkboxes do the following.

Keep Find Dialog Open: Check this if you don't want the dialog box to disappear after you have started a search. This is useful for multiple searches. You may need to move the dialog box out of the way of the other windows to view the results.

List finds on results window: This option copies the matching lines to the Results window as well as highlighting them on the source window.

Click on the "Save Settings Now" button if you want to save the optional settings immediately. Otherwise, they will be saved only when you click Close.

Back to Top

Ctrl+k Colour Codes Dialogs

Ctrl+k Colour code dialog (mIRC mode)

The colour code dialog appears above the edit box of a server status, channel or private window when you press Ctrl+k. It provides a way to paste colour codes into the edit box. Colour codes are entered with an escape character and some numbers which specify the foreground, and/or background colours of subsequent text.

Colour codes are entered as follows:

  • Ctrl+k in a channel, server or private window edit box pastes the escape sequence that starts the colour code in the edit box.
  • Pick the foreground and/or background colours using the dialog controls.
  • Click OK to paste the rest of the colour code. Cancel will close the dialog without pasting the colour codes, but then you will need to backspace or delete the escape sequence.
  • Carry on entering your text, which should appear with the specified colours when posted.

The Ctrl+k dialog has 4 different modes, selected by radio buttons at the top. These select the format for the colour code, to conform to mIRC mode, Ircle mode, ANSI mode, or Hex mode codes. The escape code pasted into the edit control when you open the dialog was for the current colour mode setting, but if you change it, the escape sequence in the edit control should be changed automatically.

In mIRC mode, the basic colour set is on the first two rows. The block of 7 wider rows underneath represent the extended mIRC colour codes. Click on a coloured button to set the foreground colour. The code for the foreground will be previewed in the edit box labelled "Text code", with a colour sample next to it. If you hover the mouse over a colour button, a tooltip should show the foreground and background codes for the button, e.g. "FG: 0 / BG: 0", the codes being the same because the colour syntax infers foreground/background according to the order of the numbers. Click on another coloured button to set the background colour. The code for the background will be previewed in the edit box labelled "Bkgnd", with a colour sample next to it. Alternate clicks on colour buttons will set the foreground and background colours alternately, but you can select which one manually by clicking the Foreground or Background radio button. The composite colour code is previewed in the edit box labelled "Composite colour code", including the <ETX> escape character already pasted. Click OK to close the dialog and complete the colour code in the edit box.

For more information, see Control Codes.

Ctrl+k Colour code dialog (Ircle mode)

This is a palette of 42 colours including 28 base colours plus 14 further user defined system colours. The base colours are shown as 4 rows of buttons at the top left of the dialog, which represent text codes '0' to 'K', and underneath them the user defined system colours are shown in an additional 2 rows, which represent text codes 'a' to 'n'.

Ircle mode only supports setting the foreground colour. Therefore, when you click a colour button it always sets the code for the foreground to be previewed in the edit box labelled "Text code".

Ctrl+k Colour code dialog (ANSI mode)

The ANSI colours are a palette of 8 colours, which is used for both foreground and background, but the code number selects whether foreground or background colour is being specified. An attribute number of 30 to 37 selects the foreground colour, whereas an attribute number of 40 to 47 selects the background colour. The palette colours can be changed from the main menu Setup / Colours (ANSI) dialog. Thus the tooltip shown for the colour buttons gives you the different foreground and background colour codes, e.g. "FG: 30 / BG: 40".

Ctrl+k Colour code dialog (Hex mode)

With hex colour codes, you can specify any RGB colour code out of a possible 16777216 colors. Clearly the dialog can't provide a separate colour button for all of those, but to make things easier there is a 100 colour set of buttons based on the mIRC mode colours. You can use that colour in 24 bit RGB hex form, or you can select a colour from the full colour space by clicking one of the "Edit colour" buttons which will bring up a colour picker dialog for RGB colour selection, starting from the colour currently shown on the preview.

If you have a favourite hex colour that you want to save, you can use the Ctrl+t Text Snippets dialog to save it.

Back to Top

Ctrl+t Text Snippets and Text Snippets Library Dialogs

Ctrl+t Text Snippets Dialog

The text snippets dialog appears above the edit box of a server status, channel or private window when you press Ctrl+t. It provides a way to paste previously saved pieces of text into the edit box. A left click on a row selects the required snippet, which is previewed below the list. Each row in the list starts with the text snippet in the first column. Click OK to paste the snippet into the edit box, or Cancel to close the dialog without pasting. To send the text to the channel you then need to edit it if necessary, and press Enter to post the text. The text can contain anything that you would enter in the edit box, including commands (e.g. /JOIN, /WHOIS, etc.). Text snippets are convenient for storing common phrases and commands that you find useful, that can be associated with specific networks and channels, as an alternative to using the right-click popup extensions which are not filtered by network or channel so are limited to common commands and text of general use.

A quick way to use the snippets dialog is to double click on the row that you want to use, which will paste that snippet into the edit box and close the dialog.

Text Snippets Dialog (Expanded)

The text snippets dialog has extra columns that will not be visible in its default size. If you resize the dialog you will be able to view the extra columns, which show notes about the snippet (optional), window type(s) that the snippet is shown on, and network and channel filter columns. When you create a new snippet using the Ctrl+t snippets dialog, the window type is preset to the type of window whose edit box you typed Ctrl+t in. The network name is set for the associated network, and if you launched the dialog from a channel window, the channel name is automatically included. These settings by default should enable the saved snippet to be listed only in the relevant window, matching the network, and for a channel, only appearing in the same channel where you created it. Snippets saved in private windows are shown on private windows originating in the same network, but you can use the Snippets Library Editor (see below) to change the network to a wildcard if you want the snippet to appear on private windows in any network.

Right click on a row to bring up a popup menu with options to "Edit Snippet Details", "Delete Snippet", "Move this item down" (except for the bottom row), and "Move this item up" (except for the top row). Sorting columns is supported, but note that the order of the rows before you click on a column header is not preserved, unless you abandon all changes by clicking the Cancel button. The "Add a new snippet" button and the "Edit Snippet Details" right-click command bring up the same snippet editor, but for "Add a new snippet" a new entry will be created.

When you close the snippet editor dialog and return to the Ctrl+t snippets dialog after adding a new snippet or editing an existing one, you will also need to click OK on that dialog to save the snippet, but if you click Cancel, you will be prompted that the snippets data has changes; if you want to save them you can click Yes on this message box, or No to exit without saving the changes.

Add New Snippet (server status)

The "Add a new snippet" button opens this editor dialog, initialised for a new snippet entry. The dialog shows the window type where you entered Ctrl+t, i.e. server status, channel or private window. The network of the server and the channel is shown. If the window type was a server status window, the channel name will be a wildcard ("*"). If you later wish to change these filter options, you can do it in the Snippets Library Editor, but they are read-only here as this is intended to associate the snippet with the originating window to keep your snippets well organised.

The edit box labelled "Edit snippet text" is where you enter the text to be pasted in the originating window's edit box.

The edit box labelled "Edit snippet notes / description (optional)" allows you to enter a note for your own reference about the text snippet, which is not posted to the originating window.

Click OK to save the text snippet in the snippets list, or Cancel to abandon the edit without changing the list.

Add New Snippet (channel)

If you opened the Ctrl+t snippets dialog from a channel window, the "Add a new snippet" button will open the snippet editor dialog with the channel name set. After you have saved the snippet, the next time you type Ctrl+t in a channel window, this snippet will be shown if the network and channel name match. For all snippets, you can change these filter options, including setting them to wildcards, in the Snippets Library Editor.

Edit a Text Snippet (channel)

The "Edit Snippet Details" right-click command opens this editor dialog, with its entries set to the values of an existing snippet. You can then edit the snippet text and/or the description, and if you click OK to save the changes these will be updated in the original snippet.

Text Snippets Library Dialog

The Snippets Library Editor dialog is opened from the main menu: Setup / Text Snippets Library Editor. It features a list of all snippets saved by the application. To see all columns, you can resize the dialog to show them. Like the Ctrl+t snippets dialog, you can add a new snippet here (but with all filter options initially set to wildcard values).

Right click on a row to bring up a popup menu with options to "Edit Snippet Details", "Delete Snippet", "Move this item down" (except for the bottom row), and "Move this item up" (except for the top row).

Sorting columns is supported, but be absolutely sure that you want to do this, as the order of the rows before you click on a column header is not preserved, unless you abandon all changes by clicking the Cancel button.

The "Add a new snippet" button and the "Edit Snippet Details" right-click command bring up the same snippet editor, but for "Add a new snippet" a new entry will be created.

When you close the snippets library snippet editor dialog and return to the snippets library dialog after adding a new snippet or editing an existing one, you will also need to click OK on that dialog to save the snippet, but if you click Cancel, you will be prompted that the snippets data has changes; if you want to save them you can click Yes on this message box, or No to exit without saving the changes.

The notes for the displayed examples explain the effect of the window type, server and channel matching columns for each snippet.

Text Snippets Library Snippet Editor

The "Edit Snippet Details" right-click command opens this editor dialog, with its entries set to the values of an existing snippet. You can then edit the snippet text and/or the description, and if you click OK to save the changes these will be updated in the original snippet.

The Snippets Library Snippets Editor gives you the ability to change the window types on which the snippet will be displayed. You can also change the network and channel fields, to another network or channel, or enter a "*" to match any network or channel respectively. To make a snippet display on all window types, networks and channels, simply check the Channel, Server and Private checkboxes, and set the network and channel fields to "*".

Text Snippets Library Snippet Add New Snippet

The "Add a new snippet" button opens this editor dialog, initialised for a new snippet entry. As the snippets library editor is not associated with any particular window, network or channel, the Channel, Server and Private window type checkboxes are all checked, and the network and channel fields are set to "*". With these settings, the new snippet should be shown in the Ctrl+t snippets dialog on all window types, networks, channels and private windows. However, if you wish to use the snippet on a narrower basis you can of course restrict the types of windows allowed, nominate a network, and/or a specific channel.

The edit box labelled "Edit snippet text" is where you enter the text to be pasted in the originating window's edit box, when you use the Ctrl+t snippets dialog by typing Ctrl+t in the edit box of an originating window.

The edit box labelled "Edit snippet notes / description (optional)" allows you to enter a note for your own reference about the text snippet, which is not posted to the originating window.

Click OK to save the text snippet in the snippets list, or Cancel to abandon the edit without changing the list. When you close this dialog and return to the Snippets Library dialog, you will also need to click OK on that dialog to save the snippet, but if you click Cancel, you will be prompted that the snippets data has changes; if you want to save them you can click Yes on this message box, or No to exit without saving the changes.

Back to Top

Bots

Bots (short for robot) are IRC clients run by software, often using a scripting language built in to the IRC client, that can respond to messages from other channel users, and simulate user input of text and commands, and are often used by channel operators.

Bots can do simple tasks like offering up a witty quote every few minutes, listing services available, and displaying greeting messages to users after they join a channel.

Bots are often used to maintain order in channels. If you wanted to do this yourself, as channel operator, you would have to be there all the time, or organise shifts of operators around the clock... not very practical. The bot is also useful while you are there; it keeps your hands free and can respond to malicious behaviour very quickly.

A channel bot can keep a channel alive, by staying in the channel even if every user leaves. It can also automate giving op status to privileged users, de-opping, kicking or banning problem users, and serving up useful information.

Bots often perform tasks tailored to the character of a channel. For example, a cafe or bar type channel might have a bar bot that serves "drinks", and a game channel might have a bot that asks questions and keeps scores.

IRC networks often have their own bots that run common services available to all channels. For example, to register your nickname with a password so that no-one else can use the same nickname, to automate and anonymise channel kicks so that users don't see which particular operator requested the kick, or to serve up information pertinent to the topic of the channel. You might also find help information available on some networks from a HelpServ bot.

Information about network bots is often given in the servers' MOTD message. For example:

  - Current Services On-line:
  - Nickserv: Nickname Registrations
  - Chanserv: Channel Registrations
  - Memoserv: Memo Storage

For more information: https://www.irc.wiki/List_of_Services_Bots

Back to Top

Message Of The Day (MOTD)

The Message Of The Day (MOTD) is usually sent soon after you log in to an IRC server, to provide useful information about the network and the local server.

The "message of the day" (MOTD) is sent with three types of numeric reply.

RPL_MOTDSTART (375): Indicates the start of the Message of the Day.
RPL_MOTD (372): Successive lines of the MOTD body are sent using this numeric.
RPL_ENDOFMOTD (376): Marks the end of the MOTD.

The MOTD is meant to contain information in a human readable format about whatever the network administration wishes to bring to your attention. That could include identification details about the network administration, servers and ports to connect to, recommendations about channels to start with or for getting help, services available, network policies and usage disclaimers, special events, copyright notices, nicknames of system admins, and related websites.

The following example is a MOTD from IRCnet, as shown on the "Formatted" tab of the server status window:

- irc.us.ircnet.net Message of the Day - 
- 14/7/2020 16:03
- Welcome to open IRCnet server:
-        ::: :::====  :::=====      :::  === :::===
-        ::: :::  === :::           :::  === :::
-        === =======  ===           ===  ===  =====
-        === === ===  ===           ===  ===     ===
-        === ===  ===  =======       ======  ======
-                     irc.us.ircnet.net
-       Open to all users on IPv4 ports 6665-6669,7000
- ----------------------------------------------------------
- - We scan for open proxies on connect. If you do not wish
-   to be scanned, please do not connect to this server.
- - IRCnet provides no nick/channel registration services.
- - To avoid opless channels, you are encouraged to use the
-   channel reop mode +R (otherwise unfixable).
- - Usage of /list for listing all channels is deprecated.
-   Please use "/squery alis help" instead.
- 
- - Rules:
-   - We reserve the right to deny service to anyone at any
-     time and for any reason.
-   - Mass advertizing and trojan link spam is not allowed.
-   - Clients connected for the purpose of stealing
-     nicknames are not allowed.
-   - General limits (request changes via /admin):
-     -  3 clients per host   (without ident)
-     -  3 clients per person (with ident)
-     - 20 clients per /24    (IPv4)
-   - If your IP range offers services to other people
-     (e.g., shell providers) you must let us know.
-   - Limits and rules for shell providers:
-     - 3 clients per person
-     - identd is required and no ident spoofing, no
-       changing an ident after a ban, and no giving a
-       person multiple usernames
-   - Breaking these rules will result in a ban from ALL
-     open servers.
- 
- - Random open server (dns round-robin): open.ircnet.net
- - Webchat available at: https://webchat.ircnet.net/
- - If you require any further information, join #ircnet
- ----------------------------------------------------------
-              IRC is a privilege, not a right!
-        Respect others and enjoy your stay on IRCnet.
- ----------------------------------------------------------
End of MOTD command.

Viruses

Viruses (or is it Virii?), trojans, or worms, are (contained in) malicious files that can be sent to you over IRC in much the same way as they are sometimes sent as attachments to email messages. On IRC, files can be sent using the DCC protocol, which WinShoe does not support. Therefore you can not receive an infected file. Users may sometimes send you a request to send a file, which may show up in the server status window, or a notice window. You can ignore these, and close the private message window. These viruses, trojans or worms often operate without users' knowledge so do not attack them personally. If the message is repeated, try the /SILENCE command, which suppresses private messages at the server, but won't stop the user's chat in the channel.

An example of a malicious DCC message, requesting to send a common type of infected file, appearing as a notice in a private message window:

  <some_nick> DCC Send LOVE-LETTER-FOR-YOU.HTM (203.135.**.**)

Example of DCC requests to send files carrying viruses appearing in the status window:

Using a NOTICE command:
  :some_nick!~user001@203.135.**.** NOTICE WinShoe_ :DCC Send LOVE-LETTER-FOR-YOU.HTM (203.135.**.**)

Using a PRIVMSG command:
  :some_nick!~user001@203.135.**.** PRIVMSG WinShoe_ :DCC SEND LOVE-LETTER-FOR-YOU.HTM 3414631237 4717 16136

Another ploy is the fake warning, which may be an ordinary notice or channel text, for example:

  <nick> !!!WARNING!!! You attempted to send me file **********************.jpg.vbs Please download ************* from ***************************** to remove this virus from your system.

Ignore messages like this, or go to an advice channel- it may be a trick to get you to download an infected file by opening a URL using your web browser or other software.

For help with advice to IRC users on virus removal, IRChelp.org has a web page dedicated to IRC security issues:

http://www.irchelp.org/security/

You should always ensure that you have anti-malware protection for your computer. For further information, please see the following:

Article on removing malware with links to malware scanners at PC World (IDG, U.S.)

List of anti-malware product removal tools on Microsoft community

Note: "nohack.net" listed in an earlier version of this help file appears to have been compromised - do not visit.

Back to Top

Winshoes for Delphi

Q."Whatever happened to Winshoes, the open source internet component suite of popular internet protocols for Delphi?"

A You are looking in the wrong place- WinShoe is completely unrelated to WinShoes (its internet components originated with my reading of "Windows Sockets Network Programming", 1st Edition, by Bob Quinn and Dave Shute, 1996). In fact, the Delphi suite is now known as Indy. Please refer to the following links:

"Winshoes was the predecessor to Indy and was the name until version 8.0 when it was officially changed to Indy. With version 8, Indy began to support Linux and thus the need to remove "Win" from Winshoes."
Wayback machine archive of www.indyproject.org/kb/index.html?whatiswinshoes.htm

"The Indy Project is an Open Source group that supports several projects that grew out of the original Indy.Sockets (VCL) project team."
Wayback machine archive of www.indyproject.org:80/index.en.aspx

Back to Top

Trademark Policy and Bug Reports

Trademark Policy

Trademarks mentioned here include the following.

Any trademarks mentioned are recognised as being the property of their respective owners. If I have forgotten any that should be in this list, or if you notice any trademark cited incorrectly here, please let me know via the contact web page as described under "Bug Reports" below.

Linux®

Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
https://www.linuxfoundation.org/about/linux-mark/

mIRC

mIRC is a registered trademark of the Company (mIRC Co. Ltd.).
The mIRC logo is a trademark of the Company.

Windows

A registered trademark of Microsoft Corporation.
Microsoft Trademarks

ANSI

A registered trademark of the American National Standards Institute.
ANSI Logo & Mark Use

Unicode®

Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the United States and other countries.
The Unicode Consortium Name and Trademark Usage Policy

OpenSSL

The OpenSSL trademark is a registered United States trademark of the OpenSSL Software Foundation.
OpenSSL Trademark Policy

Bug Reports

Feedback about your experience with this application, suggestions for improvements, and bug reports should any problems occur, are always welcome, and can be reported using the contact information form at http://www.colinjs.com/contact.htm.

Back to Top

Privacy

WinShoe does not collect any personal information for telemetry or data collection outside of your own personal computer or portable installation. WinShoe does not send anything over the internet other than that which you choose to send yourself, using the Finger, Ident, and IRC services described.

Back to Top

IRCD Server/Simulator (IRCDSS)

Access level test examples given here were tested using the IRCD Server/Simulator (IRCDSS) software, which is a freeware IRCD server and simulator for Windows 7 or later, mimics the behaviour of commonly used IRC server networks, runs locally on your PC as IRC server localhost, and provides pre-defined channels with simulated users, and enables you to freely use IRC operator and Channel operator features. It can also be downloaded from http://www.colinjs.com/software.htm.