2014-06-14 20:26:28 +02:00
|
|
|
ZyklonB
|
|
|
|
=======
|
|
|
|
|
|
|
|
`ZyklonB' is an experimental IRC bot, building upon the concept of my other
|
|
|
|
VitaminA IRC bot. The main characteristic of these two bots is that they run
|
|
|
|
plugins as coprocesses, which allows for enhanced reliability and programming
|
|
|
|
language freedom.
|
|
|
|
|
|
|
|
While originally intended to be a simple C99 rewrite of the original bot, which
|
|
|
|
was written in the GNU dialect of AWK, it fairly quickly became a playground
|
|
|
|
where I added everything that seemed nice.
|
|
|
|
|
2014-07-09 01:54:50 +02:00
|
|
|
kike
|
|
|
|
----
|
|
|
|
Also included is a simple IRC daemon that mostly follows the RFC's but is
|
2014-08-04 00:33:06 +02:00
|
|
|
limited to single-server networks, due to the protocol being incredibly ugly and
|
|
|
|
tricky to implement correctly (the poor quality of the RFC's doesn't help). It
|
|
|
|
is designed for use as a regular user application rather than a system daemon.
|
2014-07-21 05:10:25 +02:00
|
|
|
|
2014-08-09 23:57:54 +02:00
|
|
|
It is complete enough to be useful but there are still some things that need to
|
|
|
|
be resolved before I can consider it stable.
|
2014-07-21 05:10:25 +02:00
|
|
|
|
2014-08-10 03:47:50 +02:00
|
|
|
Some interesting features:
|
|
|
|
- SSL/TLS autodetection
|
|
|
|
- IRCop authentication through SSL/TLS client certificates
|
|
|
|
- epoll support on Linux
|
|
|
|
- superfast build time, small memory footprint
|
|
|
|
|
2014-07-21 05:10:25 +02:00
|
|
|
Building and Running
|
|
|
|
--------------------
|
2014-08-18 22:44:59 +02:00
|
|
|
Build dependencies: openssl, clang, pkg-config, GNU make, awk, sh
|
2014-07-21 05:10:25 +02:00
|
|
|
|
|
|
|
If you don't have Clang, you can edit the Makefile to use GCC or TCC, they work
|
|
|
|
just as good. But there's no CMake support yet, so I force it in the Makefile.
|
|
|
|
|
|
|
|
$ git clone https://github.com/pjanouch/ZyklonB.git
|
|
|
|
$ make
|
|
|
|
|
|
|
|
That is all, no installation is required, or supported for that matter.
|
|
|
|
|
|
|
|
First you might want to generate a configuration file:
|
|
|
|
$ ./zyklonb --write-default-config
|
|
|
|
$ ./kike --write-default-config
|
|
|
|
|
|
|
|
After making any necessary edits to the file (there are comments to aid you in
|
|
|
|
doing that), simply run the appropriate program with no arguments:
|
|
|
|
$ ./zyklonb
|
|
|
|
$ ./kike
|
|
|
|
|
|
|
|
ZyklonB stays running in the foreground, so I recommend launching it inside
|
|
|
|
a Screen or tmux session. kike, on the other hand, immediately forks into the
|
|
|
|
background. Use something like `killall' if you want to terminate it.
|
2014-07-09 01:54:50 +02:00
|
|
|
|
2014-08-08 01:26:56 +02:00
|
|
|
Client Certificates
|
|
|
|
-------------------
|
|
|
|
`kike' uses SHA1 fingerprints of SSL client certificates to authenticate users.
|
2014-08-13 19:22:43 +02:00
|
|
|
To get the fingerprint from a certificate file in the required form, use:
|
|
|
|
$ openssl x509 -in public.pem -outform DER | sha1sum
|
2014-08-08 01:26:56 +02:00
|
|
|
|
2014-07-09 01:54:50 +02:00
|
|
|
Disclaimer
|
|
|
|
----------
|
|
|
|
I am not an antisemitist, I'm just being an offensive asshole with the naming.
|
2014-07-21 05:10:25 +02:00
|
|
|
And no, I'm not going to change the names.
|
2014-07-09 01:54:50 +02:00
|
|
|
|
2014-06-14 20:26:28 +02:00
|
|
|
License
|
|
|
|
-------
|
|
|
|
`ZyklonB' is written by Přemysl Janouch <p.janouch@gmail.com>.
|
|
|
|
|
|
|
|
You may use the software under the terms of the ISC license, the text of which
|
|
|
|
is included within the package, or, at your option, you may relicense the work
|
|
|
|
under the MIT or the Modified BSD License, as listed at the following site:
|
|
|
|
|
|
|
|
http://www.gnu.org/licenses/license-list.html
|