| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
33583287cc
|
Create README | 2 days ago |
|
|
4b751dae73
|
Create CHANGES | 2 days ago |
@ -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 |
||||
@ -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. |
||||