Commit Graph

59 Commits

Author SHA1 Message Date
jilles 64f2a7eb2c [svn] Merge old trunk r2077,r2079:
- Move closing of servlink control fd to close_connection()
  instead of doing it in exit_local_server(), and make sure
  we first close the data fd and then the control fd.
- Have servlink process ready fds in order net, data, ctrl
  instead of ctrl, data, net.  This seems to fix the problem
  that squit reasons do not show up on the other side of a
  ziplink (by making it send any final SQUIT and/or ERROR
  before noticing the closed control fd).
2007-03-29 13:03:06 -07:00
jilles 0bba178826 [svn] Don't show the UID if a TS6 server sends a kick with
an empty or no comment. Note that charybdis never sends
such kicks.
2007-03-28 16:17:06 -07:00
jilles 8d19a2b257 [svn] Merge old trunk r2081:
Don't say that services cannot be killed in
ERR_ISCHANSERVICE message (given when trying
to kick or deop them), as that's not the case.
2007-03-28 08:40:24 -07:00
jilles e7d250a693 [svn] Merge old trunk r2059
Clarifications to the descriptions of umode +Q and cmode +F,
suggested by Ariadne@SorceryNet.
2007-03-28 08:30:56 -07:00
jilles add9f99dfa [svn] Merge old trunk r2907,r2991:
Allow TESTLINE on channel names.
2007-03-28 08:22:49 -07:00
jilles 42bda3f3d2 [svn] Merge old trunk r2835:
resolver: if sendto(2) fails, try sending to the next nameserver
2007-03-28 08:04:06 -07:00
jilles 8a1e143f6f [svn] Merge old trunk r2817:
WHOIS: Show the given nick in ERR_NOSUCHNICK even if it
starts with a digit. This is safe because the last
parameter is a nick and never a UID. (The first parameter
in a server-server two-param whois is a UID/SID.)
2007-03-28 07:54:10 -07:00
jilles a5ea0e0dc4 [svn] Merge old trunk r2779,r2785:
Show correct privilege name in a few ERR_NOPRIVS numerics.
2007-03-28 07:49:48 -07:00
jilles 5ea98c7a83 [svn] Merge old trunk r2695:
Send an SQUIT instead of an ERROR to announce /die to connected servers.
This will generate better server notices.
2007-03-28 07:45:46 -07:00
jilles c83cbedc0e [svn] Merge old trunk r2294:
Zero out the varlist passed to substitution_* when rejecting DNSBL clients.
2007-03-28 07:33:50 -07:00
jilles 9c2f9ec9a2 [svn] Merge old trunk r2226:
If we are connecting outward to a server, check if the
server name they sent is the same as what we tried to
connect to. Previously such a connection could succeed
if there existed connect blocks with the same IP and
passwords for the other server name.
2007-03-28 07:30:10 -07:00
jilles 7201bb21a4 [svn] Merge old trunk r2212:
Another handling of SJOINs without nicks:
Propagate them if the channel is +P or the channel
already existed, otherwise remove the channel again
and do not propagate the SJOIN.
2007-03-28 07:21:37 -07:00
jilles 04513cff6c [svn] Remove channels entirely from /whois on services.
This cannot be overridden with operspy.
2007-03-28 06:49:57 -07:00
jilles 4cda5f2264 [svn] Fix /who on channels with ** in their name. 2007-03-28 06:11:30 -07:00
jilles 0af87e57ad [svn] NEWS: As in 2.1.3, mention that the TS6 revision will
interoperate with older versions
2007-03-25 10:59:50 -07:00
jilles 3891c2c24f [svn] Fix documentation of HIDE_SERVERS_IPS define. 2007-03-18 09:29:31 -07:00
jilles 4b7e690457 [svn] Don't leak auth{} spoofed ip for I-line is full notice either. 2007-03-18 07:44:24 -07:00
jilles 0b15df83c0 [svn] Update NEWS. 2007-03-17 16:50:25 -07:00
jilles 1ebf4db4c6 [svn] Allow /invite (but not invex) to override +r, +l, +j in
addition to +i. As before, a restrictive mode must be in
place at /invite time for the invite to have an effect;
+r does not count as a restrictive mode if the user is
logged in; +l and +j always count as restrictive modes to
allow for cases where they would allow join at /invite
time but not when the user tries to join.
2007-03-15 11:09:08 -07:00
jilles 307328bb13 [svn] Remove invite_ops_only, forcing it to YES. 2007-03-13 09:09:28 -07:00
jilles 0734f634d9 [svn] Move username check after xline and dnsbl checks, so it
will not complain to opers about clients who are xlined
or blacklisted anyway (both of which silently reject).
2007-03-06 06:07:11 -08:00
nenolod 35237302c0 [svn] - MASTER_MAX is no longer relevant 2007-03-05 11:01:05 -08:00
nenolod c2d96fcbff [svn] - add config option for setting max_clients. 2007-03-05 10:58:38 -08:00
nenolod 68ff929f3d [svn] - remove get_maxrss() and all of that insecure and unsafe nonsense 2007-03-05 10:51:17 -08:00
nenolod a6a30f6f7b [svn] - avoid some potential NULL dereferencing 2007-03-05 10:42:24 -08:00
nenolod c18de29d18 [svn] - fix a typo 2007-03-05 10:41:14 -08:00
nenolod ce439f5186 [svn] - rework poll a bit for the MAXCONNECTIONS changes. 2007-03-05 10:40:39 -08:00
jilles 51b5f3356a [svn] Our way of using kqueue may cause it to report fds we
don't know about anymore, cope.
2007-03-05 09:52:28 -08:00
jilles df98bc52c8 [svn] Don't reference freed memory (fde_t) in comm_close(). 2007-03-05 09:41:40 -08:00
nenolod 61e3b8f276 [svn] - fix for 100% cpu use 2007-03-05 09:35:17 -08:00
nenolod d0e1e8ee78 [svn] - rework comm_checktimeouts() to use the hashtable in an efficient manner. 2007-03-05 09:31:35 -08:00
nenolod c961476e55 [svn] - clear up use of fd_table in ircd. 2007-03-05 09:28:27 -08:00
nenolod e70f8e928e [svn] - use a hashtable for fdlist storage. first step to making the amount of allowed clients dynamic and removing MAXCONNECTIONS. 2007-03-05 09:23:07 -08:00
jilles 14e23b0e1e [svn] Fix some cases where the size argument to strlcpy()
for usernames and hostnames is 1 too small.
2007-03-04 17:14:46 -08:00
jilles 61569b65f2 [svn] Cut down quit/part/kick reasons to avoid quit reasons
overflowing the client exiting server notice (from
TOPICLEN to 260). kill reasons become shorter accordingly.
kline/dline/gline reasons become 390.
away messages stay at TOPICLEN for now.
2007-03-04 15:42:55 -08:00
jilles 606384aea8 [svn] Don't leak auth{} spoofed IP addresses in +f notices.
from ratbox (androsyn)
2007-03-02 09:45:47 -08:00
jilles 652b8478fb [svn] Make oper_up() take +i/-i during opering up into account
(e.g. no_oper_invis extension, +i in operator::umodes).
Remove the hack from no_oper_invis.
2007-02-24 11:34:28 -08:00
jilles af6ca5f5e5 [svn] no_oper_invis: decrement invisible count when clearing
invisible on a local client who has just opered up
oper_up() should really do this
2007-02-24 10:35:58 -08:00
jilles 1178125363 [svn] Put "End of Channel Quiet List" instead of
"End of Channel Ban List" for a +q list.
Due to client restrictions the numerics for
quiet lists must be the same as for ban lists.
2007-02-21 11:52:51 -08:00
jilles bee3b6716c [svn] Port over ratbox 2.2 r23507, r23624, r23626 (jilles/anfl):
Change TS6 JOIN processing
- don't send out simple modes in TS6 JOIN and TS5 SJOIN when
  a local user joins an existing channel
