]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/ChangeLog
Added module sockets to new engine, MAY NOT WORK
[user/henk/code/inspircd.git] / docs / ChangeLog
1 1.0 Beta 4
2
3     * Fixed configure bug resulting in osflags being called BEFORE getcache (Making it redundant.)
4     * Fixed output of src/modules/Makefile saying it was made by Craig.net tongue.gif
5     * Updated for test gcc4 compatibility
6     * Added support back for ./inspircd
7     * Added a line to automatically chmod ./inspircd to 0744 ('Last Second Save!')
8     * configure now supports any future .file.inc includes (Yes, i can see into the future)
9     * Updated makefile
10     * New Perl ./configure
11     * Added -Woverloaded-virtual to catch annoying module typos
12     * Fixed to always look for the ircd.log within the bin/ dir
13     * Fixed to not spool the error log after ./inspircd debug
14     * Sanity checks for fd_ref in addclient
15     * Fixed 'server ignores me forever if i throttle the server with connections' bug
16     * Debugging now allowed from ./inspircd (./inspircd debug)
17     * Added LD_LIBRARY_PATH hacks/kludges to the .inspircd.inc file to make it find libmysql in funny situations
18     * Added final documentation for inspircd Beta 4
19     * Added important note relating to ip addresses in <link:ipaddr>
20     * Added schema for m_sqllog.so
21     * Added m_sqloper, allows storage of opers within a mysql database
22     * Commented new functions
23     * Major *MAJOR* optimizations by double-referencing channels to users (never need to scan the entire user hash again except in very rare circumstances)
24     * Added channel 'counter', increases speed of quits, parts, kicks
25     * commented some users and connections code
26     * added remote @* notice
27     * Added remote versioning
28     * Fixed dicky buffer (due to cleanup the wrong variable was being used)
29     * Services speedups for stupid buffered i/o uplinks
30     * Added server input buffers (for systems that decide buffering is fun)
31     * Major code tidyup (-W)
32     * Fixed some flood checking
33     * added noticeall
34     * Added a Server:: method to send server notices to channels
35     * Added explicit oper tracking in a vector of userrec* pointers, optimizes sending out oper notices
36     * Fixed: +s and +p channels wouldn't be synched correctly
37     * Fixed: +s and +p never show in whois even when you're a member of them
38     * Fixed: +s and +p never show in list even if you're a member of them
39     * Added Server::FindDescriptor
40     * Added and tested fd crossreference table - improves speed a lot, and fixes one of the /STATS chars which has been broken a while
41     * Added OnAddBan and OnDelBan module api calls, and fixed glitch which required them in m_timedbans module
42     * Added OnOperCompare function to override strcmp in password check for /oper
43     * Added module message passing architecture
44     * Added a few anti-flood features
45     * Updated buffering, faster and more sensible (old code sucks)
46     * Added password field
47     * Removed some debug output
48     * Added /stats T
49     * Empty but non-null string passed to is_uline now returns true
50     * Added numeric 318 to /WHOIS when nick is not found (end of whois should still be there as its a list response)
51     * Added numeric 412 "no text to send"
52     * Changed to handle : as a NOP token so that 'assuming' inspircd knows RFC commands wont cause tons of errors
53     * Fix to a mode parsing bug (eating wrong version of parameter?)
54     * fixed warning of redefinition of RUSAGE_SELF
55     * Fix annoying off-by-one error in connection::RecvPacket
56     * Added more fault tolerance to server links
57     * Added new /stats z
58     * Fixes to /who output
59     * Added mode 'compression', stops abuse with modes like: +s-s+s-s+s-s
60     * Test fixes for /version strings not being set in burst
61     * Fixed a reversed strcmp
62     * Added 901 numeric - end of modules list
63     * Added support for /SQUIT <mask> and checks against /SQUIT *
64     * Changed remote kill reason text
65     * Fixed strange leading ":" on remote Z/K/G lines
66     * Fixed so that quitprefixes are shown in client exit notices
67     * Added global oper monitoring through modules and global connect monitoring through modules
68     * Fixed weird issues when anope sends large amounts of text at once to the uplink
69     * Fixed dodgy poll()
70     * Added new and improved GetBuffer function based on research on crappy redhat 7.3
71     * Fixed park crash bug #63 reported by ViaraiX
72     * Reordered some on-connect network stuff to stop services being so confused
73     * Extra safety checks to avoid trying to write() remote users
74     * Optimized WriteCommon and WriteCommonExcept
75     * Fixed weird line wrapping bug with extremely long lines
76     * Made xline notices neater when notifying of unknown connections
77     * Fixed WriteCommon not writing to the source user when not on any channels
78     * Changed "is now running" message to AFTER port bind checks
79     * Added PID reporting and testing before daemonize
80     * Changed startup ascii to green. Elphaba would be so proud tongue.gif
81     * Fix to prevent empty umodes
82     * Fixed empty modes from nickserv
83     * Optimized modes (removed strlens etc)
84     * Fixed empty modes issue that emerged after dodgy code was corrected
85     * Fixed services not being informed of force joins
86     * Fix to prevent quits being sent onto the network for nonexistent users
87     * Added faster wildcard checking routines
88     * Fix for bug #62 (replaces only occur once per line in m_censor)
89     * m_chanfilter now works on gcc 2.95.x again.
90     * m_chanprotect fixed to remove privilages upon kick
91     * Fixed WriteChannelWithServ
92     * Added module which provides MD5 encryption for oper passwords plus /mkpasswd
93     * Added another check for 'NoServerUline' type thing in m_services.
94     * Added Check for 'NoServer' when +r ing a channel in m_services.
95     * Added m_timedbans (timed bans module for channel ops/halfops)
96     * Added m_sql, module to provide sql db access to other modules
97     * Added m_sqlauth - allows authorizing of connections via an arbitary mysql table with a username and password field
98     * Added m_sqllog - allows you to log your irc information to an sql database
99     * Added m_sqloper, allows storage of opers within a mysql database
100
101 1.0 Beta 3
102
103 Added rm -rf src/modules/*.so to make modclean
104 Added module message passing architecture
105 added Module::OnMeshToken
106 added Server::MeshSendAll
107 added Server::MeshSendCommon
108 added Server::MeshSendAllAlive
109 added Server::MeshSendUnicast
110 added Server::MeshSendAllExcept
111 added Server::MeshCheckChan
112 added Server::MeshCheckCommon
113 added Server::FindModule
114 added New docs for API
115 added Module::OnRawMode
116 added Module::OnCheckInvite
117 added Module::OnCheckKey
118 added Module::OnCheckLimit
119 added Module::OnCheckBan
120 added Module::OnStats
121 added Module::OnChangeLocalUserHost
122 added Module::OnChangeLocalUserGECOS
123 added Module::OnLocalTopicChange
124 Added Server::AddGLine
125 Added Server::AddKLine
126 Added Server::AddZLine
127 Added Server::AddQLine
128 Added Server::AddELine
129 Added Server::DelGLine
130 Added Server::DelKLine
131 Added Server::DelZLine
132 Added Server::DelQLine
133 Added Server::DelELine
134 Added Server::Duration
135 Fixed /LUSERS server count
136 Updated documentation of <connect> tags at request of Strike
137 Fixed somebody putting double closing tags, nullifying the effect of allowhalfop in the example conf
138 Removed deprecated class 'packet'
139 Fixed Dns free() errors
140 Added ability for modules to hold users in a 'holding pattern' while they do stuff on connect
141 Added OnUserDisconnect method to modules.* to fix fd leak in m_ident.cpp
142 Added the m_chanfilter module, implements chanmode +g which allows channel specific badwords (YAY)
143 Added Module::OnSendList
144 Added m_conn_lusers.so: Sends /LUSERS on connect
145 Added m_ident.so: nonblocking ident lookup module
146 Fixed /kill bug in m_operlevels (couldnt kill non-opers)
147 Changed m_override: Fine-grained control over what can be overridden by whom
148 Added m_park, user parking to keep ops during a ping timeout (suggested by Ib3N)
149 Fixed limit checking in core and m_redirect.so
150 Added m_setidle, allows opers to set their idle times
151 Added Module::OnBackgroundTimer method, ticks approximately every 5 seconds
152 Yet more optimizations!
153 Added 'server already exists' check for u-type links
154 Fixed bug when ordering a bot to leave using anope services
155 Fixed anope module sending L tokens with 2 instead of 3 params (made code more tolerant instead of changing module)
156 Fixed broken server/server handshake for U-type server links (services)
157 Fixed strhashcomp to forbid matching scandanvian nicks properly eg. [Brain] and {Brain}
158 Fixed lingering (SO_REUSEADDR was being set to 0?)
159 Added Module::OnCheckReady and Module::OnUserRegister
160 Updated /INFO
161 Fixed to allow server to server traffic again (DOH)
162 Added PID reporting and testing before daemonize
163 Changed "is now running" message to AFTER port bind checks
164 Fixed strange join behavior reported by w00t (mirc requesting MODE immediately after JOIN)
165 Fixed bug #47 reported (and suggested fix) by Om
166 Fixed bug where if channel limit was lower than the user count users could still join, but not if it was equal
167 Added Module::OnUserKick and Module::OnUserPreKick
168 Added Server::PseudoToUser and Server::UserToPseudo
169 Made setrlimit a commandline option
170 Removed some old uneeded code
171 Made cmode and chanmode more safe
172 Fixed a double free in dnsqueue.cpp
173 Fixed a resolver issue (weird segfault on gentoo?) in server linking
174 Double 367 numeric glitch fixed
175 Added Server::IsValidHostMask
176 Added getrlimit/setrlimit to set process limits to allow a core dump
177 Removed some logging from wildcard.cpp
178
179 1.0 Beta 2
180
181 * Added a lot of small fixes based on feedback of beta 1
182 * Fixed compile issues on freebsd due to an icky shellscript expression that failed to detect strlcat
183 * Added more advanced m_override.cpp module due to user request (thanks Rob)
184
185 1.0 Beta 1
186
187 * Enough optimizations to shake a very big stick at
188 * Added asyncronous DNS
189 * Changed /MODULES to allow simplified output for non-opers
190 * Added module flags to /MODULES for opers
191 * Added /UNLOADMODULE
192 * Added /LOADMODULE
193 * Added resource tracking for modules
194 * Added extra log output for oper success and failure
195 * Added hostname checking for opers (someone left it out *looks around nonchalantly*)
196 * Added module API OnUserPostNick method
197 * Added E:Lines and /ELINE (ban exceptions)
198 * Security fixes to /MODE and /TOPIC
199 * Fixed a cosmetic bug in /WHO
200 * Fixed random crashes when user connecting
201 * Fixed 'unlikely' crash if nick was changed before dns lookup completed
202 * Fixed to actually check the password of linking servers (someone left this out too!)
203 * Added error checking to make sure opertypes exist before opering a user!
204 * Added 005 handling for modules
205 * Added onKill event for modules
206 * Added OnModuleLoad event for modules (notified of all module loading)
207 * Added <disabled:commands> tag
208 * Added ability to disable any command for non-opers
209 * Added customizable ping frequency to <connect:allow>
210 * Added optional module path to the configuration file
211 * Added support for Rehashing to allow adding and removal of modules
212 * Added module VersionFlags support
213 * Fixed a resolver issue (weird segfault on gentoo?) in server linking
214 * Changed the loglevel of some startup failure messages to DEFAULT (were DEBUG)
215 * Optimized connects - motd is sent faster
216 * InspIRCd now logs value of <die> to the logfile on failure
217 * Added new <banlist> tags, allows dynamic banlist sizes on a per channel basis rather than hard coded or network wide
218 * Fix for bug #39, m_redirect returning invalid/random value for OnUserPreJoin method of the module class
219 * Added code to shutdown listening sockets on exit
220 * Added pid file support, and documentation for it
221 * Fixed string format vunerability, thanks again to the #ratbox people for helping find it
222 * Fixed 005 numeric to only output 13 tokens per line (thanks anfl)
223 * Replaced some 005 constants with their configured values
224 * Fixed "error in free()" and other bugs going to open sockets
225 * Config files read by the ircd are now chmod'ed 0600
226 * Fixed parsing error with comments that have tabs before them
227 * Added implementation of strlcpy and strlcat for systems that dont have it
228 * Fixes to crash when setting the key of a channel youre not a member of
229 * Fixed issue where failing modules would bail by calling exit (deprecated) -- modules should now just disable their functionality if they are missing data
230 * Added GetVersion() to m_showwhois.cpp
231 * m_chanprotect.so fixed to take away +q and +a when the user parts the channel (double DOH)
232 * Added 005 numeric handling to most of the modules
233 * Added m_hostchange module, our own homebrew implementation of the unreal pay module!
234 * Added m_nicklock module, a module which allows opers to lock a user to a nickname until they quit
235 * Added m_operlevels, prevents opers designated as above other opers from being killed
236 * Fixed Crash bug cause by multiple declarations of 'Srv' in m_randquote.so (Bug #35)
237 * Added m_remove by om, uses a force part to replace a kick to thwart auto rejoin
238 * Added module to restrict channel creation to opers only (requested by [ed])
239 * Added a module at request of [ed] which stops anyone messaging all but opers
240 * Added m_silence.so - implementation of /SILENCE command
241 * Added ./inspircd (start|stop|restart|rehash|status|cron|Cheese-Sandwich) (Happy luigiman?)
242 * Made a slightly nicer method for .Makefile.inc
243 * Updated ./configure to reflect the above changes.
244 * Removed reference to depricated ./makeconf and updated command to exec to build the daemon.
245 * Added dynamic src/modules/Makefile generation, during ./configure the script will search modules for /* $CompileFlags: */ and append any given flags to its g++ line.
246 * Startup script modified to kill -9 if a kill -TERM fails.
247 * Makefile will ignore if cp fails to copy the binaries.
248 * Added <disabled:commands> to the example config (commented out by default!)
249 * Documented /LOADMODULE and /UNLOADMODULE plus new /MODULES behaviour
250 * New docs to match extra module Version class stuff, etc
251 * Added new documentation for ELine class and OnUserPostNick method
252 * Added DNS class to documentation
253
254 1.0 alpha 12
255
256 * Updated ./configure to detect GCC 3.4.x
257 * Added m_showwhois.so - lets opers see when theyre WHOISed
258 * Added m_opermotd.so - Gives opers an opermotd on oper-up
259 * Added m_operjoin.so - Forces opers to join a given channel when they oper
260 * Security audit resulting in more secure and stable code
261 * Added lots of error checking to the configuration parser
262 * InspIRCd now works with BOPM, please see the tutorial on our forums
263 * UMODE issues with SVSMODE finally addressed, working fine again
264 * Services issues addressed and fixed
265 * Added generic error output to the ConfigReader class (ConfigReader::DumpErrors())
266 * Fixed sys/socket.h error on earlier versions of GCC (2.95.x)
267 * Redone documentation
268 * Fixed mode changes (they actually work now!)
269 * Module passes service names to its uplink now
270 * ChanServ actually sets channel modes rather than the server!
271 * NickServ actually sets umodes rather than the server!
272 * Double-mode-changes no longer occur
273 * User nickname registration tracking with +r works properly again
274
275 1.0 Alpha 11
276
277 * Added lots of bugfixes
278 * Optimised, works faster, and smoother
279 * Added support for non-mesh servers
280 * Added services support
281 * Implemented example ircservices module (working with ircservices 5)
282 * Added m_services module
283 * Added m_antibottler module
284 * Added m_alias module
285 * Added glines (local and global)
286 * Added klines
287 * Added qlines (local and global)
288 * Added zlines (local and global)
289
290 1.0 Alpha 10
291
292 *  Added server linking support (tcp based mesh link)
293 * Lots of stability fixes
294 * Speed improvements
295 * Optimisations, no longer eats cpu so much
296 * GCC3 and GCC2 support
297 * Even bigger module API
298 * More documentation
299 * m_antibottler, labels bottler bots
300 * m_chghost, gives you a /chghost command
301 * m_cloaking, gives you hostname cloaking and mode +x
302 * m_filter, filters glob patterns on channels and private
303 * m_globops, provides /GLOBOPS and mode +g support
304 * m_helpop, gives /HELPOP and mode +h support
305 * m_sajoin, force-join a user to a channel
306 * m_sapart, force-part a user from a channel
307 * m_samode, force a mode change on a user or channel
308 * m_saquit, force a quit of a client without /kill
309 * m_sethost, allows opers to change their hostmasks
310 * m_setname, allows users to change their name
311 * HELPOP documentation accessible with the helpop module loaded
312 * Split the ircd into many smaller files for faster compiling
313 * Improved configure and makefile phase
314 * Added all oper commands (CONNECT, SQUIT etc)
315 * Added remaining server->server commands such as /MAP
316 * Connection pooling, uses less CPU for the same tasks as before
317 * High-powered server to server link protocol unlike any other ircd
318
319 1.0 alpha 9.5
320
321 * Added support for /connect (no sync yet!)
322 * Added extra module support and improved api
323 * Improved developer docs, see http://www.inspircd.org/docs/
324 * FINALLY fixed crash-on-disconnect bug
325 * Fixed many stability bugs
326 * Fixed length and buffer overrun issues that caused user records to become corrupted without crashes (!)
327
328 1.0 alpha 9
329
330 * Added /WHOWAS
331 * Made ircd cache message of the day in a vector (faster!)
332 * Added support for multiple lines of /NAMES on large channels
333 * Added hostname/ip caching to speed up connects
334 * Added '/stats z'
335 * Added Server class
336 * Added more code to example module demonstrating use of Server class
337 * Added Admin class (holds /admin info for modules)
338 * Added methods to Server class
339 * Added m_cloaking.so module, provides host masking
340 * Added /AWAY
341 * added /ISON command (for mIRC etc basic notify)
342 * Added /USERS stub
343 * Added /SUMMON stub
344 * attemted to fix weird crash on /kill
345 * added pause= value to /die and /restart in config
346 * Attempted to fix closed client sessions not being detected
347 * Added wildcard support
348 * Added channel bans
349 * Changed user and channel structs to classes (finally)
350 * Fixed parameter error in QUIT code (was showing junk chars on BSD)
351 * fixed some ugly pointer bugs (thanks dblack and a|KK|y!)
352 * Added /INVITE command and relevent structures
353 * Added CONNECT ALLOW and CONNECT DENY config tags
354 * Added PASS command
355 * Fixed: /LUSERS cant count :P
356 * added /TRACE command
357 * Implemented channel mode +m
358 * Added channel modes, +k, +l, +i, +m etc
359 * Added user and channel modes +i, +p, +s
360 * Implemented usermode +s
361 * Fixed dodgy mode glitches (the ones Craig loves to play with, awww)
362 * Added code to tidy up bans (e.g. max nick length) - i blame mIRC!
363 * fixed multiple /MODE +l bugs (thanks to akky and BOFH bugging meh!)
364 * Fixed ident max length to 10
365 * fixed random crash on kill_link (AGAIN) - was /stats
366 * improved speed 10x (because i can...)
367 * optimisations galore!
368 * Added FileReader file-caching class
369 * Changed m_randquote to use FileReader class
370 * Neater source tree (binaries in bin, source in src, headers in include, etc)
371 * Added /WHOWAS
372 * Tidied up makefiles
373 * Much nicer configure program
374 * makeconf program (very nice config maker by Craig)
375
376
377 1.0 alpha 8
378
379 * Added Admin class (holds /admin info for modules)  
380 * Added methods to Server class  
381 * Added m_cloaking.so module, provides host masking  
382 * Added Server class  
383 * Added more code to example module demonstrating use of Server class  
384 * ./configure improved by Craig (better prompts, dir creation)  
385 * /stats z added detail  
386 * Added '/stats z'  
387 * Added hostname/ip caching to speed up connects  
388 * Made ircd cache message of the day in a vector (faster!)  
389 * Added support for multiple lines of /NAMES on large channels
390
391 1.0 alpha 7
392
393 * Added /USERHOST command 
394 * Added '/STATS O' 
395 * removed random debug output 
396 * Fixed random crash on nickchange  
397 * Fine tuned ability to handle >300 users 
398 * added '/stats L' (connect-info) 
399 * '/stats u' support added (server uptime) 
400 * added '/stats M' command 
401 * Added extra dynamic module support, new methods to Module class
402
403 1.0 alpha 6
404
405 * Changed command table to a vector of command_t types 
406 * Dynamix module support, preliminary release 
407 * Fixes random crash on nickchange 
408 * Fixed wallops and command parameter counting bugs 
409 * fixed "user lingering" problem in kill_link 
410 * updated example config 
411 * developed a simple sample module (m_foobar.so)
412
413 1.0 alpha 5
414
415 * Changed channel array to a hash_map similar to the one used for users, faster and more efficient
416 * Changed ./configure, no longer asks for hard channel limit (depreciated)
417 * Added support for users to be disconnected once MAXUSERS is reached
418 * Changed code a lot, major overhauls for C++ and STL use for added stability and speed
419 * Changed entire user system to use the hash_map container type instead of an array
420 * Added /TIME command
421 * Added /INFO command
422 * Added restart and die passwords
423 * Partially implemented /RESTART command
424 * Fixed amusing bug which allowed partially connected clients to issue commands under the context of other users! *gulp!* (reported again by Craig)
425 * Fixed SegFault caused when doing a /who 0 or /who * whilst not in channels (Reported by Craig, Fixed by Craig :p)
426 * Added /who 0 o to display online Opers (Craigs First Scratch of Code :p)
427 * Fixed Typo in LUSERS (Reported by MrBOFH and CC)
428 * Fixed Joining Channels withough a # bug. (Reported by MrBOFH)
429
430
431 1.0 alpha 4
432
433 * Fixed parameters bug discovered by Allan
434 * Fixed /NICK repeating bug found by piggles.
435 * Added /REHASH command
436 * Added /LUSERS command
437 * Added ability to kill -HUP to rehash
438 * Fixed lock up after ping timeout
439 * Added system to /VERSION
440 * Added DNS lookups on connect (*FIXME* this needs to be asyncronous!)
441 * Fixed IRCop status shown on wrong users
442 * Fixed socket linger option via setsockopt (can restart faster as sockets arent in use after shutdown!)
443 * Added operators can now see real userhost in WHOIS
444 * Added oper-up failed msg to online opers
445 * Changed layout of /motd command start numeric
446 * Fixed empty channels are now purged upon user quit
447 * Changed: support for WHO * as well as WHO 0 (do the same thing)
448 * Fixed ability to kick users when you arent on the channel :)
449 * Fixed grammatical error when halfop tries to kick an op, "You must be at least a half-operator"
450
451
452 1.0 alpha 3
453
454 * Fixed problem where nicks containing control codes were allowed
455 * Added support so that ircd honours channel mode +n
456 * Added support so that ircd honours channel mode +t
457 * Fixed linefeeds in middle of line bug (reported by Craig)
458 * Fixed buffer overflow in channel names (reported by Allan)
459 * Fixed close() on nonblocking sockets problem
460 * Added /KILL command >:)
461 * Added /KICK command
462
463 1.0 alpha 2
464
465 * addition of /oper and several Channel Modes.
466 * new config file format
467