2 Commits

Author SHA1 Message Date
  Marten 33583287cc
Create README 2 days ago
  Marten 4b751dae73
Create CHANGES 2 days ago
2 changed files with 165 additions and 0 deletions
Unified View
  1. +73
    -0
      CHANGES
  2. +92
    -0
      README

+ 73
- 0
CHANGES

@ -0,0 +1,73 @@
1.8 (2018-02-04):
- prevent nick collisions by only setting the nick after the server
accepted it and print a message about change to server log.
- remove query.sh.
- add OpenBSD pledge(2) support.
- fix QUIT message string.
- raw IRC output to stdout.
- add quit command (/q [string]).
- write timestamp in outfile as UNIX timestamp (UTC+0).
- server host (-s) doesn't default to irc.freenode and is now required.
- add option (-u) to connect directly to a UNIX domain socket, this
is useful for tunneling connections.
- remove "in" file when leaving a channel (enabled commented code).
- remove "in" files on exit.
- use IRC_MAX (512), instead of PIPE_BUF (4096) on most systems.
PIPE_BUF is guaranteed to be atleast 512 bytes for atomic operations.
- Makefile: always be verbose.
- use C99 and -D_DEFAULT_SOURCE
- remove obsolete gethostbyname, use getaddrinfo.
- IPV6 support.
- timeout now uses separate exit statuscode 2.
- cleanup:
- use arg.h for command-line option parsing.
- use sbase util functions (estrtol, eprintf).
- use and import OpenBSD strlcpy().
- man page typos.
- style:
- linewrap to 79 characters.
- coding style fixes.
- non-roman numerals for LICENSE period.
1.7 (2013-01-05)
- -k now specifies an environment variable that contains the
server key. This behaviour has been changed in order to not
expose the password in the process list.
- Fix parsing of JOIN messages for certain servers.
Thanks Ivan Kanakarakis!
- Use , rather than _ for slash characters in channel names.
As per RFC , is not allowed in a channel name, while _ is.
Thanks plomplomplom and Nils Dagsson Moskopp!
1.6 (2011-01-31):
- fix regression introduced for handling unknown commands
1.5 (2011-01-24):
- fix channel name comparison in add_channel(), compare lowercase
to prevent leaking file descriptors in the long run => Thanks samurai!
- only handle commands ii explicitely understands and treat the rest
as raw irc (only worked for raw commands in capital lettersin the past) => Thanks samurai!
- create in FIFO on receiving a privmsg directly instead of requiring a new
/j command first => Thanks Evan Gates
this also implies that in FIFOs aren't deleted on channel leaves any longer because
this itself creates a channel event again which in turn would recreate the file
- minor changes
1.4 (2008-08-09):
- fix directory traversal on servers that support SAJOIN
NOTE: not marking as security relevant as it is only possible to
create directories outside (which is of course annoying) of the irc
hierarchy but not overwriting arbitrary files with the channel name.
- documentation fixes
- general cleanup
1.3 (2007-07-14):
- server messages about users (QUIT,JOIN) will no longer
go to the user directories but to the server out file to
give an easy method to monitor it and to prevent spamming
the irc directory.
1.2 (2007-06-23):
- Exit on channel creation failure, thanks Michael Prokop
- Implemented joining of password protected channels
- Removed -v option from the manpage since it's not implemented

+ 92
- 0
README

@ -0,0 +1,92 @@
Abstract
--------
ii is a minimalistic FIFO and filesystem based IRC client. It creates an irc
directory tree with server, channel and nick name directories. In every
directory a FIFO file (in) and normal file (out) is placed.
The in file is used to communicate with the servers and the out files include
the server messages. For every channel and every nick name there will be new in
and out files.
The basic idea of this is to be able to communicate with an IRC server with
standard command line tools. For example if you want to join a channel just do
echo "/j #channel" > in and ii creates a new channel directory with in and out
file.
Installation
------------
Edit config.mk to match your local setup. ii is installed into
/usr/local by default.
Afterwards enter the following command to build and install ii (if
necessary as root):
$ make clean install
Running ii
------------
Simply invoke the 'ii' command with required arguments
To make ii a bit more comfortable use it in combination with the multitail
program and for example with vim. Run vim in the server directory and use
key mapping like:
map w1 :.w >> \#ii/in<cr>
map w2 :.w >> \#wmii/in<cr>
to post to channels.
If you use the next editor line for a new posting you can use ctrl-p for nick
completion if you wrote the nick in the past.
Thanks to Matthias Kopfermann for this hint.
You can find an example of how this nested environment could look like on:
http://nion.modprobe.de/blog/archives/440-Using-the-ii-irc-client.html
SSL/TLS support
---------------
Below is an example using OpenBSD relayd which sets up a TCP TLS relay
connection on localhost. A similar setup can be accomplished using
stunnel or netcat with TLS support. This also works for other programs
that don't support TLS natively.
/etc/relayd.conf:
table <freenode> { irc.freenode.net }
table <oftc> { irc.oftc.net }
protocol "irctls" {
tcp { nodelay, sack }
}
relay "freenode" {
listen on 127.0.0.1 port 6668
protocol "irctls"
forward with tls to <freenode> port 6697
}
relay "oftc" {
listen on 127.0.0.1 port 6669
protocol "irctls"
forward with tls to <oftc> port 6697
}
Then connect:
./irc -n nick -u name -s 127.0.0.1 -p 6668
./irc -n nick -u name -s 127.0.0.1 -p 6669
Configuration
-------------
No configuration is needed.
Changelog
---------
Since I missed the chance to add a proper changelog right from the beginning,
please have a look at the commit messages on http://git.suckless.org/ii/
they are fairly descriptive on releases prior to 1.2.

Loading…
Cancel
Save