aboutsummaryrefslogtreecommitdiff
README(7) FreeBSD Miscellaneous Information Manual README(7)

pounce
IRC pouncer :3

pounce(1) is a multi-client, TLS-only IRC bouncer. It takes a simple approach, using a multiple-consumer ring buffer and the IRCv3.2 server-time extension to communicate with clients.

As a former znc(1) user, I was dissatisfied with the multi-client experience it offered. I wanted to connect from both my laptop and my phone and have full chat history on both. With znc(1), my options were either having both clients spammed with redundant history every time they connect, or having one client consume the buffer and the other get no history at all.

With a multiple-consumer ring buffer, each client has its own place in the history and can be brought up to date independently. Additionally, by expecting clients to implement the server-time extension, all events can be accurately replayed, rather than being limited to messages.

pounce requires LibreSSL (-ltls) and primarily targets FreeBSD, as well as macOS and Linux. On FreeBSD, processes are sandboxed with capsicum(4). On other systems, who knows what might happen?
./configure
make all
sudo make install PREFIX=/usr/local

If your system installs LibreSSL in a non-standard path, set PKG_CONFIG_PATH for ./configure. For example,

PKG_CONFIG_PATH=/opt/libressl/lib/pkgconfig ./configure

bounce.h
declarations and common functions
bounce.c
configuration and event loop
local.c
local server binding
server.c
remote server connection
client.c
remote client connections
state.c
state shared between clients
ring.c
buffer between server and clients
config.c
getopt_long(3)-integrated configuration parsing
dispatch.c
SNI socket dispatch
compat.h
compatibility with lesser operating systems
rc.d/
FreeBSD rc(8) scripts

The upstream URL of this project is ⟨https://git.causal.agency/pounce⟩. I'm happy to receive contributions in any form at <june@causal.agency>. For sending patches by email, see ⟨https://git-send-email.io⟩.

calico(1), pounce(1)

Central logging with full-text search: litterbox

March 1, 2020 Causal Agency