mirror of
https://github.com/tiyn/ii.git
synced 2026-02-22 06:34:48 +01:00
Compare commits
2 Commits
59eb95d710
...
33583287cc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33583287cc | ||
|
|
4b751dae73 |
73
CHANGES
Normal file
73
CHANGES
Normal file
@@ -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
README
Normal file
92
README
Normal file
@@ -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.
|
||||||
Reference in New Issue
Block a user