Commit Graph

736 Commits (997c932e83ec27e3dc3e999d9c3390f818c58b77)

Author SHA1 Message Date
C. McEnroe cf1545870a Assume worst case for unknown user and host in splitMessage
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.
2020-03-23 13:25:10 -04:00
C. McEnroe 3bb3a11454 Implement message splitting 2020-03-22 15:13:33 -04:00
C. McEnroe be4283b8ff Handle empty input directly in command 2020-03-22 14:38:22 -04:00
C. McEnroe eb6316c235 Track own host, handle CHGHOST 2020-03-22 14:32:20 -04:00
C. McEnroe ccde1c2c8c Add /say 2020-03-22 14:19:11 -04:00
C. McEnroe 0d0a6d1575 Handle RPL_CHANNELMODEIS 2020-03-22 11:40:58 -04:00
C. McEnroe 61828a12e9 Handle user mode changes 2020-03-22 11:26:16 -04:00
C. McEnroe 8da45d9183 Rewrite handleMode 2020-03-22 11:18:21 -04:00
C. McEnroe 1c508b78ab Handle RPL_UMODEIS 2020-03-18 08:33:42 -04:00
C. McEnroe 1d5c4a5e34 Send blank line after 10 minutes idle
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.
2020-03-17 11:58:50 -04:00
C. McEnroe 2f53f75892 Ignore 422 ERR_NOMOTD
pounce will start sending these because some silly clients don't think
they're connected until some MOTD reply...
2020-03-09 03:08:59 -04:00
C. McEnroe 7e120f00a1 Set self.pos before handling the message
This intuitively feels wrong, but isn't. Most importantly, handleError
immediately exits, but we still need to "consume" that message,
otherwise pounce will keep sending it on reconnect. The same goes for
any other handler that might cause an exit, such as a require parameter
count failure.
2020-03-08 23:15:56 -04:00
C. McEnroe 5c167e4181 Prevent entering commands in <debug> if restricted
Because the <debug> ID always exists, it's possible to create a window
for it even while restricted with "/window <debug>" and try to enter
commands there.
2020-03-02 19:18:55 -05:00
C. McEnroe 8570a62235 Implement the causal.agency/consumer capability 2020-02-29 01:03:46 -05:00
C. McEnroe 78b4832bfe Add raw modes to mode message 2020-02-25 03:00:36 -05:00
C. McEnroe e9524b4af3 Handle changing setParamModes, paramModes and other channel modes 2020-02-25 02:54:15 -05:00
C. McEnroe 431945614d Fix handling EXCEPTS and INVEX without values 2020-02-25 02:24:29 -05:00
C. McEnroe 3c5e1c95a4 Add /mode, /except, /invex and handle lists replies 2020-02-25 02:12:35 -05:00
C. McEnroe c3c40d738b Accumulate mode changes into a buffer for one message 2020-02-23 22:44:19 -05:00
C. McEnroe 9609723dc6 Handle ERR_CHANOPRIVSNEEDED 2020-02-20 05:04:58 -05:00
C. McEnroe 50a6d34a55 Handle MODE changing channel list modes 2020-02-20 04:53:06 -05:00
C. McEnroe c2c8595012 Handle MODE setting channel prefix modes 2020-02-20 04:18:25 -05:00
C. McEnroe a5cd2cd97a Just use "b" to query ban list 2020-02-20 03:48:26 -05:00
C. McEnroe a3b6d5d9a7 Change ban list formatting 2020-02-20 03:44:57 -05:00
C. McEnroe b3c5458fc9 Rearrange some handlers 2020-02-20 03:18:48 -05:00
C. McEnroe 42ad42887c Handle RPL_INVITING when no invite-notify 2020-02-20 02:32:36 -05:00
C. McEnroe 5c79b16a51 Handle ERR_BANLISTFULL 2020-02-20 02:13:23 -05:00
C. McEnroe 1b01045bf0 Add handlers for user-in-channel errors 2020-02-20 01:52:58 -05:00
C. McEnroe f494fe6edb Add generic error reply handler
This should have been in way earlier...
2020-02-20 01:38:31 -05:00
C. McEnroe 56de4668ac Add /ban, /unban and handle ban list replies 2020-02-19 21:47:16 -05:00
C. McEnroe 2a33ee68dd Format WHOIS signon date with %F %T 2020-02-19 21:29:51 -05:00
C. McEnroe d5c4e7e371 Apply word wrapping to tabs before setting align
This fixes long URLs right after the initial \t being wrapped and line
counted incorrectly.
2020-02-19 20:31:29 -05:00
C. McEnroe ab94728913 Remove bad continues in styleParse loops
Since we're sometimes manually doing spaces that need the right styling.
2020-02-19 02:11:17 -05:00
C. McEnroe 026a8ca979 Various small cleanup in ui.c 2020-02-19 01:18:09 -05:00
multiplexd 460207440b Use the correct hostname in error message
Previously, the remote host to which catgirl(1) is connecting was used
in error reporting instead of the local bind address if the latter could
not be resolved.
2020-02-17 23:07:29 -05:00
C. McEnroe 6be9aa9901 Increase buffer size to 1024 2020-02-17 23:06:37 -05:00
C. McEnroe 079bbda246 Accept Shift-M-0 through Shift-M-9 as well
This mostly just to accommodate my inverted keyboard layout.
2020-02-17 12:27:07 -05:00
C. McEnroe cf83e95114 Only scroll after reflow if necessary
If we've already filled up every line of the window, there is no need to
scroll.
2020-02-17 11:57:29 -05:00
C. McEnroe fa29c37911 Scroll the window only once during reflow
ncurses implements scrolling as a memmove of the array of lines
pointers, which happens each time a line is added to the bottom of the
window, causing a scroll. This would get noticeably slow if WindowLines
were increased to just 1024. Should've used a ring buffer, I think.
2020-02-17 11:49:56 -05:00
C. McEnroe b20be7cbad Various small cleanups
Haven't really gone through ui.c yet.
2020-02-16 23:05:43 -05:00
C. McEnroe ba524ed804 Replace a lot of snprintf with a catf implementation 2020-02-16 19:12:19 -05:00
C. McEnroe 3885dd5231 Add 379 to WHOIS responses 2020-02-16 18:42:38 -05:00
C. McEnroe edd8855418 Track EXCEPTS and INVEX modes 2020-02-16 18:31:50 -05:00
C. McEnroe 09cd9a300f Add RFC 1459 and modern.ircdocs.horse references
It's ridiculous but I really am looking at all three.
2020-02-16 18:16:29 -05:00
C. McEnroe 5ce9ec70b6 Re-sort STANDARDS section
Just do it by dumb alphabetic to make it easier to maintain.
2020-02-16 18:10:40 -05:00
C. McEnroe f84ab67311 Apply colorMentions to actions
The first-two-words branch works well for "/me verbs nick".
2020-02-16 05:22:28 -05:00
C. McEnroe fa4e81d480 Set defaults for various types of modes
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.
2020-02-15 22:59:04 -05:00
C. McEnroe 700b5d5870 Replace small integers in size_t with uint 2020-02-15 22:19:55 -05:00
C. McEnroe 83df94b359 Still add nick without prefixes to complete 2020-02-15 22:19:05 -05:00
C. McEnroe 9b1ab69908 Track PREFIX modes and CHANMODES 2020-02-15 05:29:54 -05:00