Age | Commit message (Collapse) | Author |
|
Nothing but the TLS handshake is required, so skip all other setup.
On OpenBSD, unveil() handling needs fixing which will involve code
reshuffling -- this is the first related but standalone step.
Also pledge this one-off code path individually such with simpler and
tighter promises while here.
|
|
Oops!
|
|
The (not perfectly obvious) way catgirl crafts directories gets triggered
by unveilAll() even if no passed option requires filesystem access:
$ env -i TERM=xterm ./catgirl -h irc.hackint.eu -R -n nobody
catgirl: HOME unset
Here unveil(2) is used due to the "restrict" option, but besides terminfo(5)
and certificates catgirl does not need any other files, yet it tries to init
the data path -- passing XDG_DATA_HOME=/var/empty makes above invocation work
showing how the then successful path setup is not required.
Fix this by not unveiling the unneeded data path in the first place.
|
|
So that the first part of $SSH_CLIENT can be passed as username.
|
|
|
|
Bad things happen otherwise.
|
|
This respects the user's locale settings.
|
|
|
|
Log files and state save/restore both require read/write access to
the filesystem, both during start and exit.
If neither features are used, catgirl may run with "stdio tty".
|
|
Nothing must be executed when running /copy, et al.
|
|
catgirl has no reconnect feature and generally must not do
anything but read/write from/to the connected socket which
does not require "inet" or "dns" promises.
|
|
Simplify logic, be more idiomatic and finalize by pledging after
all unveiling is done by omitting the "unveil" promise and thereby
not allowing further calls to it.
|
|
Restrict mode will focus on sandboxing, while kiosk will continue
to restrict IRC access through a public kiosk. Kiosk mode without
restrict mode allows execution of man 1 catgirl with /help, assuming
external sandboxing.
The /list and /part commands are also added to the list of disabled
commands in kiosk mode, since they are pointless without access to
/join.
|
|
|
|
|
|
I wrote all this in vi and it was nice.
|
|
|
|
|
|
|
|
This allows limiting the nick colors used to the 16-color terminal set
without modifying the TERM environment variable. Produces different
results from just using the default configuration in a 16-color
terminal, but what can you do?
|
|
|
|
This fixes local rendering of /exec toilet --irc, which outputs \r\n
line endings.
|
|
Split UI initialization into two steps either side of the call to
connect, so that C-c works as interrupt while it's blocked.
|
|
|
|
LibreSSL is "a modified version of that library".
|
|
Apparently IRCds have decided that the 15-parameter limit doesn't matter
anymore. 254 is the maximum number of single-byte parameters (following
a single-byte command) which fit in a 512-byte CR-LF-terminated line.
When everyone decides that the 512-byte line length limit doesn't matter
either, I will delete my software and people can use some JavaScript
garbage instead.
This makes struct Message 2080 bytes, but there's only ever one or two
of them around at once. Avoid passing it by value to handle.
|
|
https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
|
|
This reverts commit 1d5c4a5e346f0a295818441eb37697be283130ec.
This is fixed instead by pounce using TCP keepalive.
|
|
|
|
Also change the way option structs are initialized so that the array
sorts the same way as the switch statement.
|
|
|
|
I should have been using this for getopt loops already but the call here
is slightly too long to fit on one line as a for loop.
|
|
|
|
The mkdir dance is a bit awkward...
|
|
The default USERLEN of 9 doesn't have a great source, the RFC only says
that nicks are length 9, so my assumption is that usernames are not
longer.
|
|
Without this, I was having catgirl "time out" from pounce's POV, but
without catgirl noticing anything... I still don't understand this. Been
using this fix for a couple weeks though and it stopped happening, and
it's otherwise harmless, but yikes.
|
|
Haven't really gone through ui.c yet.
|
|
These are actually from RFC 1459, since that seems to be the more likely
lowest common denominator, so I should maybe it it to STANDARDS (along
with ircdocs' section on ISUPPORT). RFC 2812 has a lot of stuff that
isn't currently used.
|
|
|
|
|
|
|
|
|
|
Copied from pounce.
|
|
Just to be nice.
|
|
|
|
This commit adds a '-S' command line option and a "bind"
configuration file option to specify the source address to bind to when
connecting to the IRC server.
|
|
|
|
|
|
I am a degenerate.
|
|
Allows removing a bunch of checks that self.nick is set, and it's what
the server usually calls you before registration.
Never highlight notices as mentions.
|