     [file version.texi not included]

This is the Muh manual.

Copyright (C) 2002 Sebastian Kienzl

Muh Manual
**********

This is Edition EDITION of the Muh Manual, last updated UPDATED.

What is an irc-bouncer?
***********************

A bouncer doesn't do anything else than diverting a network-connection.

In case of an irc-bouncer, connections from your irc-program (client) are diverted by the bouncer to a irc-server.

"What is this good for?", you might ask.

Well, let's assume you've got a dialup-connection. If somebody performs a /WHOIS on you it shows something like "yournick is yournick!yourident@dialup66-r-v.isp.at".

If you are vain you don't want people to see this stupid hostname. So you get a account on a machine with a cool hostname (from now on refered as middleman), get Muh running there and a /whois on you will show middleman's hostname, since the connection to the irc-server is actually originating from middleman.

Another advantage is that network-attacks aren't really destinating to YOUR computer but to middleman, which is in theory a machine that can't be brought down.

What makes Muh special over other bouncers?
*******************************************

Muh is very straight and simple to set up and the probably most important and interesting feature is that Muh keeps the middleman-->irc-server connection up even after you disconnect with your client.

This means Muh prevents people from using your nick (this is especially handy on nets like ircnet, since there are no services like on dalnet etc) and tells people who message you that you're not here and logs what these people said.

Upon your next connect to Muh, it will let the channels you've been in in your last session pop up, which means that you'll keep your status in these channels!

Besides that Muh's got a very enhanced flood-protection making it (almost) impossible to disconnect Muh.

Copyright
*********

Muh has been written by Sebastian Kienzl zap "at" riot.org and others. Muh is licensed under the GPL. See COPYING for details.

Command Line Options
********************

-f
     Stay in foreground (don't fork)

-d directory
     Specifies a different directory than the default for muhrc, messages and log

-c
     You will be prompted for a word to crypt. The output can be used as "password" in muhrc if you don't wanna have the password stored in clear text. Note that you'll still have to authorize with the unencrypted password.

Muh Commands
************

Muh accepts following commands to be issued by the client via /MUH <command>.

Note that some irc-clients might require a prefix such as /QUOTE or /RAW to send commands they don't know about.

HELP
     Display supported commands

READ
     Read received messages

DEL
     Delete all messages

PRINT
     Prints Muh's server-list. Servers prefixed with '+' work, those with '-' don't.

JUMP [servernumber]
     Jump to next server in serverlist. if [servernumber] (see PRINT) is specified, Muh will jump to this server (even if marked as not working).

REHASH
     Reread config-file. Note that this can also be performed by sending a SIGHUP to Muh (see kill(1)). If "realname" or "username" have been changed Muh will reconnect to it's current server.

DIE
     Terminate Muh.

Installation
************

Create a .muh/-directory in your homedir and copy muhrc there (it will propably reside in /usr/share/muh, depending on your os/distribution).

Edit muhrc, make sure noone except you has read-access and launch Muh.

To make sure Muh's running all day there is a script called check-muh that came with muh. Edit it as well and make crontab(5) call it periodically.

Muhrc Commands
**************

There are numerous commands with which you can extensively customize Muh's behaviour. The must be placed in the muhrc that muh reads on startup, it is usually $HOME/.muh/muhrc.

Required settings
*****************

nickname <string>
     The nickname muh will use on IRC. If it is occupied it will switch to the alternate nickname and will periodically attempt to get that nick.

altnickname <string>
     Alternative nickname if nickname configured with nickname is occupied. If this one is occupied as well muh will use a random nickname.

realname <string>
     Your name on IRC as shown by the /WHOIS-command.

username <string>
     Your Unix-username. If there is no identd running on your site this username will be used.

listenport <int>
     This is the port on which Muh will wait for connects: Use this as the port to connect to in your IRC-Client.

password <string>
     This is the password that protects your Muh-session. If it is exactly 13 characters in length Muh assumes it is crypted. Try muh -c to get a crypted version of your password.

servers <serverlist>
     Put all of Muh's IRC-Servers here. It will cycle through the list.

Optional settings
*****************

logging <boolean>: true
     Log messages that other users send you while you are not connected?

leave <boolean>: true
     Leave all the channels you're in when you disconnect your IRC-client from Muh?

leavemsg <string>: empty
     This string will be sent as an action to all the channels you're in when you disconnect your client.

away <string>: empty
     If you're not connected people messaging you will receive this string once.

getnick <boolean>: true
     Attempt to get the nickname specified with nick if occupied?

nevergiveup <boolean>: false
     If set then Muh will never stop trying to connect to a server, otherwise it will terminate if there is no functional IRC-server left.

rejoin <boolean>: false
     Rejoin the channels Muh was in after changing IRC-server?

bind <hostname>: none
     Bind to another IP than the default? This is commonly referred as the VHOST. (todo: ipv6)

antiidle <boolean>: false
     If set then the IRC-idle-time will get reset every ten minutes by sending a dummy-message.

norestricted <boolean>: false
     Muh won't tolerate a restricted (+r) connection. If a connection gets restricted Muh will jump to the next IRC-server available.

forwardmsg <string>: none
     If set Muh will collect the messages it has received within 3 minutes and pipe them to the program specified here.

hosts <permissionlist>: all allowed
     List the hosts that are allowed to connect to Muh here. Notice that the default-match is always true so you need to explicitly forbid all other hosts at the very end of your list. Muh always tries to match both the IP and the hostname.

people <permissionlist>: all allowed
     List the people (IRC-hostmask style) that are allowed to send you private messages. Default-match is always true.

dccbounce <boolean>: false
     Also bounce all DCC's? Keep in mind that if you send/receive files that the data will go through the site Muh is running on. MIRC-Style resumes work as well.

dccbindclient <string>: empty
     Bind passive DCC's to another IP than the default. This is usually only needed in delicate network-environments and you'll definitely know when this is fance.

logfull <boolean>: false
     Log all channel-, server- and private traffic to log files? This might get you many big files - but you have something to read when everybody else is idle.

logfilenametemplate <string>: empty
     obsolete?

logtimestamptemplate <string>: [%a %d %b %H:%M:%S]
     obsolete?