74 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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.
 | 
						|
 | 
						|
kike
 | 
						|
----
 | 
						|
Also included is a simple IRC daemon that mostly follows the RFC's but is
 | 
						|
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.
 | 
						|
 | 
						|
It is complete enough to be useful but there are still some things that need to
 | 
						|
be resolved before I can consider it stable.
 | 
						|
 | 
						|
Some interesting features:
 | 
						|
 - SSL/TLS autodetection
 | 
						|
 - IRCop authentication through SSL/TLS client certificates
 | 
						|
 - epoll support on Linux
 | 
						|
 - superfast build time, small memory footprint
 | 
						|
 | 
						|
Building and Running
 | 
						|
--------------------
 | 
						|
Build dependencies: openssl, clang, pkg-config, make, awk, sh
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
Client Certificates
 | 
						|
-------------------
 | 
						|
`kike' uses SHA1 fingerprints of SSL client certificates to authenticate users.
 | 
						|
To get the fingerprint from a certificate file in the required form, use:
 | 
						|
 $ openssl x509 -in public.pem -outform DER | sha1sum
 | 
						|
 | 
						|
Disclaimer
 | 
						|
----------
 | 
						|
I am not an antisemitist, I'm just being an offensive asshole with the naming.
 | 
						|
And no, I'm not going to change the names.
 | 
						|
 | 
						|
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
 |