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 |
5147 |
--prefix Sets the root of HOPM's install. By default this |
18 |
michael |
5060 |
is $HOME/hopm, with binaries going in |
19 |
michael |
5360 |
$HOME/hopm/bin, config in $HOME/hopm/etc and logs |
20 |
|
|
in $HOME/hopm/var. |
21 |
michael |
5052 |
|
22 |
michael |
5147 |
--bindir Specify the place to install binaries. By default |
23 |
michael |
5052 |
this is $PREFIX/bin. (see --prefix, above) |
24 |
|
|
|
25 |
|
|
--localstatedir Specify the place where logs and PID files will be |
26 |
michael |
5147 |
kept. By default this is $PREFIX/var. (see |
27 |
michael |
5360 |
--prefix, above) |
28 |
michael |
5052 |
|
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 |
michael |
5147 |
configure at some point. If you think you need to change these then we |
34 |
michael |
5052 |
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 |
5147 |
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 |
michael |
5147 |
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 |
5147 |
the first part of a connection. If you're not sure, the best thing to do |
48 |
michael |
5052 |
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 |
michael |
5147 |
checking, etc.) then you're going to have to use a bit of ingenuity. You |
64 |
michael |
5052 |
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 |
michael |
5147 |
NNTP servers are good examples because they give a banner. Don't be |
68 |
michael |
5052 |
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 |
michael |
5147 |
banner at all (ircnet??). Worst case is you'll need to make something |
74 |
michael |
5052 |
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 |
michael |
5147 |
port like 8080! If you can, put a banner in that contains your own |
78 |
michael |
5052 |
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 |
5147 |
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 |
michael |
5147 |
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 |
5147 |
myserver.log and write PID to myserver.pid. If you do not use -c, the |
94 |
|
|
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 |
michael |
5147 |
Further debugging can be enabled by using one or more -d switches. One or |
99 |
michael |
5052 |
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 |
michael |
5147 |
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 |
michael |
5052 |
enable logging of all IRC traffic received and sent. |
104 |
|
|
|
105 |
|
|
The -c and -d arguments may appear in any order. |