aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL
blob: 60384e88a710ac5b6ee2ded327448e704f6303da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Make
----

    Quick Start:

    1. ./configure
    2. make
    3. make install
    4. cd $HOME/hopm
    5. edit $HOME/hopm/etc/hopm.conf to suit
    6. $HOME/hopm/bin/hopm

    In detail:

    ./configure has a few options which you might need:

    --prefix            Sets the root of HOPM's install. By default this
                        is $HOME/hopm, with binaries going in
                        $HOME/hopm/bin, config in $HOME/hopm/etc and logs
                        in $HOME/hopm/var/log.

    --bindir            Specify the place to install binaries. By default
                        this is $PREFIX/bin. (see --prefix, above)

    --localstatedir     Specify the place where logs and PID files will be
                        kept. By default this is $PREFIX/var. (see
                        --prefix, above)

    configure has many other options, see ./configure --help for more
    details.

    There are some further options in options.h which may be moved to
    configure at some point. If you think you need to change these then we
    assume you've read the code and know why.

    Compilation of HOPM requires GNU Make (usually 'gmake' on BSD systems).

Configuration
-------------

    Edit hopm.conf as needed. Most options are self explanatory and
    contain a short description.

    Please take note of the target_string which may be different for your ircd.
    Because we check that we really have connected back onto IRC, HOPM needs to
    be told what your ircd says during the first part of a connection. If you're
    not sure, the best thing to do is telnet to your ircd from your shell, e.g.:

      [miwob@svn ~]$ telnet irc.ircd-hybrid.org 6667
      Trying 104.254.244.55...
      Connected to irc.ircd-hybrid.org (104.254.244.55).
      Escape character is '^]'.
      :irc.ircd-hybrid.org NOTICE * :*** Looking up your hostname
      :irc.ircd-hybrid.org NOTICE * :*** Checking Ident
      :irc.ircd-hybrid.org NOTICE * :*** No Ident response
      :irc.ircd-hybrid.org NOTICE * :*** Found your hostname

    Just try to pick something in the first line of IRC output (for efficiency
    reasons).

    If you don't run an ircd at all (some people are using bopchecker for spam
    checking, etc.) then you're going to have to use a bit of ingenuity. You
    basically need any port on your own machine that responds with a plain text
    challenge that is unlikely to appear anywhere else.

    NNTP servers are good examples because they give a banner. Don't be
    tempted to use port 25 (SMTP) because although it looks like just what you
    want, too many networks transparent proxy outgoing port 25 connections to
    their own smart host, so you'll miss many proxies.

    The same applies if you run some kind of ircd that has no form of
    banner at all (ircnet??). Worst case is you'll need to make something
    listen on one of your ports that gives some predictable string.

    Remember that your users might run their own ircd on some typical proxy
    port like 8080! If you can, put a banner in that contains your own
    server name, so that it is unlikely to be duplicated.


Execution
---------

    You can run HOPM from any directory, the path to its config file is
    compiled into it. The bot will fork and connect to the IRC server
    immediately. Any errors and debug information can be found in
    $PREFIX/var/log/hopm.log.

    You can tell HOPM to use a different config file with the -c argument,
    this works the same way that wgmon's -c argument does, just give the name
    of the config file not including the ".conf". This also affects the log
    and PID files i.e. ./hopm -c myserver will read from myserver.conf, log to
    myserver.log and write PID to myserver.pid. If you do not use -c, the
    files hopm.conf, hopm.log and hopm.pid will be used by default. This can
    be altered in options.h. This is useful for running multiple HOPM on
    the same host.

    Further debugging can be enabled by using one or more -d switches. One or
    more -d switches will cause the bot to not fork on startup, and it will
    send all log messages to stderr (i.e., your terminal) instead of its
    logfile. It will also cause extra debugging information that is not
    normally of interest to be sent to stderr. Two or more -d switches will
    enable logging of all IRC traffic received and sent.

    The -c and -d arguments may appear in any order.