Commit Graph

676 Commits

Author SHA1 Message Date
Kevin Easton
32659b9998 Simplify LAMEIDENT code and remove unused variable.
Replace open-coded loop with strpbrk(), make the constant lame_chars string
static const and remove the unused variable 'user'.

I think LAMEIDENT might be obsolete now anyway - I can't find a server that
allows control chars in usernames these days.
2015-05-08 23:25:41 +10:00
Kevin Easton
a497d3ab09 Remove unused variables in whoreply() and add_user_who()
The result of add_to_channel() isn't used in these functions, so we don't
need to store it.
2015-05-08 22:24:36 +10:00
Kevin Easton
941a3c6c63 Removed unused variables in p_privmsg()
com_do_log and com_lines are static variables that are set, but never
checked by any code.
2015-05-08 21:50:14 +10:00
Kevin Easton
5e9263f325 Simplify and improve ANNOY_KICK checks.
The annoy kick code looks for messages that are longer than 12 characters
and more than 75% of them are highlighted (eg. bold).  The old code counted
the whoel message length, so it could be fooled by padding the message with
lots of nonprinting control characters.  This change makes it count only
displaying characters.

Also fix the check for beep (it's a single character, not a highlighting
toggle, so we just check for one of them), and add a check for the blinking
highlight.
2015-05-07 22:30:59 +10:00
Kevin Easton
e646ab42d2 Move char_fucknut() and caps_fucknut() from misc.c to parse.c.
These functions are only used by parse.c:annoy_kicks(), so move them next
to that function and make them static.

This also changes their arguments from unsigned char * to char *, getting rid
of some signed/unsigned mismatch warnings.
2015-05-05 20:30:07 +10:00
Kevin Easton
9f7cf6b6c2 Alter the way PINGs for /sping and lag check are used.
We now send PING <server> :<server> for /spings, and
PING LAG!<cookie>.<tv_sec>.<tv_usec> :<server> for lag checks.  The cookie is
set randomly at server connect time, and means that clients connected to the
same bouncer shouldn't act on each other's lag checks.

We can now remove in_sping entirely - previously it would get out of synch if
you disconnected with a sping in progress.
2015-05-04 00:13:08 +10:00
Kevin Easton
443b87a8aa Remove alternate /sping implementation for systems without gettimeofday()
This changes the code to use struct timeval and get_time() on all systems,
which simplifies the code by removing most of the checks for HAVE_GETTIMEOFDAY.

The only user-visible change is that ancient systems without gettimeofday()
will see message like "Server pong from irc.choopa.net 1.0000 seconds" instead
of "Server pong from irc.choopa.net 1.x seconds".  And really, I seriously
doubt that there's any systems like that left out there anyway.
2015-03-29 20:35:57 +11:00
Kevin Easton
3b80790a31 Define VERSION in configure, and add git describe output if available.
The client release version is now defined in configure.in rather than
source/irc.c.  The gitversion.sh script is used to automatically add a
suffix to the version number for versions of the client built from git.

Also removed AC_REVISION() from configure.in, because $Revision$ doesn't
make sense with git.
2015-03-16 23:04:43 +11:00
Kevin Easton
aab85f807a Update version number to 1.2.1 in preparation for release.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@537 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-14 10:42:09 +00:00
Kevin Easton
a06fe2a883 Revert back to using floating point for stats calculations, but correctly rounded.
Integer division has potential edge-case overflow problems that are best avoided.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@536 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-14 10:34:50 +00:00
Kevin Easton
bb5e9920d2 Squash a warning when compiling with a some curses library configurations.
ncurses can optionally declare tigetstr(), tigetnum() and tigetflags() with a
const char * argument, indicated by the NCURSES_CONST macro.  So we use this 
macro, if available, to optionally declare cap2str.iname as const char *.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@530 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-06 10:25:37 +00:00
Kevin Easton
93d06b03c9 Fix overflow in say() when handling a client message over the maximum.
This was noticed when /channel on a very large channel segfaulted.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@528 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-05 09:32:46 +00:00
Kevin Easton
07c2291966 Add SERVERREQ flag to all send_2comm commands.
send_2comm() always sends the command on to the server, so it always requires a server connection.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@526 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-04 10:54:23 +00:00
Kevin Easton
867f7f8327 Add SERVERREQ flag to all send_comm commands which were missing it.
send_comm() just passes the command directly to the connected server, so it obviously
requires a server connection.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@525 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-04 10:36:54 +00:00
Kevin Easton
0b6725dbe2 Remove WANT_CHAN_NICK_SERV define and include services commands by default.
They're pretty widely used these days, and the cost is trivial.  And quite frankly,
the less #ifdefs I have to see, the better.