- don't send out simple modes in TS6 JOIN and TS5 SJOIN when
  propagating a TS6 JOIN
- don't interpret simple modes in an incoming TS6 JOIN

This is to avoid desyncs when certain mode changes (e.g. -im)
cross with joins. A downside is that simple modes will be
more desynched when a JOIN creates a channel or lowers TS,
but that's less important.

Update the TS6 specification to include this, and clarify
that TMODE can come from a server and that MODE must be
translated into TMODE from other servers too.
2007-02-19 16:34:28 -08:00
jilles 9b6ff0c8f9 [svn] Make -logfile work again. 2007-02-11 08:54:43 -08:00
nenolod c8ff7ca97f [svn] - fix off-by-one memory overflow error. 2007-02-09 14:18:23 -08:00
jilles a8086a7ca0 [svn] Change handling of modularized umodes:
- keep the bitmask reserved forever to the letter, fixing
  the problems when loading multiple umode modules,
  unloading them and then loading them in a different order
- don't allow local users to change umodes which have
  been unloaded and don't set them on new users via
  default_umodes
2007-02-04 07:08:04 -08:00
jilles 01cebbd88e [svn] Move find_umode_slot() from libcharybdis/tools.c to src/s_user.c. 2007-02-03 17:59:38 -08:00
jilles 1e56e993e2 [svn] DNSBL keyword substitution is available as of 2.1.3. 2007-01-31 17:44:31 -08:00
jilles 4d7a1ee5d1 [svn] Change two occurances like match(userinput, target_p->name) ||
match(target_p->name, userinput) to just match(userinput,
target_p->name). No client name can contain * or ? now.
2007-01-31 17:07:42 -08:00
jilles e26e2b1954 [svn] Do not try find_server() on a name find_client() has
returned NULL for, as this will always return NULL
since the removal of hostmasking.
2007-01-31 16:49:07 -08:00
jilles b0b7de54b1 [svn] Remove server_exists() which checked whether the
server name existed taking hostmasking into account
and just check with find_server(); admittedly
this checks if the name is a SID but that's not
a real problem.
2007-01-31 16:34:33 -08:00
jilles f42e9cebee [svn] Remove hash_find_masked_server(), which made it possible
to specify the full (unmasked) name of a server behind
a hostmask. As a result find_any_client() (for prefixes)
becomes equal to find_client(), so remove that too.
2007-01-31 16:19:14 -08:00
jilles e5d9ca18eb [svn] Remove '*' from valid server name characters.
This makes it impossible to connect hostmasked servers.
(This support didn't work well anyway, was incompatible
with TS6 and we never masked ourselves.)
2007-01-31 16:02:35 -08:00