Commit Graph
14 Commits
Author SHA1 Message Date
Kevin Easton 0f8280ed51 Prevent indefinite wait if CONNECT_DELAY is set to zero
set_server_bits() now returns -1 for "no timeout", so 0 is a legitimate
return value.

io() should only update real_timeout from server_timeout if server_timeout
is not -1 (real_timeout == -1 ends up meaning "wait indefinitely").

Note that if you set CONNECT_DELAY to zero you get a lag check ping sent off
first thing in the server connection, this should be fixed.
2015-05-12 22:39:30 +10:00
Kevin Easton 72f5536121 Fix bug that prevents ignoring of NICK messages.
check_ignore() returns IGNORED for that case, not zero.
2015-05-10 14:22:12 +10:00
Kevin Easton dea26d0c1c Remove unused variables in check_bitch_mode() and parse_server() 2015-05-09 00:01:07 +10:00
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 1c6ff3088a Fix compilation problems in 'amp' plugin.
Four instances where 'default:' is at the end of a block replaced with
'default: break;' (reported by mscherer).

One typo where [j] should have been [1] (array out of bounds error).

Missing <unistd.h> includes for _exit(), and <string.h> for memcpy().
2015-03-17 00:06:34 +11:00
Kevin Easton 6898260809 Add configure.lineno to files removed by distclean target. 2015-03-16 23:45:49 +11:00
Kevin Easton 5b89193679 Remove doc/Makefile (template for dummy toplevel Makefile). 2015-03-16 23:23:14 +11:00
Kevin Easton ca093feaf9 Remove top-level dummy Makefile.
There's no need for a top-level dummy Makefile - the real Makefile is generated
by configure, and the dummy file only worked on systems that had bash installed
into /usr/local/bin anwyay.
2015-03-16 23:18:00 +11:00