Changes for 1.4.36
- Fix bug that caused bans to be expired ~1 million times on startup
- Remove opers from fdlists that are set -o via SVSMODE
- Only show IPs of unknowns or clients to opers in /trace
- Use OpenSSL instead of GMP for encryption (much cleaner! :)
- Remove non-SSJOIN support
- Allow for a server to detect it is out of synch, and request a
channel resynch from an upstream hub
- Fix remote /stats k/K/a bug (it works now :)
- Optimize some sendto() things that are used a lot
- Add usermode +I (server hiding)
- Fix /whois, /admin, /who, etc to not allow a user to discover which
server a +I user is on
- Don't let *MY* opers /kill U: lined things (but pass on kills destined for them already)
- Chatops don't require you to be +gb (now, just +b)
- Various typos fixed
- No longer complain if a user is already on a +i channel, and they /join it
- Use hash tables for very common res functions, which were taking up
as much as 80% of CPU time in a pooled server
- add a command, /userip, for opers. Works just like /userhost.
- Allow /who +c @#channel +#channel @+#channel for more refined /who listings
- Add a /who flag for opers, +/-t, clients who have been on for more/less than seconds
- Don't let opers get stuck in weird anti-flooding bugs (oper recvq lock bug)
- When an oper deopers, they are returned to the appropriate client class
- Allow opers to /who +l for local clients (class = Y: class)
- Send optimizations for high-volume server connections
- Remove fdlists for lists of clients and instead use linked lists for things:
- recvq clients, instead of searching through *all* clients
- listing clients, ditto
- Remove certain things which actually caused poor server operation:
- HTM - relax sending out when we have high incoming traffic.
This actually causes a nasty bursty cycle.
- busy clients
This was taking up a great deal of CPU time to save CPU time. Hmm.
- Rewrite the entire base socket engine; now supports kqueue on freebsd.
- Poll() and select() use persistant states, so these should be twice as fast as well.
- Stop remapping fds. What's the point?
- /stats w reports fd map (don't use this on a large server! :)
- /stats z is more informative
- Hide the source servers of numerics (mask them with me.name)
- Hide /kill sources in quit messages (still in +s, though) and in messages
sent to killed client
- Hide split sources in quit messages
- Add a LINKSCONTROL command which allows a services-controlled /links list
- Better server traffic accounting in /stats ? (uses a moving average instead of a plain average)
- Fix a bug in which connecting servers will always remove a key if the channel exists (argh!)
- Correctly propogate cmode +O
- Show more squelched info in /whois to opers
- Be smarter about broken FD_SETSIZE implementations
- Crash if we try to free something twice in the block allocator, produces a useful coredump
instead of confused opers and an unrelated crash hours later.
- ability to lock /lusers output via services for a dynamic amount of time
- Fix 'ghost channels' where I create a channel but none of the users in it exist to me
- Allow /who +i ip/cidr and /who +I (show IPs only) for opers
- SAJOIN, like SAMODE for joining channels. Joins through all modes, sends a globop.
- Local servers notify the channel of an invite, not the server the invitee is on
- Remove the drone module, replace it with a powerful and generic module system that
has event-based hooks.
- Streamline some privmsg stuff, fix a few bugs.
- Fix a bug in which an IP ban on 1.2.3.4* wouldn't work.
- Dehybridize some things.
- SVSMODE +T, which sets a "client type" that can be seen in a /who +T
- Don't allow ',' in channel keys
- Fix umode +r/-r notification to clients
- Pretty print some things in /stats ?
- Remove support for non-NOQUIT servers
- Modes sent from servers come from the local server now
- Complain about /who +, where isn't valid, instead of sending the entire client list
- Move SQLINES and SGLINES into another hash-based structure for fast lookups
- Add SVSHOLD, which adds a local temp qline for a nick for N seconds, intended to replace
enforcers in services.
- Make HTM work on outgoing traffic (the part of HTM that limits sending lots of expensive
things like /list)
- Don't complain about servers relinking that look 'juped'
(don't complain if the server that already exists is U: lined, unless I actually have a
.conf U: line for it!)
- Compile with GCC3!
- Nicer umode separation, ie what used to come in as *** Notice -- comes in as:
+d : *** Debug --
+y : *** Spy --
+c : *** Client --
- Channel join throttling (cmode +j, but disabled for user changes by default to be compatible with
pre-1.4.36), defaults to 8 network non-split joins in 4 seconds before saying channel is full.
- Fix the DEBUGMODE pattern string exploit
Changes for 1.4.35
- Source address support on /connect problem fixed
- Squelching added, umode +x or +X (+X is silent squelch), this
prevents the user from doing certain online tasks such as privmsg.
Meant to be set by a U: lined server or client using SVSMODE.
- Complete rewrite of the kline/akill/zline system. (s)zlines no longer
exist. K: lines set on IP addresses without username portions (or *)
are treated as Z: lines used to be. CIDR banning is now supported
in all K: line/akill bans (ie, 204.127.54.112/28).
- +F usermode bypasses ircd's recvq throttling for opers
- Improved handling under high load situations
- Ban munching bug introduced in 1.4.34 is fixed
- /rehash GC now works
- lots of sendto_ops_lev changed to sendto_realops_lev for speed
- Fix a bug where we'd try to target limit messages by a server and
write to locations of memory that weren't ours :)
- Fix O: flags that just didn't work as advertised
- Moved rejection notices to umode +j (re_j_ection)
- Moved KILL messages from U: lined clients to umode +K (oper only)
- Support for a loadable drone module, compile with --enable-dronemodule,
ircd tries to load drone.so from DPATH on startup or on /rehash drones,
read src/drone.c to view the interface
- /stats t shows more information
- Various code cleanup and readability fixes
- Users and opers will now recieve a different output to '/who ?'.
- When 'HELP_FORWARD_HS' is defined, non-opers /quote help requests
will be forwarded to HelpServ.
Changes for 1.4.34
- Don't use FD_SETSIZE at all if USE_POLL is defined
- Fixed a server negotiation bug that could break apart the network
when autoconnects and user connects were done at the same instant
- Fix a bug where PART messages were not sent to 'userB' when 'userA's
QUIT message was squelched on more than 1 channel
- Fixed split riding ability left over from hybrid (where a channel
with a newer TS could 'take over' if it had ops and the older TS channel
did not)
- Fixed 'topic riding' ability that allowed topics from newer TS'd channels
to propogate.
- Fixed channel ban desync on netjoin
- all channel modes are now sent with a TS
- Target limiting anti-spam measure installed
- Reject acebot-style drones by default
- Minor fixes to prevent annoying auth error messages
- Minor configuration/installation fixes
-- WARNING --
1.4.34 may cause desynch in net joins if used on a network with newer servers!
This is because the algorithm for determining which channel modes to keep
when servers rejoin has changed. You should upgrade your entire network
to 1.4.34.
-- WARNING --
Changes for 1.4.33
- Only ops can invite on channels
- Various desync-causing memory-corrupting bugs fixed
- Fixed a problem with perm klines where they werent removing the user
- Moved to zlib 1.1.4, as 1.1.3 was vulnerable (but not directly in ircd)
- Fixed minor SVSKILL wrong direction issue.
- Fixed a wierd desync issue with sqlined channels
- Fixed /stats l's sendM statistic - it wasnt working properly with crypt
Changes for 1.4.32
- Throttling modified to be more friendly and punish repeat offenders
- Major bug causing memory corruption (coredumps as well as
duplicate or missing messages) fixed
- Lag on signon fixed (where a user connects, but the server chooses
to ignore the user until something is sent to them)
- Fixed a netsplit detection bug when a leaf server splits from its hub
(for no_chanops_when_split)
- Fix for .conf based K: lines (that just didn't work)
Changes for 1.4.31
- Connection Throttling Patch from Chip Norkus
Changes for 1.4.30
- Updated 'make profile'; now on glibc2 systems, you can kill -USR1 the
process and get a current profile dump, and restart profiling
- Kline/akill/zline matching has been revamped, which should help greatly with
lag under heavy user loads with many klines/akills/zlines
- Deny sending .zip files and . files (with a null extension) to prevent
the spreading of exploits
Changes for 1.4.29
- Umode +R to not allow msgs from non registered nicks
- chanmode +R extended to deny msgs for -r clients in channel
- +c/+R extended to squelch quit messages with color/from non reg'd nicks
- wrapped HTM detection code in #ifndef HUB
- Added channel qline reason display
- Removed LITTLE_I_LINES as with services they are dumb
- Massive code reformatting
- Moved some oper notices around to reduce unnecessary traffic
- klines match IP field too now, for NICKIP akills.
- Changed default mask to @DALnet so it's known it's a fake address
- This is the last 1.4 release planned. For real this time.
Changes for 1.4.28
- Minor bug fixes
Changes for 1.4.27
- Fixed key bug
- Fixed showstopper remoteclientsonlygetpiecesofaClient bug
Changes for 1.4.25
- Hide Nick Collisions (Revealing services location)
- Make 005 show more info
- Add who +i to search by IP
- Hide stats L for non opers
- Add NICKIP CAPAB for services to get nicks
- Channel QLINES from Ryan
- Removed * from valid key char
Changes for 1.4.23
- Some error message changes/fixes
- Fixed a cloaking bug
- Added support to source from a different local IP address when /connecting
out to another server; useful for servers which don't want to use the main
IP in the M: line as the server<->server IP
- To use: Add : to the end of a C: line
- E.g.: C:192.168.0.1:pass:server.dal.net:7325:10:192.168.10.200
- Block DCCs of .htm/.html files due to script viruses being spread in this
way
- Prompt for max channels per user and oper pw encryption in the config
script
- Example.conf brought up to date
- Display proper error messages when you can't join a channel
- Fixed the +a (away) who flag; its behavior was reversed from what it should
have been
Changes for 1.4.22
- Fixed a bug where a server with a bad name trying to connect or trying
to be used in /links could crash Bahamut
Changes for 1.4.21
- rate-squelch zipinbuf complain messages
- turn off yet more DNS debug messages (forward<>reverse query error)
- oper hostmasking no longer pollutes IPHASH (ouch)
- configure script reworked to search better for libgmp.a
- configure script bugs fixed
Changes for 1.4.20
- /whois works correctly for hostmasked opers. growl.
- configure gives more information about gmp errors.
Changes for 1.4.19 (released, but not an advised upgrade)
- Fixed a crashing bug with /whois
- Fixed a crashing bug with /oper (I need to remember how to handle nulls correctly :)
- Imported res fixes from bahamut-stable
- made configure work for solaris to find gmp
Changes for 1.4.18 (never officially released)
- Changed level of some debug messages to not go to all opers
Changes for 1.4.17 (never officially released)
- Oper hostmasking:
Your I: line password is oper<.password> where password is optional.
You then /server opernick:operpass
Anyone +A can see your real username, host, and IP.
Changes for 1.4.16
- deal with long-time buffer overflow when more than MAXADDR
A DNS answers are received.
Changes for 1.4.15 (never officially released)
- Crash in res.c fixed (due to wrong question received under heavy load)
- name resolution prevents ircd dns cache pollution
Changes for 1.4.14 (previous release was 1.4.12)
- RC4 streaming encryption added, diffie hellman key exchange
- Requires GMP library
- Vulnerable to man-in-the-middle attacks
- Requires 'E' flag in the N: line on both servers.
- zlib-compressed links added
- Requires 'Z' flag in the N: line of a server
that wishes to zip outgoing links to that link.
Changes for 1.4.12 (previous release was 1.4.8):
- /stats ?, v fixed to hide u-lined servers
- /lusers fixed to hide u-lined servers
- name resolution is more strict