]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/ChangeLog
Fixes for valgrind
[user/henk/code/inspircd.git] / docs / ChangeLog
1 1.0 Final
2
3     * Optimized WriteServ - why use %s!%s@%s when we have the more optimal userrec::GetFullHost() ?
4     * Added new event into m_spanningtree, event id send_metadata, which allows arbitary posting of metadata outside of the netburst, see line 529 of m_ssl_gnutls for an example of how to use it.
5     * Added check that forbids configuration as root >:-)
6     * Major updates to CBANs...like they're reasonably functional
7     * Added support for TYPE_OTHER metadata, where void* target will be NULL, e.g. its not bound to a user or a nick
8     * Fix to send 403 on invalid channel name
9     * Moved Write() call so that it can send the NICK message properly and force the client to change
10     * Allow ulines to still notice the channel regardless of +T
11     * Created OnPostOper that can be gauranteed to be called *after* opering (by ALL modules) is done
12     * "Oper of unknown type" -> "313 %s %s :is an IRC operator"
13     * Auto-assume "+" on the start of opermode block if not included
14     * Removed example commands that never actually existed
15     * OpenSSL detection and cert generation in ./configure
16     * Changed length of password field to 64, giving us a maximum password length of 63 plus null terminator
17     * Fixed uninitialized ExtMode::list
18     * Added some extra debug
19     * Make m_services use InsertMode (are we done yet?)
20     * Changed On005Numeric to use InsertMode (we left one out?)
21     * Deleted the semicolon that had half the dev team wondering...
22     * Incorporated Craig's friendlier SQL class (documentation to come later)
23     * m_sqlauth: Fix small memory leaks in some cases (bad password, bad query, lost mysql server connection etc..)
24     * Correctly initialize userrec::password (should fix a few m_sql issues)
25     * Add m_conn_waitpong, require clients to reply with a correct PONG to a server PING before they can connect
26     * Remove unused includes and rename classes from ModuleSSL to ModuleSSLGnuTLS so we can be consistent across multiple SSL modules
27     * Added warnings to opers when session limits are exceeded
28     * Improved IP handling. Now uses in_addr to store client ip, not char[16]!, Added global and local session limits
29     * Problems removing +t due to wrong bit-value being used in comparison
30     * Altered so that if running in -debug mode, will not erase its .so files from /tmp to allow a clean backtrace
31     * Removed unneccessary strlcpy
32     * Removed a load of unneeded includes (poll.h etc)
33     * Added <ident:timeout> example so that people remember to set this when using m_ident.so
34     * Default ident timeout to 1 sec if not defined (a bit low, but better than 0!)
35     * Updated m_ident to use inspsocket, should be more reliable
36     * Added missing modules (newer ones)
37     * Removed excessive debug for something thats now fixed
38     * Merged Andy Church's isnick() and isident() patches - faster, more efficient, and doesnt accidentally allow "-" as the first character of a nickname, Also adapted to iterate over a char* pointer rather than using unsigned int for the for() loops
39     * Added m_opersha256 module created by Special
40     * Add module for anti-autorejoin channel mode +J
41     * Changes to INVEX and EXCEPTS 005 tokens
42     * Changed +l to drop the mode if the limit is same as current., Optimized check on numeric chars
43     * Remove last relic of last goto in inspircd (an unused label)
44     * Fixed to not have ohv in CHANMODES type A,, Added proper MAXMODES output in 005 instead of hard coded '13'
45     * One goto is now no gotos.
46     * Change m_redirect, m_joinflood and m_messageflood to put their modes in the correct section and to use InsertMode()
47     * Add InsertMode function to helperfuncs.(cpp|h) for easily adding modes to the CHANMODES section of the 005 numeric
48     * Added patch from Andy Church re spaces in SETNAME
49     * Fixed line endings when skipping ssl cert generation
50     * Documented some functions that were missing comments
51     * Properly check that existing key resides in conf/ and not current dir
52     * Added PRIORITY_BEFORE and PRIORITY_AFTER (see src/modules/m_hostchange.cpp for how it works, function Prioritize())
53     * Added -modupdate to regenerate modules makefile, Added SSL option, as well as a 'Build Certificate' section (If avaliable)
54     * Adding the +e and +I modules m_banexception and m_inviteexception, also adding their shared utility header
55     * Added trick to allow local server to unset -r only in one specific condition (the nickchange)
56     * Added joinflood +j
57     * Made bans check both real and fake host
58     * Patched to allow FTOPIC from users (so that chanserv can update the settime and the topic still come from chanserv)
59     * Added <link:hidden> to docs
60     * Optional IP-Hiding for servers
61     * Use libgnutls-config --libs to configure linker options
62     * Make relative paths in the config file tags be relative to the insp config directory
63     * Change 974 numeric to 490 to avoid collision with Insp's failed to load module error
64     * Make m_sslmodes messages appear in the channel window
65     * Updated with new docs for maxtargets
66     * Updated 005 to show changeable MAXTARGETS
67     * Allowed for configuration of maxtargets in <options:maxtargets>
68     * Wrong nicklen is shown in the 005 numeric, fixed (noticed by ThaPrince)
69     * Initial commit of m_sslmodes, supplying chanmode +z
70     * Allow for <bind> tags with no or empty type, as well as 'clients' ones
71     * Set vendor and static module flags...even though the booms from trying to unload it would be fun sad.gif
72     * Make errors loading certificates DEFAULT level
73     * Inital commit of the first SSL module \o/ \o/ \o/ Also Ommeh's first official svn commit \o/
74     * Added MakeWildHost to userrec (*!*@dhost), Added ban stuff to messageflood
75     * Fixes to server kick (i hope)
76     * And yae, the compiler sayeth to brain, fix thine warning. and thou warning art fixeth.
77     * Made '*' ban-specifier work
78     * Added OnChannelDelete() method (called on KICK, PART or QUIT where a channel is deleted for cleanup of metadata), Added m_messageflood.so
79     * Tweaks for openssl compatibility
80     * Stopped lines longer than 512b from being killed, instead, warning sent and dropped.
81     * Fix to m_redirect to prevent circular link to self
82     * Added <allowchannel:name> to allow specific channels
83     * Test-fix for crazy's bug (/who 0 * as oper while on no channels)
84     * Tony hart stars in a new show, to replace hart attack. YES, ITS CRAQ ATTACK! Now starring the cmd_invite 401 numeric fuckup! grin.gif
85     * Umode +R was broken (only worked for channels) -- fixed
86     * Removed all strncpy() calls and replaced with strlcpy()
87     * strncpy sucks ass! -- Old code was using strncpy which doesnt null terminate a string if the string fills a buffer (!!!) - our strlcpy implementation fixes this.
88     * Added unlink() to tidy up /tmp after each dlopen()
89     * Added support for part messages in the module API (and therefore between servers too)
90     * Fixed bug with {} -> [] etc in NICK where nick == newnick apart from irc-case:, [15:41] --- Brain is now known as [Brain], [15:41] --- {Brain} is now known as {Brain}, Now correct:, [15:41] --- Brain is now known as [Brain], [15:41] --- [Brain] is now known as {Brain}, Was just a strlcpy BEFORE the NICK output instead of AFTER.
91     * Fixed so that ONLY ports of type "" or type "clients" are bound by the core, *everything else* is passed over now, not just "servers" type.
92     * Changed lots of icky #define's to enums
93     * Made <disabled> non-manditory, added check for when singular tags arent defined at all
94     * Fixed SIGHUP rehash to actually send rehash event to modules
95     * Added checks to forbid declaring certain config tags twice (ones which should only exist once like <server> and <admin>)
96     * Added m_vhost, authenticated vhosts from the conf similar to unrealircd's way, requested by PinkFreud
97     * Changed some .cpp to .so in the this->source field
98     * Removed deprecated default= for bind tags
99     * Removed deprecated LocalOp type
100     * Added support for <options customversion> to customize the second part of VERSION
101     * Bug found by PinkFreud - If an oper deopers themselves by removing the +o mode, their userrec::oper field isnt cleared. Clear it forcibly before DeleteOper.
102     * Updated copyrights in headers etc using perl inplace edit
103     * Made inspircd close and reopen its log on rehash
104     * Removed some redundant (and commented out) functions
105     * Made InspSocket::Read return an empty but non-NULL string when it receives EAGAIN (this method didnt know how to cope with EAGAIN before, may be causing random splits?)
106     * Extra m_sql field checking
107     * Fixed 'stops responding after server pingout, while using select' bug as found by merwin
108     * Added RemoveSocket as a test fix for merwins bug
109     * Replaced some 'n' with '*n' that was breaking userrec::MakeHost
110     * Added extra safety check for a condition that should NOT happen (in theory, but still)
111     * xline tweaks
112     * Replaced sprintf's with some char* voodoo
113     * Changed channel user lists from vector to map
114     * Changed makefile to use 'install'
115
116
117 1.0 Final - RC2 (KingArthur)
118
119     *  Added 'a' flag to STATS c which indicates autoconnect state
120     * Removed tab characters from example conf
121     * Added oper-only-stats option
122     * Added 005 stuff after VERSION
123     * m_park.cpp fixes (and anything else using UserToPseudo and PesudoToUser)
124     * Used mkstemp trick similar to anope and unreal which copies the .so's to temp names under /tmp before loading them, using the current process's PID. This allows for module developers to *safely* rebuild a module (NOT the core) without a segfault while the ircd is up.
125     * Aligned % fields in map
126     * Changed printf specifiers in map to right-align digits
127     * Added User Counts to /map
128     * Nicer mode character loop
129     * Revise some serious craq++ in AddBan
130     * Fixed to not crash on /PARK (still more to test)
131     * Added CASEMAPPING and CHARSET to ISUPPORT (005)
132     * GCC 4.1 is more strict about extra qualification on members
133     * Updated example configuration file
134     * Fixes to typos and change to return by reference on GetClass
135     * Changes to how classes are looked up (connects slightly faster) and fix for case sensitive passwords
136     * Removed cvsignores, set svn:ignore property using -F .cvsignore
137     * Added specific errors relating to invalid link tags (requested by Strike)
138     * Tidyup of K&R style indenting, comments in silly places, and pointless curly braces around non-blocks
139     * Changed to QueryType rather than short int for query types
140     * Removed crappy linked list stuff and replaced with faster std::map
141     * Improving niceness of DNS code, i WILL make this readable!, Changed a ton of ugly firedns #define's to enums
142     * Minor cosmetic fault pointed out by Trystan
143     * Blockcolor now blocks reverse and other mirc sillies
144     * Ommitting \r and \n from debug display of outbound lines
145     * Now uses two AES contexts, an 'in' context and an 'out' context
146     * CBC encryption type in AES rather than ECB
147     * Changed background stuff to occur more often
148     * Made socket.cpp flush its write buffer more often (fixes odd lag on server to server connections)
149     * Fixed broken checks to allow overriding
150     * Optimized out some more redundant va_args voodoo
151     * Double copies due to bad chop()
152     * More removal of formatting where its not neccessary x("%s",str) == bad!
153     * Attempt to cut out unneccessary printf() va_args voodoo (ugleh)
154     * Cached ISUPPORT
155     * Added output of error if file descriptor given to AddFd is > MAX_DESCRIPTORS
156     * Changed to MAX_DESCRIPTORS
157     * Changed 65535 to MAX_DESCRIPTORS calculated at configure-time
158     * *FIX* 'No more connections allowed' was comparing against the network-wide limit rather than the local limit (ICK!)
159     * Added extra checking to socketengine to refuse connections after we reach the max
160     * Added counters for MAX_DESCRIPTORS etc which allows the socket engine to refuse new fd's once you hit the OS limit
161     * Initial revision of /devoice.
162     * Removed an unused OnUserConnect() method
163     * Changed some little bits and bobs here
164     * Fixed an extremely n00bish mistake involving referencing a global copy of ServerEngine when we now use one local to class InspIRCd, (everyone point and laugh at Brain)
165     * Optimizing to not use so much cpu with high user loads
166     * Made 'fake direction' less loud, removed 'invalid source'
167     * Added SetSignals()
168     * Signal handlers were not being set when -nofork was enabled
169     * Changed some other stuff that used the old vector/deque style commandlist
170     * Changed from std::map to hash_map
171     * Command search function now uses std::map, should be faster (i hope)
172     * Removed useless isnick() checks in Give* and Take*, in the name of tidiness
173     * Tidyups to mainloop, why were we using isnick() to check if a user was registered?
174     * New system for client exits using CullList seems stable, needs testing
175     * Changes to the way clients are exited during mainloop - MAY BE UNSTABLE USE WITH CAUTION
176     * Check on upper bounds of base64 decode
177     * Added checking for bad base64 decodes
178     * Updated chanfilter to use irc::string
179     * Modified to omit unimplemented module methods
180     * Fixed and implemented /modules debug <glob>
181     * Added /modules debug
182     * Added global_implementation array, bypasses calls which *NO* modules are currently implementing
183     * Fixed missing I_On005Numeric
184     * New 'Implements' system
185     * Added support for implementation hooks
186     * Adding hook type checking to event calls to speed them up
187     * Allow halfop to dehalfop themselves`
188
189
190 1.0 Final - RC1
191
192     *  Improved efficiency of chanrec constructor (removed strcpys)
193     * Changed two fields in ConnectClass to strings, moved constructor stuff to init-list
194     * Added 'build complete' message
195     * Somehow, the examples had gotten into the conf/ dir, they belong in docs/
196     * Improved m_alias to only capture complete commands and rewrite them (bug #92 as reported by strike)
197     * Added more verbose error output during link
198     * Added CAPAB checking to prevent some obvious n00biness that may occur
199     * Initial revision of CBAN. It doesn't do anything useful just yet.
200     * LD_LIBRARY_PATH setting is no longer required by core or m_sql.so
201     * Changed $CompileFlags to seperate $CompileFlags and $LinkerFlags
202     * Added -Wl,--rpath -Wl,LIBDIR to linking parameters to allow users to directly start the binary without the launcher, if they wish
203     * Improved makefile dependency lists
204     * Removed some redundant code that was commented out
205     * Added extra sanity check in squit to make sure REMOTE Servers dont try and squit a server from itself!
206     * Added Socket = NULL for local server class to prevent it being 'selectable' by squit
207     * Made linking more nazi, will drop connections that send bad commands
208     * Fixed to not allow :Abc NICK Abc, where the case of the old and new nick are *identical*
209     * Added extra diagnostic messages during connect, if connect fails
210     * Added stricter checking for encryption on connect, if enabled
211     * Fixed case-change nicks not being propogated
212     * Allow case changes in nick w00t -> w00T
213     * Added extra key length checks, documented encryption in example conf
214     * Added AES encryption to spanningtree links
215     * Added IOHookModule stuff to allow for different modules to hook different ports
216     * Fixed spanningtree to not allow malformed conf tags (missing/empty values), Added m_spanningtree, m_swhois and some clarifications to example conf
217     * Split all commands into seperate files and redid command system to take classes, not function pointers (function pointers suck ass)
218     * Moved serverstats* stats to InspIRCd class
219     * Moved SocketEngine* SE into InspIRCd class
220     * Moved mode stuff into modeparser
221     * Moved command_parse functions into class CommandParser
222     * Optimized away a memset made it potentially 10x faster
223     * Fixed BUG, If an opers SendQ exceeded, it would bring down the server!
224     * Added 'local users' vector
225     * Full removal of inspircd_util.h
226     * Improved pointer voodoo in chanmodes(), many less strlcats
227     * Made apply_lines apply perm lines again
228     * Added documentation for CullItem and CullList
229     * Updated so that netsplits use the cull_list.
230     * Added CullList class
231     * Added Server::GetVersion()
232     * Added new docs for class InspIRCd and globals.h etc
233     * Removed depreciated docs
234     * moved declarations of typedefs for user_hash and chan_hash etc to typedefs.h
235     * Fixed a couple of missing \n's at request of Special
236     * optimized a ton of strcmps down to an integer comparison!
237     * Optimized accept() stuff to eliminate loop, idea while talking to w00t
238     * Got rid of the evil loopy horrid mess in dnsqueue.cpp (singlethreaded dns lookups)
239     * Made dnsqueue clean up its sockets from the socketengine properly
240     * Prevented zlines from being allowed with a username/ident in them
241     * Modified chlist() and whois to allow output of multi line channel membership list (!)
242     * Made MAXCHANS growable for opers/ulines
243     * Removed some logging that can cause excessively huge logs when select() is being used
244     * Removed some remnants from mesh linking
245     * Moved some stuff out to userprocess.cpp
246     * Efficiency suggestion by w00t, faster processing of module sockets at the expense of a bit of ram
247     * New version doesnt yield() any more
248     * Made socket loop flush a users buffer if they still remain after processing each line
249     * Changed how background processing works, now once per second repeating until nothing left to do
250     * Tied in DNS to SocketEngine
251
252
253 1.0 Beta 6
254
255     *  Added SPANNING TREE LINKING support, allowing for STABLE FAST and EFFICIENT linking of InspIRCd servers (m_spanningtree.so)
256     * Added m_swhois module, allows setting of arbitary descriptions on users
257     * Added a 'Base' installation path to allow installing of the launcher (handy)
258     * Added support for the new <include:file> system.
259     * Fixed Bug causing the base directory to always overwrite the other dirs
260     * Added Base Directory Path to the Path list at the end of ./configure
261     * Added Library Path to the path list at the end of ./configure
262     * Improved layout
263     * Added -lstdc++ for GCC 4 support
264     * Removed connection.cpp and servers.cpp
265     * Removed static meshed linking from core
266     * Fixed code so that it will still work with kernel 2.8, 3.0, 3.2... whoops.
267     * Added a chomp() just to be sure on kernel 2.6 check
268     * Fix for bug #72 reported by Hal9000
269     * Configuration errors now go to the error log
270     * Updated to allow users to specify their compiler by hand
271     * Added warning about gcc2
272     * A lot more of the core consts are now configurable at compile time
273     * Fixed removal of mesh linking from core
274     * Added cvsignores
275     * Added Metadata API (for transferring extensibles over a network transparent to the protocol)
276     * GCC4.0 warning fixes
277     * Added BoolSet utility class
278     * Removed cross-server mesh stuff
279     * Fixed missing constructor on class connection
280     * Tons of DNS debugging and stability fixes
281     * Added experimental multi-threaded DNS using pthreads!
282     * Added notice-to-servermask
283     * Added ability to output 'is an oper but i dont know what type' in WHOIS
284     * Added clever code to propogate module's special commands (SAJOIN, KNOCK etc) transparently!
285     * Added opaque protocol functions
286     * Highly optimized userrec saving 1.5k per user
287     * Added tons of extra documentation to Module class
288     * Added OnCleanup function
289     * Added OnChangeHost
290     * Added OnChangeName
291     * Added OnWallops
292     * Removed old OnUserSync and OnChannelSync
293     * Added Server::RehashServer
294     * Added onrehash parameter
295     * Added OnGetServerDescription (mainly for link modules)
296     * Added OnPostLocalTopic
297     * Added OnUserInvite
298     * Added remote kill
299     * Added opertype to OnOper and added OnMode function
300     * Added reason to OnUserQuit
301     * Added OnUserMessage and OnUserNotice (why have these been missing so long?)
302     * Removed mesh module functions
303     * Added OnLoadModule and OnUnloadModule (OnLoadModule was not triggering)
304     * Tidied up socket engine code, moved into a specialized header full of #defines
305     * Fixed to compensate for ~ in ident length
306     * Optimized xline system (much faster, more efficient, less cpu usage)
307     * Added insane tag (prevents wide gline etc)
308     * Now shows remote quits differently
309     * Fixed RFC-non-complaince of TOPIC and NAMES with +s channel (As reported by Ghost)
310     * Fixed LUSERS and MAP to display 'dummy' data when no linking module is loaded
311     * Changed behaviour of module API to pass Server* to the constructor, rather than have to create one (makes more sense)
312     * DNS safety and logging
313     * Fixed 'fake direction' messages being put out by user->registered = 7 being set too early
314     * Removed the MESHED 005 numeric token
315     * Changed epoll delay
316     * Allowed ulined servers to by pass all oper permissions checking
317     * Added stricter checking for listening sockets
318     * Fixed compile time glitches in new code, removed obselete variables
319     * Added ability for ulined servers to set any arbitary channel mode (even from outside the channel)
320     * Added ability to put command named * into a class to make it cover all
321     * Fixed Case sensitivity Bug (BugTrack #88) in m_chanfilter.cpp
322     * Changed m_chghost.cpp to silently set hosts if uline sets it
323
324
325 1.0 Beta 5
326
327     *  Added windows comments to module section. Added m_denychans. -katsklaw
328     * Added 557 numeric (from MS Exchange chat server) to indicate too many results from /WHO
329     * RPL_WHOLIMEXCEEDED changed to 523 to match bahamut
330     * Added .cvsignore files
331     * Added a ton of missing prompts wink.gif
332     * Added cvsignore
333     * Changed representation of MAXNICK in isnick() to allow for a non-incremented size
334     * Fix for bug #70 (only first item working properly)
335     * Fixed max channel length
336     * Added ability to update the helpop file on rehash (Bug #69)
337     * Added denychans module, allows blocking of channels
338     * Added parameters to comments
339     * Changed so that when the first in the channel gets founder, the +q mode change is sent to keep the client synched (requested by katsklaw)
340     * Fixed nicklength perpetually increasing on each run (reported by katsklaw)
341     * Fixed to never append double sums
342     * Fixed to preserve epoll/select/kqueue choices
343     * Operhosts are now optional (in the type tag)
344     * Added check to not flush disconnected buffers
345     * Added code to not try and increment buffer if wrote 0 chars
346     * Added extra code to notify mainloop when the iterator has been mangled (e.g. by netsplit quits)
347     * Added more immediate disconnect when a server isnt routable any more
348     * Added ping checks for server links (experimental)
349     * Added stuff for /map improvements
350     * Autoconnection of servers added
351     * Changed to not show remote quits (we don't show remote connects after all)
352     * Fixed compile glitch on 3.4
353     * Fixed inbound server errors
354     * Fixed to erase .so and binaries before trying to overwrite them so mmap doesnt mess up and segfault any running copy (thanks jilles)
355     * Fixed to flush buffers when connection closed
356     * Fixed to not autoconnect servers we already have!
357     * Nonblocking connect() for outbound server links (why was this blocking anyway)
358     * Changed /map to show authenticating servers with a * similar to hybrid
359     * Now clears the autoconns map on rehash
360     * Sum not being propogated properly fix
361     * Example conf update from katsklaw
362     * Buffer size limits (hard coded to 1mb for now, will allow to raise in config later)
363     * Fixed bug where when a server split all other servers would stop responding
364     * Fixed the server names reported in /stats l
365     * Output buffering on server connections
366     * Removed m_globops setting +g automatically on oper, m_opermodes.so can do this now
367     * Tidied up some socket stuff into userrec
368     * Changed revision id's to std::string
369     * Added m_opermodes.cpp, allows addition and removal of modes on oper up
370     * Added COMMANDS command (yes, really)
371     * Added detail to /COMMANDS
372     * Changed cygwin warning
373     * Changed to fix minor typo in dynamic-build makefile
374     * Edited to properly detect strlcpy on netbsd (different declaration in string.h didn't match regexp)
375     * Fixed /COMMANDS
376     * Fixed case-sensitivity typo in module name for Addcommand
377     * Fixed crappy const stuff
378     * Modified to detect kqueue on netbsd
379     * Removed stupid consts
380     * Updated helpop docs
381     * Added eg++ stuff
382     * CC fixes
383     * Changed to use gmake on ALL bsd variants
384     * Kill fixes
385     * Warning message for openbsd users that try and use gcc
386     * Added -lresolv for solaris
387     * Added -lrt for solaris
388     * Bzero removed for compatibility with solaris 10
389     * Fix to minor typo in solaris stuff
390     * Fixes for solaris
391     * Fixes to bad filehandle
392     * Removed unncessary sched_yield calls
393     * Updated for solaris -lsocket / -lnsl
394     * Added configurable SOMAXCONN size
395     * Changed epoll_wait timeout
396     * Default epoll/kqueue to yes
397     * Added: Epoll support
398     * Kqueue and epoll default to enabled now
399     * Made prompts clearer
400     * Mass-connect speedups, also now uses less processor time
401     * Moved a load of servers-only stuff into serverrec out of the way of userrec
402     * Shrunk some datatypes
403     * Removed __single_client_alloc again because gcc devs were smoking crack and removed it
404     * Added hashcomp.cpp, seperates out the stl hash_map stuff
405     * Added a few simple output lines (similar to gnu autoconf so people know what's happening)
406     * Added better detection of strlcpy that doesn't involve compiling a test program (faster)
407     * Added detection for kqueue, so if your BSD system doesn't have it, the configure doesnt ask you smile.gif
408     * Added docs for hashcomp
409     * Added idea from ircu: /invite with too few params shows the channels youve been invited to but have not yet joined
410     * Added irc::string
411     * Specified namespace std in *all* files
412     * Fixed typo in die tag
413     * GCC 3.4/4.0 fixes
414     * Made 'make clean' make cleaner :-P
415     * Made modules use irc::string where they were using strcasecmp()
416     * Moved StrHashComp and InAddr_HashComp into the irc:: namespace
417     * Moved a ton of functions into helperfuncs.h to speed up recompiles
418     * Updated strhashcomp to use irc::string internally rather than a combination of strlower and strcasecmp
419     * Updated to keep lowermap const within hashcomp.cpp
420     * Added 'uniqueness sums': http://www.inspircd.org/wiki/InspIRCd_Serv...Uniqueness_Sums
421     * Added RFCs
422     * Updated example conf to list all non-extra modules with a description of what they do.
423     * Modules now commented out by default, admin must uncomment them to use them. Suggested by lag``
424     * Added Server::GetServerDescription() at request of Craig
425     * Re-added the dot graphs again
426     * Added docs for new smaller memory footprint classes
427     * Changed the type of struct whowas records are stored in (no need to waste a big heavy userrec)
428     * Customizable by-byte-size recvq stuff
429     * Documented new recvq and sendq stuff
430     * Fixed wrong number being shown when sendq exceeded
431     * Honking great memory leak fixed that's been there since the early alphas :/
432     * Optimized some static structs
433     * Structure optimizations, changed a lot of bools into binary bitmasks
434     * Updated default sendq size to 256k
435     * Added sendq stuff, see example config
436     * Fixed weird bug where on mass join/part flood, the channel would be purged before it was actually empty due to its counters being screwed up
437     * Added Cache support for the KQueue Question
438     * Fixed Optimisations not being set.
439     * Added ability to accept() more pending sockets at once
440     * Added socket engine to version response
441     * Fixed crash when socket reads 0 whilst in kqueue mode
442     * Fixed kqueue setting not being changed
443     * Made ping check loop less regular in kqueue version
444     * Changed pool size from 64 to 1024
445     * Fixed some of Brains bastardization of configure biggrin.gif
446     * Fixed Craig's buggy configure tongue.gif
447     * Fixes to way allocations are handled
448     * Hit dns with spork. Repeat until crispy.
449     * Modified to rm the .o files from the modules dir
450     * Modified to use -pipe
451     * New way of building modules, this is supposedly more portable
452     * Now secures binaries with 0700 perms as theyre installed
453     * Optimised strlower (much faster, uses a lookup table)
454     * Optimized userlist() (a lot faster with many users online)
455     * Fixed bug where another users buffer could end up in the buffer of an exiting client before they quit
456     * /WHOIS as oper now shows real ip as well as real host
457     * Added USERIP numeric 005 output
458     * Added m_userip.cpp requested by Selphie
459     * Changed the final bunch of udp_* vars to server_*/tcp_*
460     * Fixed ircservices sending PING
461     * Changed to fully dynamic core (should be faster compile times)
462     * Fix naming glitches
463     * Fixed remote kills to display the correct source (spotted while talking to aquanight)
464     * Fixed to use numeric 340-
465     * Renamed core files to all be libIRCD*
466
467
468 1.0 Beta 4
469
470     * Fixed configure bug resulting in osflags being called BEFORE getcache (Making it redundant.)
471     * Fixed output of src/modules/Makefile saying it was made by Craig.net tongue.gif
472     * Updated for test gcc4 compatibility
473     * Added support back for ./inspircd
474     * Added a line to automatically chmod ./inspircd to 0744 ('Last Second Save!')
475     * configure now supports any future .file.inc includes (Yes, i can see into the future)
476     * Updated makefile
477     * New Perl ./configure
478     * Added -Woverloaded-virtual to catch annoying module typos
479     * Fixed to always look for the ircd.log within the bin/ dir
480     * Fixed to not spool the error log after ./inspircd debug
481     * Sanity checks for fd_ref in addclient
482     * Fixed 'server ignores me forever if i throttle the server with connections' bug
483     * Debugging now allowed from ./inspircd (./inspircd debug)
484     * Added LD_LIBRARY_PATH hacks/kludges to the .inspircd.inc file to make it find libmysql in funny situations
485     * Added final documentation for inspircd Beta 4
486     * Added important note relating to ip addresses in <link:ipaddr>
487     * Added schema for m_sqllog.so
488     * Added m_sqloper, allows storage of opers within a mysql database
489     * Commented new functions
490     * Major *MAJOR* optimizations by double-referencing channels to users (never need to scan the entire user hash again except in very rare circumstances)
491     * Added channel 'counter', increases speed of quits, parts, kicks
492     * commented some users and connections code
493     * added remote @* notice
494     * Added remote versioning
495     * Fixed dicky buffer (due to cleanup the wrong variable was being used)
496     * Services speedups for stupid buffered i/o uplinks
497     * Added server input buffers (for systems that decide buffering is fun)
498     * Major code tidyup (-W)
499     * Fixed some flood checking
500     * added noticeall
501     * Added a Server:: method to send server notices to channels
502     * Added explicit oper tracking in a vector of userrec* pointers, optimizes sending out oper notices
503     * Fixed: +s and +p channels wouldn't be synched correctly
504     * Fixed: +s and +p never show in whois even when you're a member of them
505     * Fixed: +s and +p never show in list even if you're a member of them
506     * Added Server::FindDescriptor
507     * Added and tested fd crossreference table - improves speed a lot, and fixes one of the /STATS chars which has been broken a while
508     * Added OnAddBan and OnDelBan module api calls, and fixed glitch which required them in m_timedbans module
509     * Added OnOperCompare function to override strcmp in password check for /oper
510     * Added module message passing architecture
511     * Added a few anti-flood features
512     * Updated buffering, faster and more sensible (old code sucks)
513     * Added password field
514     * Removed some debug output
515     * Added /stats T
516     * Empty but non-null string passed to is_uline now returns true
517     * Added numeric 318 to /WHOIS when nick is not found (end of whois should still be there as its a list response)
518     * Added numeric 412 "no text to send"
519     * Changed to handle : as a NOP token so that 'assuming' inspircd knows RFC commands wont cause tons of errors
520     * Fix to a mode parsing bug (eating wrong version of parameter?)
521     * fixed warning of redefinition of RUSAGE_SELF
522     * Fix annoying off-by-one error in connection::RecvPacket
523     * Added more fault tolerance to server links
524     * Added new /stats z
525     * Fixes to /who output
526     * Added mode 'compression', stops abuse with modes like: +s-s+s-s+s-s
527     * Test fixes for /version strings not being set in burst
528     * Fixed a reversed strcmp
529     * Added 901 numeric - end of modules list
530     * Added support for /SQUIT <mask> and checks against /SQUIT *
531     * Changed remote kill reason text
532     * Fixed strange leading ":" on remote Z/K/G lines
533     * Fixed so that quitprefixes are shown in client exit notices
534     * Added global oper monitoring through modules and global connect monitoring through modules
535     * Fixed weird issues when anope sends large amounts of text at once to the uplink
536     * Fixed dodgy poll()
537     * Added new and improved GetBuffer function based on research on crappy redhat 7.3
538     * Fixed park crash bug #63 reported by ViaraiX
539     * Reordered some on-connect network stuff to stop services being so confused
540     * Extra safety checks to avoid trying to write() remote users
541     * Optimized WriteCommon and WriteCommonExcept
542     * Fixed weird line wrapping bug with extremely long lines
543     * Made xline notices neater when notifying of unknown connections
544     * Fixed WriteCommon not writing to the source user when not on any channels
545     * Changed "is now running" message to AFTER port bind checks
546     * Added PID reporting and testing before daemonize
547     * Changed startup ascii to green. Elphaba would be so proud tongue.gif
548     * Fix to prevent empty umodes
549     * Fixed empty modes from nickserv
550     * Optimized modes (removed strlens etc)
551     * Fixed empty modes issue that emerged after dodgy code was corrected
552     * Fixed services not being informed of force joins
553     * Fix to prevent quits being sent onto the network for nonexistent users
554     * Added faster wildcard checking routines
555     * Fix for bug #62 (replaces only occur once per line in m_censor)
556     * m_chanfilter now works on gcc 2.95.x again.
557     * m_chanprotect fixed to remove privilages upon kick
558     * Fixed WriteChannelWithServ
559     * Added module which provides MD5 encryption for oper passwords plus /mkpasswd
560     * Added another check for 'NoServerUline' type thing in m_services.
561     * Added Check for 'NoServer' when +r ing a channel in m_services.
562     * Added m_timedbans (timed bans module for channel ops/halfops)
563     * Added m_sql, module to provide sql db access to other modules
564     * Added m_sqlauth - allows authorizing of connections via an arbitary mysql table with a username and password field
565     * Added m_sqllog - allows you to log your irc information to an sql database
566     * Added m_sqloper, allows storage of opers within a mysql database
567
568 1.0 Beta 3
569
570 Added rm -rf src/modules/*.so to make modclean
571 Added module message passing architecture
572 added Module::OnMeshToken
573 added Server::MeshSendAll
574 added Server::MeshSendCommon
575 added Server::MeshSendAllAlive
576 added Server::MeshSendUnicast
577 added Server::MeshSendAllExcept
578 added Server::MeshCheckChan
579 added Server::MeshCheckCommon
580 added Server::FindModule
581 added New docs for API
582 added Module::OnRawMode
583 added Module::OnCheckInvite
584 added Module::OnCheckKey
585 added Module::OnCheckLimit
586 added Module::OnCheckBan
587 added Module::OnStats
588 added Module::OnChangeLocalUserHost
589 added Module::OnChangeLocalUserGECOS
590 added Module::OnLocalTopicChange
591 Added Server::AddGLine
592 Added Server::AddKLine
593 Added Server::AddZLine
594 Added Server::AddQLine
595 Added Server::AddELine
596 Added Server::DelGLine
597 Added Server::DelKLine
598 Added Server::DelZLine
599 Added Server::DelQLine
600 Added Server::DelELine
601 Added Server::Duration
602 Fixed /LUSERS server count
603 Updated documentation of <connect> tags at request of Strike
604 Fixed somebody putting double closing tags, nullifying the effect of allowhalfop in the example conf
605 Removed deprecated class 'packet'
606 Fixed Dns free() errors
607 Added ability for modules to hold users in a 'holding pattern' while they do stuff on connect
608 Added OnUserDisconnect method to modules.* to fix fd leak in m_ident.cpp
609 Added the m_chanfilter module, implements chanmode +g which allows channel specific badwords (YAY)
610 Added Module::OnSendList
611 Added m_conn_lusers.so: Sends /LUSERS on connect
612 Added m_ident.so: nonblocking ident lookup module
613 Fixed /kill bug in m_operlevels (couldnt kill non-opers)
614 Changed m_override: Fine-grained control over what can be overridden by whom
615 Added m_park, user parking to keep ops during a ping timeout (suggested by Ib3N)
616 Fixed limit checking in core and m_redirect.so
617 Added m_setidle, allows opers to set their idle times
618 Added Module::OnBackgroundTimer method, ticks approximately every 5 seconds
619 Yet more optimizations!
620 Added 'server already exists' check for u-type links
621 Fixed bug when ordering a bot to leave using anope services
622 Fixed anope module sending L tokens with 2 instead of 3 params (made code more tolerant instead of changing module)
623 Fixed broken server/server handshake for U-type server links (services)
624 Fixed strhashcomp to forbid matching scandanvian nicks properly eg. [Brain] and {Brain}
625 Fixed lingering (SO_REUSEADDR was being set to 0?)
626 Added Module::OnCheckReady and Module::OnUserRegister
627 Updated /INFO
628 Fixed to allow server to server traffic again (DOH)
629 Added PID reporting and testing before daemonize
630 Changed "is now running" message to AFTER port bind checks
631 Fixed strange join behavior reported by w00t (mirc requesting MODE immediately after JOIN)
632 Fixed bug #47 reported (and suggested fix) by Om
633 Fixed bug where if channel limit was lower than the user count users could still join, but not if it was equal
634 Added Module::OnUserKick and Module::OnUserPreKick
635 Added Server::PseudoToUser and Server::UserToPseudo
636 Made setrlimit a commandline option
637 Removed some old uneeded code
638 Made cmode and chanmode more safe
639 Fixed a double free in dnsqueue.cpp
640 Fixed a resolver issue (weird segfault on gentoo?) in server linking
641 Double 367 numeric glitch fixed
642 Added Server::IsValidHostMask
643 Added getrlimit/setrlimit to set process limits to allow a core dump
644 Removed some logging from wildcard.cpp
645
646 1.0 Beta 2
647
648 * Added a lot of small fixes based on feedback of beta 1
649 * Fixed compile issues on freebsd due to an icky shellscript expression that failed to detect strlcat
650 * Added more advanced m_override.cpp module due to user request (thanks Rob)
651
652 1.0 Beta 1
653
654 * Enough optimizations to shake a very big stick at
655 * Added asyncronous DNS
656 * Changed /MODULES to allow simplified output for non-opers
657 * Added module flags to /MODULES for opers
658 * Added /UNLOADMODULE
659 * Added /LOADMODULE
660 * Added resource tracking for modules
661 * Added extra log output for oper success and failure
662 * Added hostname checking for opers (someone left it out *looks around nonchalantly*)
663 * Added module API OnUserPostNick method
664 * Added E:Lines and /ELINE (ban exceptions)
665 * Security fixes to /MODE and /TOPIC
666 * Fixed a cosmetic bug in /WHO
667 * Fixed random crashes when user connecting
668 * Fixed 'unlikely' crash if nick was changed before dns lookup completed
669 * Fixed to actually check the password of linking servers (someone left this out too!)
670 * Added error checking to make sure opertypes exist before opering a user!
671 * Added 005 handling for modules
672 * Added onKill event for modules
673 * Added OnModuleLoad event for modules (notified of all module loading)
674 * Added <disabled:commands> tag
675 * Added ability to disable any command for non-opers
676 * Added customizable ping frequency to <connect:allow>
677 * Added optional module path to the configuration file
678 * Added support for Rehashing to allow adding and removal of modules
679 * Added module VersionFlags support
680 * Fixed a resolver issue (weird segfault on gentoo?) in server linking
681 * Changed the loglevel of some startup failure messages to DEFAULT (were DEBUG)
682 * Optimized connects - motd is sent faster
683 * InspIRCd now logs value of <die> to the logfile on failure
684 * Added new <banlist> tags, allows dynamic banlist sizes on a per channel basis rather than hard coded or network wide
685 * Fix for bug #39, m_redirect returning invalid/random value for OnUserPreJoin method of the module class
686 * Added code to shutdown listening sockets on exit
687 * Added pid file support, and documentation for it
688 * Fixed string format vunerability, thanks again to the #ratbox people for helping find it
689 * Fixed 005 numeric to only output 13 tokens per line (thanks anfl)
690 * Replaced some 005 constants with their configured values
691 * Fixed "error in free()" and other bugs going to open sockets
692 * Config files read by the ircd are now chmod'ed 0600
693 * Fixed parsing error with comments that have tabs before them
694 * Added implementation of strlcpy and strlcat for systems that dont have it
695 * Fixes to crash when setting the key of a channel youre not a member of
696 * Fixed issue where failing modules would bail by calling exit (deprecated) -- modules should now just disable their functionality if they are missing data
697 * Added GetVersion() to m_showwhois.cpp
698 * m_chanprotect.so fixed to take away +q and +a when the user parts the channel (double DOH)
699 * Added 005 numeric handling to most of the modules
700 * Added m_hostchange module, our own homebrew implementation of the unreal pay module!
701 * Added m_nicklock module, a module which allows opers to lock a user to a nickname until they quit
702 * Added m_operlevels, prevents opers designated as above other opers from being killed
703 * Fixed Crash bug cause by multiple declarations of 'Srv' in m_randquote.so (Bug #35)
704 * Added m_remove by om, uses a force part to replace a kick to thwart auto rejoin
705 * Added module to restrict channel creation to opers only (requested by [ed])
706 * Added a module at request of [ed] which stops anyone messaging all but opers
707 * Added m_silence.so - implementation of /SILENCE command
708 * Added ./inspircd (start|stop|restart|rehash|status|cron|Cheese-Sandwich) (Happy luigiman?)
709 * Made a slightly nicer method for .Makefile.inc
710 * Updated ./configure to reflect the above changes.
711 * Removed reference to depricated ./makeconf and updated command to exec to build the daemon.
712 * Added dynamic src/modules/Makefile generation, during ./configure the script will search modules for /* $CompileFlags: */ and append any given flags to its g++ line.
713 * Startup script modified to kill -9 if a kill -TERM fails.
714 * Makefile will ignore if cp fails to copy the binaries.
715 * Added <disabled:commands> to the example config (commented out by default!)
716 * Documented /LOADMODULE and /UNLOADMODULE plus new /MODULES behaviour
717 * New docs to match extra module Version class stuff, etc
718 * Added new documentation for ELine class and OnUserPostNick method
719 * Added DNS class to documentation
720
721 1.0 alpha 12
722
723 * Updated ./configure to detect GCC 3.4.x
724 * Added m_showwhois.so - lets opers see when theyre WHOISed
725 * Added m_opermotd.so - Gives opers an opermotd on oper-up
726 * Added m_operjoin.so - Forces opers to join a given channel when they oper
727 * Security audit resulting in more secure and stable code
728 * Added lots of error checking to the configuration parser
729 * InspIRCd now works with BOPM, please see the tutorial on our forums
730 * UMODE issues with SVSMODE finally addressed, working fine again
731 * Services issues addressed and fixed
732 * Added generic error output to the ConfigReader class (ConfigReader::DumpErrors())
733 * Fixed sys/socket.h error on earlier versions of GCC (2.95.x)
734 * Redone documentation
735 * Fixed mode changes (they actually work now!)
736 * Module passes service names to its uplink now
737 * ChanServ actually sets channel modes rather than the server!
738 * NickServ actually sets umodes rather than the server!
739 * Double-mode-changes no longer occur
740 * User nickname registration tracking with +r works properly again
741
742 1.0 Alpha 11
743
744 * Added lots of bugfixes
745 * Optimised, works faster, and smoother
746 * Added support for non-mesh servers
747 * Added services support
748 * Implemented example ircservices module (working with ircservices 5)
749 * Added m_services module
750 * Added m_antibottler module
751 * Added m_alias module
752 * Added glines (local and global)
753 * Added klines
754 * Added qlines (local and global)
755 * Added zlines (local and global)
756
757 1.0 Alpha 10
758
759 *  Added server linking support (tcp based mesh link)
760 * Lots of stability fixes
761 * Speed improvements
762 * Optimisations, no longer eats cpu so much
763 * GCC3 and GCC2 support
764 * Even bigger module API
765 * More documentation
766 * m_antibottler, labels bottler bots
767 * m_chghost, gives you a /chghost command
768 * m_cloaking, gives you hostname cloaking and mode +x
769 * m_filter, filters glob patterns on channels and private
770 * m_globops, provides /GLOBOPS and mode +g support
771 * m_helpop, gives /HELPOP and mode +h support
772 * m_sajoin, force-join a user to a channel
773 * m_sapart, force-part a user from a channel
774 * m_samode, force a mode change on a user or channel
775 * m_saquit, force a quit of a client without /kill
776 * m_sethost, allows opers to change their hostmasks
777 * m_setname, allows users to change their name
778 * HELPOP documentation accessible with the helpop module loaded
779 * Split the ircd into many smaller files for faster compiling
780 * Improved configure and makefile phase
781 * Added all oper commands (CONNECT, SQUIT etc)
782 * Added remaining server->server commands such as /MAP
783 * Connection pooling, uses less CPU for the same tasks as before
784 * High-powered server to server link protocol unlike any other ircd
785
786 1.0 alpha 9.5
787
788 * Added support for /connect (no sync yet!)
789 * Added extra module support and improved api
790 * Improved developer docs, see http://www.inspircd.org/docs/
791 * FINALLY fixed crash-on-disconnect bug
792 * Fixed many stability bugs
793 * Fixed length and buffer overrun issues that caused user records to become corrupted without crashes (!)
794
795 1.0 alpha 9
796
797 * Added /WHOWAS
798 * Made ircd cache message of the day in a vector (faster!)
799 * Added support for multiple lines of /NAMES on large channels
800 * Added hostname/ip caching to speed up connects
801 * Added '/stats z'
802 * Added Server class
803 * Added more code to example module demonstrating use of Server class
804 * Added Admin class (holds /admin info for modules)
805 * Added methods to Server class
806 * Added m_cloaking.so module, provides host masking
807 * Added /AWAY
808 * added /ISON command (for mIRC etc basic notify)
809 * Added /USERS stub
810 * Added /SUMMON stub
811 * attemted to fix weird crash on /kill
812 * added pause= value to /die and /restart in config
813 * Attempted to fix closed client sessions not being detected
814 * Added wildcard support
815 * Added channel bans
816 * Changed user and channel structs to classes (finally)
817 * Fixed parameter error in QUIT code (was showing junk chars on BSD)
818 * fixed some ugly pointer bugs (thanks dblack and a|KK|y!)
819 * Added /INVITE command and relevent structures
820 * Added CONNECT ALLOW and CONNECT DENY config tags
821 * Added PASS command
822 * Fixed: /LUSERS cant count :P
823 * added /TRACE command
824 * Implemented channel mode +m
825 * Added channel modes, +k, +l, +i, +m etc
826 * Added user and channel modes +i, +p, +s
827 * Implemented usermode +s
828 * Fixed dodgy mode glitches (the ones Craig loves to play with, awww)
829 * Added code to tidy up bans (e.g. max nick length) - i blame mIRC!
830 * fixed multiple /MODE +l bugs (thanks to akky and BOFH bugging meh!)
831 * Fixed ident max length to 10
832 * fixed random crash on kill_link (AGAIN) - was /stats
833 * improved speed 10x (because i can...)
834 * optimisations galore!
835 * Added FileReader file-caching class
836 * Changed m_randquote to use FileReader class
837 * Neater source tree (binaries in bin, source in src, headers in include, etc)
838 * Added /WHOWAS
839 * Tidied up makefiles
840 * Much nicer configure program
841 * makeconf program (very nice config maker by Craig)
842
843
844 1.0 alpha 8
845
846 * Added Admin class (holds /admin info for modules)  
847 * Added methods to Server class  
848 * Added m_cloaking.so module, provides host masking  
849 * Added Server class  
850 * Added more code to example module demonstrating use of Server class  
851 * ./configure improved by Craig (better prompts, dir creation)  
852 * /stats z added detail  
853 * Added '/stats z'  
854 * Added hostname/ip caching to speed up connects  
855 * Made ircd cache message of the day in a vector (faster!)  
856 * Added support for multiple lines of /NAMES on large channels
857
858 1.0 alpha 7
859
860 * Added /USERHOST command 
861 * Added '/STATS O' 
862 * removed random debug output 
863 * Fixed random crash on nickchange  
864 * Fine tuned ability to handle >300 users 
865 * added '/stats L' (connect-info) 
866 * '/stats u' support added (server uptime) 
867 * added '/stats M' command 
868 * Added extra dynamic module support, new methods to Module class
869
870 1.0 alpha 6
871
872 * Changed command table to a vector of command_t types 
873 * Dynamix module support, preliminary release 
874 * Fixes random crash on nickchange 
875 * Fixed wallops and command parameter counting bugs 
876 * fixed "user lingering" problem in kill_link 
877 * updated example config 
878 * developed a simple sample module (m_foobar.so)
879
880 1.0 alpha 5
881
882 * Changed channel array to a hash_map similar to the one used for users, faster and more efficient
883 * Changed ./configure, no longer asks for hard channel limit (depreciated)
884 * Added support for users to be disconnected once MAXUSERS is reached
885 * Changed code a lot, major overhauls for C++ and STL use for added stability and speed
886 * Changed entire user system to use the hash_map container type instead of an array
887 * Added /TIME command
888 * Added /INFO command
889 * Added restart and die passwords
890 * Partially implemented /RESTART command
891 * Fixed amusing bug which allowed partially connected clients to issue commands under the context of other users! *gulp!* (reported again by Craig)
892 * Fixed SegFault caused when doing a /who 0 or /who * whilst not in channels (Reported by Craig, Fixed by Craig :p)
893 * Added /who 0 o to display online Opers (Craigs First Scratch of Code :p)
894 * Fixed Typo in LUSERS (Reported by MrBOFH and CC)
895 * Fixed Joining Channels withough a # bug. (Reported by MrBOFH)
896
897
898 1.0 alpha 4
899
900 * Fixed parameters bug discovered by Allan
901 * Fixed /NICK repeating bug found by piggles.
902 * Added /REHASH command
903 * Added /LUSERS command
904 * Added ability to kill -HUP to rehash
905 * Fixed lock up after ping timeout
906 * Added system to /VERSION
907 * Added DNS lookups on connect (*FIXME* this needs to be asyncronous!)
908 * Fixed IRCop status shown on wrong users
909 * Fixed socket linger option via setsockopt (can restart faster as sockets arent in use after shutdown!)
910 * Added operators can now see real userhost in WHOIS
911 * Added oper-up failed msg to online opers
912 * Changed layout of /motd command start numeric
913 * Fixed empty channels are now purged upon user quit
914 * Changed: support for WHO * as well as WHO 0 (do the same thing)
915 * Fixed ability to kick users when you arent on the channel :)
916 * Fixed grammatical error when halfop tries to kick an op, "You must be at least a half-operator"
917
918
919 1.0 alpha 3
920
921 * Fixed problem where nicks containing control codes were allowed
922 * Added support so that ircd honours channel mode +n
923 * Added support so that ircd honours channel mode +t
924 * Fixed linefeeds in middle of line bug (reported by Craig)
925 * Fixed buffer overflow in channel names (reported by Allan)
926 * Fixed close() on nonblocking sockets problem
927 * Added /KILL command >:)
928 * Added /KICK command
929
930 1.0 alpha 2
931
932 * addition of /oper and several Channel Modes.
933 * new config file format
934