This covers /NICKSERV, /CHANSERV, /OPERSERV and /MEMOSERV.  It also brings 
in the bahamut / unreal /SILENCE server-side-ignore command, and unreal's /HELPOP.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@524 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-04 10:27:19 +00:00
Kevin Easton
78aeaeb1cb Cleanups around WANT_CHAN_NICK.
Remove unused function declaration, add SERVERREQ flag to CHANSERV command and remove IRCIIHELP
command that no server has provided in a long time, as far as I can tell.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@523 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-04 10:05:58 +00:00
Kevin Easton
f6d42f35d4 Fix spelling mistake in client message.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@521 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-03 10:26:13 +00:00
Kevin Easton
a05b1160c3 Change build to pass through CPPFLAGS if provided, and to use the DEFS value set by configure.
The DEFS Makefile variable has been renamed to CPPFLAGS, and is now set based on the CPPFLAGS,
INCLUDES and DEFS values provided by configure.

Reported by cpet, this allows the FreeBSD port to drop a patch.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@519 13b04d17-f746-0410-82c6-800466cd88b0
2014-11-01 14:37:41 +00:00
Kevin Easton
db3fabfc3e Delay setting the /cset CHANMODE mode on new channels until the channel is synched.
Instead of setting the mode at NAMES time (when we know that the channel is new),
remember this for later by setting the GOTNEW flag in the joinlist entry.  Then
check this flag when the channel is synched.

Setting the channel mode takes us out of server "grace mode", which slows down the 
processing of subsequent commands and drastically reduces the number of commands we
can have outstanding before we get kicked off for flooding.  This change allows us
to stay in grace mode while we're synching every channel that we joined at connect.

In turn, this makes joining lots of channels on connect faster, and much less likely
to cause us to be booted with "Excess Flood".


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@515 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-29 14:07:05 +00:00
Kevin Easton
8054c3e4ab Rename show_channel_sync() to channel_sync(), and don't use prepare_command() before it.
prepare_command() does nothing useful here, and it sets the current server to an incorrect value
if the channel sync happens while the current window is set to a window from a different server.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@514 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-29 12:51:40 +00:00
Kevin Easton
3816ea7494 Don't execute an empty command for an empty branch in an /IF.
Old behaviour was that /if (0) { echo y } would execute an empty command for the missing else
case, which winds up doing send_text("").


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@513 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-27 12:05:16 +00:00
Kevin Easton
7563f1d401 Cache the bitmask of the channel log level in the cset structure instead of the channel structure.
This fixes a bug where the cached channel log level bitmask was not correctly set unless you did a 
/cset CHANNEL_LOG_LEVEL after the channel had been joined, which resulted in most things not being
logged.

It makes most sense to cache the bitmask within the cset structure, and there was even an (ununsed)
field already there for it.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@512 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-26 13:08:43 +00:00
Kevin Easton
34c34b9a43 Add ccTLDs for .cw (Curacao) and .sx (Sint Maarten).
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@511 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-21 12:21:24 +00:00
Kevin Easton
3f3bdf5387 Display user and channel mode changes at level MODEUSER and MODECHAN instead of CRAP.
These were already being logged at the correct level, this just fixes the
interaction with window level and window notify_level.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@510 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-18 13:18:13 +00:00
Kevin Easton
de1145ffc9 Refine illegal message source characters: * is in, - is out.
IRCNet uses message sources like *.se (ie masked server names) after a
netsplit.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@509 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-14 13:44:45 +00:00
Kevin Easton
c41048b896 Increase size of buffer to handle maximum-length topics in status_topic().
This affects the maximum length of the topic that can be displayed by the %-
status format.  No topic can be longer than IRCD_BUFFER_SIZE, so use that.

