| 1 |
michael |
5052 |
Make |
| 2 |
|
|
---- |
| 3 |
|
|
|
| 4 |
|
|
Quick Start: |
| 5 |
|
|
|
| 6 |
|
|
1. ./configure |
| 7 |
|
|
2. make |
| 8 |
|
|
3. make install |
| 9 |
michael |
5060 |
4. cd $HOME/hopm |
| 10 |
|
|
5. edit $HOME/hopm/etc/hopm.conf to suit |
| 11 |
|
|
6. $HOME/hopm/bin/hopm |
| 12 |
michael |
5052 |
|
| 13 |
|
|
In detail: |
| 14 |
|
|
|
| 15 |
|
|
./configure has a few options which you might need: |
| 16 |
|
|
|
| 17 |
michael |
5060 |
--prefix Sets the root of HOPM's install. By default this |
| 18 |
|
|
is $HOME/hopm, with binaries going in |
| 19 |
|
|
$HOME/hopm/bin, config in $HOME/hopm/etc and logs |
| 20 |
|
|
in $HOME/hopm/var. |
| 21 |
michael |
5052 |
|
| 22 |
|
|
--bindir Specify the place to install binaries. By default |
| 23 |
|
|
this is $PREFIX/bin. (see --prefix, above) |
| 24 |
|
|
|
| 25 |
|
|
--localstatedir Specify the place where logs and PID files will be |
| 26 |
|
|
kept. By default this is $PREFIX/var. (see |
| 27 |
|
|
--prefix, above) |
| 28 |
|
|
|
| 29 |
|
|
configure has many other options, see ./configure --help for more |
| 30 |
|
|
details. |
| 31 |
|
|
|
| 32 |
|
|
There are some further options in options.h which may be moved to |
| 33 |
|
|
configure at some point. If you think you need to change these then we |
| 34 |
|
|
assume you've read the code and know why. |
| 35 |
|
|
|
| 36 |
michael |
5060 |
Compilation of HOPM requires GNU Make (usually 'gmake' on BSD systems). |
| 37 |
michael |
5052 |
|
| 38 |
|
|
Configuration |
| 39 |
|
|
------------- |
| 40 |
|
|
|
| 41 |
michael |
5060 |
Edit hopm.conf as needed. Most options are self explanatory and |
| 42 |
michael |
5052 |
contain a short description. |
| 43 |
|
|
|
| 44 |
|
|
Please take note of the target_string, this is new in version 2 onward and may be |
| 45 |
|
|
different for your ircd. Because we now check that we really have |
| 46 |
michael |
5060 |
connected back onto IRC, HOPM needs to be told what your ircd says during |
| 47 |
michael |
5052 |
the first part of a connection. If you're not sure, the best thing to do |
| 48 |
|
|
is telnet to your ircd from your shell, e.g.: |
| 49 |
|
|
|
| 50 |
michael |
5104 |
[miwob@svn ~]$ telnet irc.ircd-hybrid.org 6667 |
| 51 |
|
|
Trying 74.208.44.181... |
| 52 |
|
|
Connected to irc.ircd-hybrid.org (74.208.44.181). |
| 53 |
michael |
5052 |
Escape character is '^]'. |
| 54 |
michael |
5104 |
:irc.ircd-hybrid.org NOTICE * :*** Looking up your hostname |
| 55 |
|
|
:irc.ircd-hybrid.org NOTICE * :*** Checking Ident |
| 56 |
|
|
:irc.ircd-hybrid.org NOTICE * :*** No Ident response |
| 57 |
|
|
:irc.ircd-hybrid.org NOTICE * :*** Found your hostname |
| 58 |
michael |
5052 |
|
| 59 |
|
|
Just try to pick something in the first line of IRC output (for efficiency |
| 60 |
|
|
reasons). |
| 61 |
|
|
|
| 62 |
|
|
If you don't run an ircd at all (some people are using bopchecker for spam |
| 63 |
|
|
checking, etc.) then you're going to have to use a bit of ingenuity. You |
| 64 |
|
|
basically need any port on your own machine that responds with a plain text |
| 65 |
|
|
challenge that is unlikely to appear anywhere else. |
| 66 |
|
|
|
| 67 |
|
|
NNTP servers are good examples because they give a banner. Don't be |
| 68 |
|
|
tempted to use port 25 (SMTP) because although it looks like just what you |
| 69 |
|
|
want, too many networks transparent proxy outgoing port 25 connections to |
| 70 |
|
|
their own smart host, so you'll miss many proxies. |
| 71 |
|
|
|
| 72 |
|
|
The same applies if you run some kind of ircd that has no form of |
| 73 |
|
|
banner at all (ircnet??). Worst case is you'll need to make something |
| 74 |
|
|
listen on one of your ports that gives some predictable string. |
| 75 |
|
|
|
| 76 |
|
|
Remember that your users might run their own ircd on some typical proxy |
| 77 |
|
|
port like 8080! If you can, put a banner in that contains your own |
| 78 |
|
|
server name, so that it is unlikely to be duplicated. |
| 79 |
|
|
|
| 80 |
|
|
|
| 81 |
|
|
Execution |
| 82 |
|
|
--------- |
| 83 |
|
|
|
| 84 |
michael |
5060 |
You can run HOPM from any directory, the path to its config file is |
| 85 |
michael |
5052 |
compiled into it. The bot will fork and connect to the IRC server |
| 86 |
|
|
immediately. Any errors and debug information can be found in |
| 87 |
michael |
5060 |
$PREFIX/var/hopm.log. |
| 88 |
michael |
5052 |
|
| 89 |
michael |
5060 |
You can tell HOPM to use a different config file with the -c argument, |
| 90 |
michael |
5052 |
this works the same way that wgmon's -c argument does, just give the name |
| 91 |
|
|
of the config file not including the ".conf". This also affects the log |
| 92 |
michael |
5060 |
and PID files i.e. ./hopm -c myserver will read from myserver.conf, log to |
| 93 |
michael |
5052 |
myserver.log and write PID to myserver.pid. If you do not use -c, the |
| 94 |
michael |
5060 |
files hopm.conf, hopm.log and hopm.pid will be used by default. This can |
| 95 |
|
|
be altered in options.h. This is useful for running multiple HOPM on |
| 96 |
michael |
5052 |
the same host. |
| 97 |
|
|
|
| 98 |
|
|
Further debugging can be enabled by using one or more -d switches. One or |
| 99 |
|
|
more -d switches will cause the bot to not fork on startup, and it will |
| 100 |
|
|
send all log messages to stederr (i.e., your terminal) instead of its |
| 101 |
|
|
logfile. It will also cause extra debugging information that is not |
| 102 |
|
|
normally of interest to be sent to stderr. Two or more -d switches will |
| 103 |
|
|
enable logging of all IRC traffic received and sent. |
| 104 |
|
|
|
| 105 |
|
|
The -c and -d arguments may appear in any order. |