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