Reported by oxy.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@508 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-14 12:57:01 +00:00
Kevin Easton
8fde6f8248 Don't allow message source name to include ','.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@507 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-14 12:37:56 +00:00
Kevin Easton
5126d21126 Add /FSET WHOIS_LOGGEDIN to format RPL_WHOISLOGGEDIN, used by hybrid, ratbox, ircu and derivatives.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@506 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-10 12:56:09 +00:00
Kevin Easton
4d14d35d1a Allow nicknames to start with ~, apparently allowed by IRCnet.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@505 13b04d17-f746-0410-82c6-800466cd88b0
2014-10-05 22:19:39 +00:00
Kevin Easton
5e55fc5dee Cleanup send_whom(), and fix bug where get_socketinfo() was used instead of get_socket().
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@504 13b04d17-f746-0410-82c6-800466cd88b0
2014-09-24 14:28:19 +00:00
Kevin Easton
337c3128d1 Fix faulty boolean logic in .echo xlink command.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@503 13b04d17-f746-0410-82c6-800466cd88b0
2014-09-24 14:14:59 +00:00
Kevin Easton
6d2675e312 Slight cleanup to some xlink code.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@502 13b04d17-f746-0410-82c6-800466cd88b0
2014-09-24 13:35:13 +00:00
Kevin Easton
b99118c030 Add sanity checking of incoming nicknames.
Check that at least the first character of an incoming nickname is valid (we
actually go a bit beyond the RFC by also allowing any char with bit 8 set - at
least Russian servers use nicknames like this).


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@501 13b04d17-f746-0410-82c6-800466cd88b0
2014-09-24 06:54:00 +00:00
Kevin Easton
6dc2335df9 The /mv command shouldn't send +v for already-voiced users.
The logic in the massop function to exclude already-voiced users from
massvoice was faulty - it was equivalent to just !nick_isop().


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@500 13b04d17-f746-0410-82c6-800466cd88b0
2014-09-23 13:59:03 +00:00
Kevin Easton
a3170cf578 Fix regression introduced in r480, where /BKI on non-joined clients no longer ignored.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@499 13b04d17-f746-0410-82c6-800466cd88b0
2014-09-23 13:46:47 +00:00
Kevin Easton
e808dbe94b Change the lag check so that it does not try to format a time_t using %lu.
Recent OpenBSD and NetBSD have changed time_t to be a 64 bit type on all
platforms.  This means that on 32 bit systems, time_t is now longer than
long, and %lu can't be used to format it.

The lag check doesn't actually care what is in the first field of the PING
command, so change it to be our nick (which is arguably what it should be).


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@498 13b04d17-f746-0410-82c6-800466cd88b0
2014-09-21 14:54:12 +00:00
Tim Cava
72a20a8b82 Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@497 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-02 21:25:49 +00:00
Tim Cava
b3cd3509d0 Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@496 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-02 21:21:40 +00:00
Tim Cava
a266f0bad3 Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@495 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-02 21:20:33 +00:00
Tim Cava
dd030f6e67 Make function_channelnicks() use the sort_type optionally passed in.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@494 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-02 21:15:36 +00:00
Tim Cava
deb1c71b8c Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@493 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-02 21:09:37 +00:00
Tim Cava
8d5882a9ef Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@492 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-02 19:59:13 +00:00
Tim Cava
e7da953fc1 Don't check if the address of an array is NULL.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@491 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-02 19:40:31 +00:00
Tim Cava
04e898bb57 Cleanup quotecmd() a little bit. Remove a set but unused variable.
Kill commented out code that normally prevents some commands from
being quoted.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@490 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-01 20:02:16 +00:00
Tim Cava
3138017406 Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@489 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-01 19:45:47 +00:00
Tim Cava
101204b0b9 Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@488 13b04d17-f746-0410-82c6-800466cd88b0
2014-03-01 19:44:55 +00:00
Tim Cava
ae4014808f Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@487 13b04d17-f746-0410-82c6-800466cd88b0
2014-02-28 23:52:33 +00:00
Tim Cava
7791aec8d6 Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@486 13b04d17-f746-0410-82c6-800466cd88b0
2014-02-28 23:47:14 +00:00
Tim Cava
c45a43c8e2 Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@485 13b04d17-f746-0410-82c6-800466cd88b0
2014-02-28 23:41:57 +00:00
Tim Cava
a9cc4ec891 Remove a variable that is set but unused.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@484 13b04d17-f746-0410-82c6-800466cd88b0
2014-02-28 23:39:57 +00:00