changes in server
1.6.3 (2014-08-11)
- fixed: a bug affecting G-lines.
- made code work on delphi xe5
- made code compatible with compiling as 64 bits on windows
- fixed an lcore bug that could cause a connection to close if a lot is sent to it in one go
- work around an lcore problem which would cause the ircd to crash sometimes after a few weeks
- increased how much an unreg connection can send, to allow atheme to work (atheme sends its burst without synchronizing, which is wrong)
- zero pad the date notation of the motd
1.6.2.2 (2013-07-04)
- fixed: resolving user's hostnames did not work if running the ircd as a NT service, and if not using a custom nameserver. only the windows version is affected.
1.6.2.1 (2013-07-01)
- fixed that mkpasswd doesn't work on 64 bits windows. it was formerly a 16 bits DOS program, and now it is a win32 console app. no changes to the ircd itself.
1.6.2 (2011-12-23)
- fixed lcore bug that prevents working on linux without ipv6 enabled in the kernel
- on a netburst if the key changes, propagate a change to clients (new mode shows as *)
- "-foreground" commandline param to not fork
- removed iso-8859-1 forced lowercase on channel names behavior, it breaks things (utf-8) and others don't do this.
- changed all uses of "string" where necessary to "bytestring" (defined in lcore), and likewise for "char", for new delphi compatibility
- when length limiting/interpreting (ban) masks, do it in the same way as ircu
- silence should exclude services
1.6.1.1 (2011-10-02)
- for ircu compatibility, when receiving a BURST message, a lower limit and a lower key (alphabetically) must win
1.6.1 (2011-10-02)
- fixed: a bug that would let a user crash the ircd.
- fixed: must send +6 server flag in initiating server connection.
- fixed: when resolving client, DNS forward lookup must check all forward records for a match
- respond "417 mynick :Input line was too long" for too long lines
- fixed: a bug where sending a two long lines twice in a row, regardless of time in between, causes excess flood
- fixed: "mode #channel b" must show banlist, like "mode #channel +b"
- fixed: properly rejecting too long DNS hostnames
- fixed: /restart does not work on linux
- fixed: /svsnick nick NICK - NICK Nickname is already in use
- fixed: autousermode s does not set snomask to snomask_default
- implemented "don't cheat" for channel joins
- fixed: stopping the ircd while an outgoing connection attempt is open causes a crash
- implemented SH sethost hacking (as on quakenet)
- fixed: GLINE burst had parameters in the wrong order
- various /gline fixes/improvements
- fixed: undesired ping timeout if the server is temporarily locked up
1.6 (2009-08-31)
- compiled with lcore, an in-house developed cross platform socket/event library, instead of TWsocket, which, in windows, adds support for IPv6, and should improve performance and stability. The Linux version has been using earlier versions of lcore already, but it should have minor benefits from further lcore development.
- changed how IPv6 IPs of clients are represented in server-server communication, to be compatible with ircu (2.10.12)
1.5.7 (2004-07-13)
- fixed a dns bug which could cause a user to fail to resolve
- fixed: if you msg 2 nicks which dont exist, you get only 1 error back with no such nick
- hide sender of ban in banlist (mode #channel +b) for HIS
- stop topic changes which don't change the topic
- make user mode hacking an option, and added sethost hacking feature
- added "Cannot join channel (access denied on this server)" reply and numeric
- added an option to allow/deny control chars in channel names
- more informative server notices for incoming unauthed server connects
- fixed problem: "WSocketResolveProto: Cannot convert protocol 'tcp', Error #11004"
- fixed: incorrectly reporting snomask if mode +s is not set, in "/mode nick"
- added an ini file with "quakenet like" settings
- fixed crash which happens when bircd is stopped (stop.bat, /die command) on XP
- fixed: set bans, then set +b-b * *, then the overlapped modes are not unset remotely
- fixed: /whowas showing real ident to users, must show fake ident
1.5.6 (2004-03-15)
- added "opernowholimit" option to have unlimited /who reply for opers
- "restrictprivate" option: allow private messages to opers
- fixed: RPING to a server multiple hops away sending multiple replies
- implemented proper "nick change changes only case" TS behavior
- added "/close" command to close all incoming unreg connections
- fixed: opmode is able to deop services
- rewritten cmode +d code, it is now also properly listed in "supported modes"
- added full ipv6 support (only linux versions can accept ipv6 connections, all servers on the net must run 1.5.6 if you use ipv6)
- fixed: the whois "actual userhost, actual IP" reply is 338, not 388.
- restart/die: show sender in server notice
- I:lines allow "limit/prefixlen" to limit clones from a netblock (needed for ipv6)
- fixed: burst wipe didnt send mode -flags to clients
- fixed: "/mode #channel -k" giving error "unknown mode char"
- fixed: G-lines with a ~mask didnt work, moved K/Gline check to after adding ~ to userid
- match *@IP/CIDR G-lines to connection before registering (fast)
- /who nick1,nick2 now works
- show snomask flag in "/mode nick" if not the default
- fixed: opers could still excess flood if opernoflood=1
- bircd now writes troubleshooting information (why it does not start) to stdout.txt
- wildcard badchans
- send a global server notice if oper sets mode +k
1.5.5.1 (2003-11-29)
- fixed a bug in lcore/lsocket. this might fix the problems with the linux versions.
1.5.5 (2003-11-26)
- fixed: SQUIT messages by opers were seen as coming from server
- fixed: netburst could cause a channel to have both mode +D and +d set
- fixed: "mode -ohv nick nick nick" causes AV
- put onsessionavailable in try/except to catch exceptions which would close the listen port (may find some problems related to dying listen ports on linux version)
- fixed: autousermode=i did not work
- fixed: in linux version, DNS looksups no longer worked at all.
- one can initially set a deactivated G-line
- fix for services which send G-lines in *!user@host format (quakenet O)
- propagate force (!) in G-line messages properly
- +k (service) can invite from outside the channel. oper can't.
- implemented RPING/RPONG
- setting "operfailedglobal" enabled now shows a global notice/wallops for succeeded OPER, with UID.
- new setting "SnoDefaultOper" for default server notice mask for oper
1.5.4.2 (2003-11-12)
- send SETTIME if TS from NICK or CREATE has an error of more than 30 secs
- fixed: conf lines starting with # are comments, cont truncate every line at the first #
- fixed: linux: dns not working if /etc/resolv.conf has separators other than a single space, more tolerant parser
- fixed: linux: "no such process" bug: write pid after program is completely initialized, after checks
- fixed: linux: select() in lcore must have maxs+1, not maxs
- the linux 80% cpu usage bug might be fixed
- internal minor changes/fixes
1.5.4.1 (2003-10-30)
- fixed: removed stupid test code from /kill handler which allows killing local users silently (showing EOF from client)
1.5.4 (2003-10-29)
- fixed: windows: bug in wcore which makes timehandler code fail if the pc's uptime exceeds than 13 days
- fixed: sets mode: +llllll 1 2 3 4 5 6
- can't invite someone who has silenced you
- optimizations, bircd uses less cpu. especially linux version, should use about half of the cpu compared to previous versions.
- implemented "transactional kick" - fixes desync problem, noticeable with srvx
- minor internal changes/fixes
1.4.8.1 (2003-10-29)
- fixed: after /names 0, /who doesnt show all users
- fixed: "/who nick" showing user twice if in common channels with more than about 200 users
1.5.3.1 (2003-10-08)
- removed SNO_TOOMANY (also the invalid userid notices) from default snomask for opers
- fixed: after /names 0, /who doesnt show all users
- fixed: "/who nick" showing user twice if in common channels with more than about 200 users
- fixed: hostname part of I:line did not match if it is not *@host
1.5.3 (2003-09-30)
- fixed: SQUIT delayed destroying of the server to prevent blocking of the connection which sent it. this doesnt make sense since destroying servers is now blocking anyway, and it caused unpredictable behavior when a SQUIT was followed immideately by a SERVER message for the same name (collision from same direction)
- ignore first slash for servalias command
- option "autousermode" instead of logininvisible and vhostdefault options
1.4.8 (2003-09-30)
- fixed: SQUIT delayed destroying of the server to prevent blocking of the connection which sent it. this doesnt make sense since destroying servers is now blocking anyway, and it caused unpredictable behavior when a SQUIT was followed immideately by a SERVER message for the same name (collision from same direction)
- fixed, in btime, timestring and timestrshort reported weekday in UTC time, must be local time
1.5.2.2 (2003-09-28)
- fixed: umode +h (sethost) wasnt parsed on burst
1.5.2.1 (2003-09-28)
- fixed the bug which caused my ISP's nameserver to get in the release bircd.ini
- no changes to windows version
1.5.2 (2003-09-28)
- fixed the bugs in the linux version which made server linking not work.
- no changes to windows version
1.5.1 (2003-09-27)
- smart linked linux binaries, much smaller
- "branded" linux binaries, they now work on freeBSD with linux compatibility
- fixed libc dependency problems, now runs on redhat 9 w/o errors
- forgot to set execute permissions on restart/rehash/stop scripts
- /stats u is now based on the system clock instead of the TS
- fixed, in btime, timestring and timestrshort reported weekday in UTC time, must be local time
- fixed: lsocket, on failed connect tried to clear fd flag -1, possibly causing hang. added check.
1.5.0 (2003-09-24)
- linux version available
- added umode +R messages only from authed user, for qnetmodes option
- added cmode +N no notices to channel, for qnetmodes option
- automatic S:lines (sethostauto) - must match, and needs atleast a hostmask or password
- svsnick and svsjoin available for opers or only for services (option=2)
- added option for desync wallops instead of server notice for failed oper attempt (globaloperfailed)
- nickserv/chanserv/memoserv aliases more customizeable - 6 aliases, custom name and target. changed syntax in bircd.ini
- key hiding: "/mode #channel" shows key only to chanops, and key set on burst does not show key.
- made channel name length an option, changed default to same as ircu, 200 (was 63)
- sethost using S:lines now removes the ~ prefix from the userid.
- dns and ident lookup timeout after configurable time, allow users with dns/ident problems to connect
- "maximum total sendQ size" option - limits the amount of ram allocated for sendQ buffers, drop clients if exceeded
- protocol: server is added to kill path after receiving, not before sending.
- add user@host to kill target in server notice
- dont write ini after server run, only after install/uninstall or writeini
- removed /who found nick shortcut, "/who nick" now does normal search
- umode +h is no longer visible to users, it is something internal for sethost.
- remote whois fallthrough for opers: if "remote server" param not found, use the target user's server
- convert foreign language chars (ISO8859-1) to lower case for joining channel by local client for ircu compatibility
- svsnick/svsjoin only wallops if source is not services
- fixed: if channel is empty after parsing B message, finish modebuf, and propagate B message because it can change TS/modes
- fixed destription for secretwallops setting
- no redundant mode changes from servers
- internal changes and fixes
1.4.7.1 (2003-09-12)
- fixed: nick collision caused by remote user changing nick and killing existing user caused AV
1.4.7 (2003-09-09)
- fixed: "client exiting" notices when server stops
- rewritten destroying code to newest version to fix possible socket leaks/AV's
- put accept/dup for incoming connection in try/except, wallops if error. must fix problems with listen ports closing.
1.4.6.4 (2003-09-04)
- fixed: in resendmode code: doing +v-o showed -o+vv
- fixed: timehandler must not use settime corrected TS. caused problems like freezing connections (thank you Dr`toXic)
1.4.6.3 (2003-08-31)
- fixed: sending too long B message possible for first ban after users
- fixed: creationdate says "GMT" but shows local time
- fixed: "/who server.name s" didn't work
1.4.6.2 (2003-08-26)
- fixed: banmaskmake with a mask ending at the first @ causes AV (/who #@)
1.4.6.1 (2003-08-22)
- fixed: remote /lusers didnt work
- fixed: remote replies which are not numeric (such as notice) must be short command token
- fixed: SVSNICK change to U:lined nick which is currently not online would cause AV. added "nick already in use" check on the oper's local server.
- fixed: server didn't stop cleanly on NT service stop (clients disconnected with error 10053)
1.4.6 (2003-08-17)
- remove secrettrace options because trace can be operonlycmd
- fixed remote get request (/get server option)
- fixed some notice replies, missing colon prefix
- HIS: message to nick@server only works if target is +k
- added extended who flag "a": show account
- fixed: when propagating a N message with mode +h, a separate mode +h (sethost) message was generated
- fixed: send a whois idle/signon time if idletime = 0 secs.
- send lower priority membership mode after unsetting higher to resync clients
- added option: allow opers to set +k.
- dont add ~ to userid if matching I:line has no @ in the mask (ircu feature)
- rewritten send code again. uses TWsocket background sending, less hackish. solves a known problem. may be more stable.
- higher internal timer frequency, TS is closer to pc system clock (average 0.05 secs error rather than 0.5 secs)
- one can now set topiclen to any value, no more hard limit at 307. too long topics will be limited to the maximum possible length
- fixed: penaltytime was initialized to the settime corrected TS, should be the local clock. caused problems such as message throttle lag if theres (too much) difference between them
- one can no longer "hack" user mode changes such as +k from a services server
- minor changes/fixes
1.4.5 (2003-08-17)
- important bugfix: in propagate burst messages code, introduced in 1.4.4, which caused users to be missing from channels, desync.
- minor changes/fixes
1.4.4.1 (2003-07-14)
- fixed broken end of who reply
- "/who #channel" has unlimited reply length
1.4.4 (2003-07-11)
- added optional halfop support (disabled by default)
- added "starttargets" option
- added "vhostquitreason" option, quit reason when one sets mode +x
- added support for svsjoin comma separated list of channels
- added support for /who comma separated list of items
- one can now set overlapping bans like *!*@* if banlist is currently full
- allow DNS hosts w/o dots
- EA before EB: its unusual but not invalid. dont break link, only notice.
- prevent non-oper from doing remote whois with wildcard/list param because of possible bandwidth usage
- changed sethost behavior: if freeform disabled, opers need matching S:line with password like users.
- fixed: modebuf stops working correctly if there are bursting servers on the net
- fixed: HIS: don't show &channel in /who reply
- fixed: if sethost disabled, don't set umode flag +h by parsing N message
- fixed: can no longer set disabled modes through burst
- fixed: on AC, and host changes, invalidate ban cache for user
- fixed: "whois in channels" reply to server, must be in server protocol
- fixed: removed netrider kick for +r
- fixed: userhost and userip must show the "visible" userid, not the "real" one
- minor internal changes/fixes
1.4.3 (2003-06-26)
- fixed: bug in text file parser of adding a NULL character to the last line, causing the last conf line to not work.
- fixed I:line problem: must exit loop if I:line host or IP matches
- fixed: link cancelled notice showed the local server
- fixed: clearmode b did clear banlist but did not reset bans counter so one gets "banlist full" error
- fixed: also clear bans counter if clearing bans on burst
- fixed: /list parameter chars must be case tolerant
- fixed: TS parameter in J is creationtime, not now.
- fixed: trace on server-server has extra "target server numeric" parameter, it is now compatible with ircu
- fixed: "nickchange while banned" only if not op or voice
- fixed: if parting multiple channels, one clears reason, all channels after it had empty reason as well
- fixed: target server param of "local gline on remote server" in mo_gline was missing
- added +d fake channel mode, set if channel is not +D but still has invisible users.
- added option to allow opers to see secret channels in /list using "S" parameter.
- truncate privmsg/notice messages from clients to prevent them from being longer than 510 chars when sent to clients
- identd outgoing connection now binds to the same interface as the irc connection
- made join OVERRIDE for #channels optional (can be disabled)
- +p channels now show in /list - as opposed to +s channels, but +p channels are hidden in all other commands.
- "Remote CONNECT" wallops
- can see the topic of a non secret channel from outside the channel, using /topic
- fixed "highest connection count" to only only count clients+servers (not unregs). also added "maximum connections" snotice for each time the count reaches a multiple of 10 (like unix ircd's)
- option opergline can be set to 0 (disabled), 1 (local) or 2 (global)
- added /stats V (verbose information about servers)
- adjust/sync TS clock based on link timestamp in SERVER message when linking
- added fully functional/P10 compliant link timestamp behavior, for SQUIT, and server collisions (loops)
- more internal fixes/changes
1.4.2 (2003-06-04)
- Fixed all known bugs related to the sethost/umode +h code introduced in previous version:
- syntax for users is "newhost password" (params swapped); "h" did not show in supported umodes; if sethostuser=0, opers couldnt sethost as well; unable to parse mode +h (sethost) for remote user; sethost now works if vhoststyle=0 (+x disabled); ~ was not considered a valid char, a user with ~userid could not sethost.
- Added support for choosing the interface IP for outgoing connections on a multihomed system, it is the IP parameter in the M:line.
- netrider kick feature is now an option and can be disabled
- can parse unix text files (LF line ending)
- invisible user on +D channel in whois shows as <#channel
- probably fixed a bug which can cause an "invalid pointer operation" crash when 200 clones flood in a channel
1.4.1 (2003-05-13)
- added channel mode +u (in qnetmodes) - disallows quit and part reasons in channel
- added wallvoices command: send text to everyone in the channel with ops or voice
- rewritten S:line and sethost code: removed old code, and added optional asuka style sethost with S:lines and user mode +h
- added "awaylen" option
- added option: no target limit for opers
- fixed: on propagating N token, +r mode (account name) was not included
- added protection against flooding non-line chars (CR LF NULL)
- added check for null character (which is disallowed) for security
- on rehash, K:lines are applied (killing matching users)
- rewritten code which generates burst messages and code which generates name replies to use less bandwidth.
- fixed: /LIST did not show channels which a creationtime in the future
- fixed: local ircop must not be able to do remote squits
- fixed bug in ban cache: deal with becoming banned in a channel by changing nick.
- added: "link cancelled" notice
- added the "null channel" (users on no visible channels) to /names 0 reply
- minor fixes and improvements
1.4.0 (2003-04-11)
- added SVSJOIN option
- rewritten SVSNICK
- added "restrictprivate" option to disallow private chat
- added "restrictcreate=2" option to allow creating channels, but without being chanop
- added GET command to see bircd.ini settings remotely
- bircd can now receive P10 short numerics, so it should link to universal-ircu and srvx w/o problems
- added option to send P10 short numerics while still supporting extended numerics (like ircu-universal)
- rewritten G-line code
- added code to fix some known desynch problems
- saving bandwidth on server-server links: send LF instead of CRLF
- many other changes/fixes
1.3.2 (2003-03-30)
- fixed: changed code to get UTC bias, API call doesn't give DST corrected value
- fixed: "Too many connections from IP" from a K-lined host; moved K-line check before clones check
- fixed: /gline +*@hostname, didnt kill user
- moved server notices which happen (too) often to different flags: invalid userid to SNO_TOOMANY, autoconnect to SNO_TCPCOMMON
- fixed: don't send or accept kick messages to server links for local channels
- removed support for modeless channels
1.3.1.1 (2003-03-29)
- fixed: +D: virtual host join of invisible users showed
- fixed: HIS: topic set by server.name
1.3.1
- implemented desynchs wallops (usermode +g)
- don't start if invalid servername in M:line
- if can't open ircd.conf while server runs, don't rehash it
- some topic fixes: HIS if topic comes from server, use last (not second) param as topic
- changed/fixed topicburst and added timestamp code
1.3.0 (2003-03-27)
- fixed the problem that bircd uses 100% cpu when it sends
- implemented optional SETHOST code, which synchs user's virtual host on all servers even if servers are configured to make different virtual hosts. also /sethost command for opers
- added "vhoststyle=3" setting so everyone has the same host (host = vhostaccountstr setting)
- implemented channel mode +D, delayed join/auditorium mode.
- added /who flag "y" for ircops to show user's real host
- settime w/o param sends server's current TS
- any command can be made oper-only, operonlycmds option in bircd.ini
1.2.8.1 (2003-03-24)
- fixed: showed "actual userhost, ip" in whois when +x but not hosthidden
- fixed: "x" flag in /who reply must not show when +x but not hosthidden
1.2.8
- fixed: IP hiding in /WHO
- fixed: not existing custom replies in bircd.ini changed reply 001
1.2.7 (2003-03-22)
- fixed: AV crash on net rider kick, channel becomes empty
- rewritten /who code, added WHOX support
- added mode bouncing with timestamp code
- sanity check on maxclients option
1.2.6 (2003-03-15)
- fixed: HACK(4) notice if local client ircop who is not chanop kicks
- fixed: empty "sender" in kill quit, if there's a ! in the kill reason
- restart code now really restarts program (known problem: doesn't run properly as NT service after restart)
- fixed: send "server terminating" errors and such when server stops
- speedup in send-cycle code: only loop through connections which have something to send
- /notice @#channel,b,c behavior changed
- improved/fixed target limit code. (ft number)
- made Tbanmask use slightly less memory
- /who: use maskmatch rather than identical match of servername
- anti desync code during burst: only keep channel if destroyed because of a nick collision (server kill)
- added option for short MOTD like on undernet.
- workaround in btime, for QueryPerformanceCounter jumps flaw in windows
- HIS: only remote whois shows "is away" reply
- /oper: if the user is already in the oper class, don't check the class max connections
- CIDR I:lines (ip field)
1.2.5 (2003-03-01)
- "/connect server 0 remoteserver" will use the C:line port if possible, 4400 otherwise.
- CIDR C:lines, T:lines.
- if headinsand is enabled, nick collision quit reason looks like on undernet (simplified)
- cmode +c also blocks colors in part/quit reasons
- a +k (channel service) does not appear being in a channel in /who reply, unless it is in common channels, or "/who #channel" is used.
- cant set topic from outside the channel
- can't oper to an O:line if its connection class is full
- don't allow an S:line with invalid host
1.2.4
- /list code makes better big packets
- a +s channel does not show in "/list #channelname" if youre not in the channel
- end of /names replies now like unix ircd (also for /names #a,#b,#c)
- /oper checks the user's real IP (in case of virtual IP from S:line)
1.2.3.2
- fixed: missing end of /NAMES reply during join
1.2.3.1
- fixed: accept any kill message from server link (solves problem of nickserv kill not working)
1.2.3
- * O:lines using unitbanmask (CIDR support). also removed the confusing restriction that you need identd if the mask has *@.
- limit topiclen to 307 to prevent problems
- implemented MOTD cache. rehash to apply changes to motd files.
- added "secretuserip" option
- changed error "youre not ircop" to "Insufficient privileges".
1.2.2.1 (2003-02-22)
- fixed: setting u21011features=0 disabled +t instead of +r. chanmodetable numbers code inproved
- if receiving settime while reliableclock=1, show adjustment
1.2.2
- ping timeout times now use the non-settime corrected TS, so a settime doesn't drop every connection
- penalty time is now based on non-settime corrected TS
- fixed: the /time reply human readable string showed the UTC time, must be the local time
- fixed: know about changes to the system clock
1.2.1.1
- fixed a stupid bug in 1.2.1, which caused all messages to a remote target to be sent to socket 0
1.2.1
- fixed the bug which caused notices like "unknown command: 317"
- fixed: userip reply is numeric 340, not 307.
- fixed: shoudln't send "no such nick" error for userip/userhost
- fixed: a mask which can't be interpreted as binary, such as *3*, now properly matches someone's IP.
- fixed bug in CIDR mask make: internally "and" IP with bitmask.
- added CIDR silence and K:lines
- added "is now your hidden host" reply
- prevent spaces in channel key or bans
- centralized modebuf code for good looking/compact mode messages
- added mode and kick bouncing, and deop to heal desynch. also different HACK notices (2, 3 and 4)
- dynamic IP friendly S:lines; using password (read ircd.conf)
1.2.0 (2003-02-13)
- using latest version of TWsocket (4.48), taking advantage of its bugfixes
- added optional channel modes +cC (no colors, no ctcp)
- added S:line (spoofed host/IP) code
- added CIDR channel bans and G-lines
- implemented channel ban cache for less CPU usage
- added "/stats j" message histogram
- different send code, modified TWsocket, big packets (without delay), improved performance, probably fixed the "dead connections" problem
- fixed "privmsg , text" AccessViolation bug
- fixed bug which prevents servers from setting topics, also caused topicburst to not work
- fixed all currently known weaknesses which would allow an AccessViolation/crash using clones/flooding, including bug which destroys an ident socket twice.
- implemented/fixed "sendQ exceeded" code
- most cmode flags are now defined in one place in the code, in a table, very easy to add new channel mode flags
1.1.9 (2003-02-01)
- Fixed bug introduced in 1.1.8 which causes a string compare routine (strcompup) to only match the length and the last char. Upgrading is strongly recommended.
- The reply string of "/MAP has been disabled" (and /links), can be changed in bircd.ini ("HeadInSandMapStr" option)
- Added "HeadInSandKillWho" option to always hide the sender of a KILL.
- added "/join #channel OVERRIDE" functionality for opers.
- /NOTICE should not return a (no such nick) error
1.1.8 (2003-01-22)
- added target limit (anti spam) code to join, and invite
- added wallusers functionality. to enable, set secretwallops=1
- removed the colon from sending AC messages, for compatibility with L
- acced "accountlen" option to check for too long login names
- when receiving a burst for a channel and the existing channel is younger, all invites, and the topic for the channel are cleared.
- fixed bug: invites were not properly destroyed on destroying a channel
- removed uppercased fields from user and channel. this means less memory usage and because of this, maybe also increased performance.
- included an ircd.motd file in the zip for those who keep asking how to make a motd
- after a user quits+joins for virtual host, re-send op/voice to sync clients.
- added AsLL pong capability.
- simplified send code, fixed a problem introduced in 1.1.6 (creating/joining a channel, connections "hangs"), added "nalge" option.
1.1.7
- Status notices are not sent for an outgoing connection, or an incoming connection on a server only port. This fixes the problem with quakenet "lightweight" service. thanks |SmAsH| for telling me.
1.1.6
- strict flood protection and penalty on incoming unregistered connections, and no more flood limit on outgoing server connections (they were treated the same)
- i had the nick and channel swapped in the "inviting" reply. thanks rfc1459 for being wrong about it.
- some locop/oper related fixes and changes. locops are not counted in "operators online" and locop modes are not sent/parsed for server links. also fixed bug in checking of local oper doing remote kill.
- added "reliable clock" option and some related code, and fixed SETTIME.
- fixed problem with long notify list: if there are too many parameters, the parser will put the rest, including spaces, in the last parameter, like unix ircd does.
- added "hub" option.
- server notices for failed incoming server connections (numeric collision, server already exists, hub)
- file date/time of ircd.motd is displayed
1.1.5
- IRCops can now set G-lines (global only) without services. requires enabling "opergline" setting.
- clients can't set a nick containing a ~ character
- options code in bconfig.pas rewritten to be based on a table. neater code, and smaller exe file.
- fixed: wrong parameter in end of /links reply
- fixed: a local user with mode +d set could still see channel chat
- fixed: didn't send "inviting" reply.
- fixed: silence code is rewritten to be compatible with ircu server-server protocol. it wasn't compatible, causing problems, such as X stops responding.
1.1.4
- added invite list (do /invite to see for which channels you have an invite key)
- fixed bug in passing on burst messages, which caused serious desynch problems when a bircd server is hub
- Added anti net break ride code: net riders are kicked from +i and +k channels
1.1.3
- changed ident code to be more stable, it could easily cause an access violation if many clients connect in a short time.
- fixed a problem in the install NT service code
- removed IP address from unauthorized connection notice, hiding hub IP addresses should be complete now
1.1.2
- implemented N:line support; using an N:line allows for different passwords and/or different address (including wildcards) for accepting and connecting
- channel ban code didn't have vhost support yet, one could easily evade bans, fixed
- silence supports vhost, and cprivmsg/cnotice also checks silence.
- pass+server for initiating connection is now sent after completion of the dns+ident lookup. this might fix some problems
- fixed problem of reason for a failed connection (ERROR message) not showing
- implemented "list stop"
- if an opped+voiced user is de-opped, +v is sent to keep clients synched
- user's account name is sent/parsed on netburst (+r)
- "actual user@host, actual IP" reply in whois, userhost shows virtual host to ircops, not real host.
- svsnick is now more compatible with ircu's svsnick patch (on collision, the existing user is always killed)
- hack notice for opmode and clearmode
- different, probably more secure, random function used for nospoof ping
- source: command numbers are less static, it is now possible to easily reorganize the command table and remove commands, etc.
- source: more things and commands can now be disabled using conditional defines
1.1.1
- fixed a few small bugs in virtual host code and uploaded again
- added support for virtual/crypted hostnames, user mode +x
- "This server was created" date in source code is now automatically generated by running a program, rather than manual editing
- in /whois code, if head in sand, remote whois only with existing nick, better protection against tricky remote whois.
- head in sand: more servernames hidden in mode, kick, kill, nick collision
- error reply "cannot join channel (+r)" was left disabled. fixed.
- fixed: G-line with long duration caused expiration date to wrap to negative value.
- fixed bug in parser which caused an accessviolation if an unknown command which matches some criteria is received from a server
- join behavior with badchan changed: ircops can join anyway, and can't join if channel does exist.
- fixed /join #a,0,#b behavior (user in this case does join #b) and join parser for server-server also parses /join 0
- clearmode command can now be disabled for ircops in options
- in source code, vhost, head in sand, badchan, can be completely left out using conditional defines
24-08-2002 1.1.0 source release under GPL
1.1.0
- added OPMODE, CLEARMODE, ACCOUNT commands, and channel mode +r
- protocol change for ircu compatibility: remote connect uses server numeric, not name.
- fixed bug: /mode #channel +lk returned "mode char is unknown to me" error
- removed G-line reason check (G-lines were not being added for unknown reason)
- removed hopcount check for N messages
1.0.27
- very small update. a colon was missing in some reply notices.
1.0.26
- Found and fixed a leak when connection fails
- Servers could not kick. fixed.
1.0.25
- Servers can now talk on all channels, unrestricted.
- Servers were able to change modes of a modeless channel.
- mode #channel +s send by a server always showed like "-p+s" even if +p wasn't set.
- a linked gnuworld could cause problems because of NULL character at the end of messages; it's now truncated; fixed.
- B message with empty last parameter caused EAccessViolation, fixed.
- a space too many in sent B messages, fixed.
- bans added by a server during burst, if head in sand is enabled, now appear to be set by local server.
1.0.24
- version .23 couldnt link to ircu nets anymore because of added timestamps check; ircu can send 0 timestamps during netburst. fixed.
- fixed another small timestamp bug, uploaded again.
1.0.23
- "ISON :nick nick" now parsed correctly, also USERHOST and USERIP.
- user mode changes which are sent now have a colon prefix for last parameter, gnuworld might need it.
- i check the hostname from reverse DNS lookup for being valid, to prevent malformed/dangerous hostnames.
- valid servername check did not work, fixed.
- implemented optional TopicBurst code, it wasn't there yet, but the option was.
1.0.22
- changed code to not use forms unit, 120 kb smaller exe file, less overhead.
- fixed quit reasons code (adding Quit: prefix, etc), it didnt work correctly.
- improved adding bans code: can't add a ban if it's overlapped by an existing ban, and now *!*@ becomes *!*@*
- G-lines are cleared when server restarts
- whowas code was left disabled for debugging.
- fixed all warnings/hints in source code
1.0.21
- MD5+salt oper password encryption, included mkpasswd.exe to create crypted passwords. plaintext and crypted passwords can be mixed in ircd.conf; the length of the password tells if it's crypted
- numeric in a SERVER message is now being checked for being valid, preventing problems with short numeric servers etc.
- also check timestamps in remote server message
1.0.20
- OOPS "/msg server.name x" causes server to crash, client exploitable bug. fixed
- added DNS lookup using DNSquery. This can solve possible problems/leaks in winsock internal DNS lookup. to enable, set "dnsserver=" to the DNS server(s) of your choice.
- i changed some string properties of user and channel to static (short) strings. may be faster, but 20 kb bigger EXE file :(
- i reorganised some code related to penalty, flood, etc. Added "floodbufsize" option
- implenented "restrictcreate" option, when set, non-ircops cannot create channels.
- added timestamp and proper nick collision code to SVSNICK
1.0.19
- removed the "a" from the version number.
- change of destroying sockets code
- +k and +l mode changes on a netburst weren't sent to local clients
- fixes in netburst related code.
- bircd.ini is not written during server restart, so user made changes are applied rather than overwritten.
- removed some unused code from WSocket unit, 11 kb smaller exe file and probably faster
- Added a few more sanity checks
- findnumeric caused crash if given bad characters
- HACK server notice when receiving a mode from a server link, if origin isn't a chanop.
- unless i fix more bugs, this will be the last 1.0.
1.0.a17
- on receiving a netburst, mode +k and +l changes were not sent to clients, fixed.
- some fixes on modeless channels; TS should always be 0, internally modes +nt are set (no external messages)
- Identd lookup when initiating a connection could cause a crash because it tried to use the "port" value from the listener. fixed.
- remote port in ident request was incorrect, needed low/high byte swap. fixed.
- Fixed problem with SQUIT
1.0.a16
- a nickchange by a user on a remote server, same nick, different caps, caused a collision and a crash. i fixed both issues.
- a remote join or create without timestamp or a too old (0) timestamp would set the channel's TS to this. fixed.
1.0.a15
- receive-code during netburst wasn't stable yet on winNT/2000, commands skipped/duplicated. fixed, tested, verified. a little slower but flawless.
- adding new G-line didnt kill users who's IP matched (only hostname) and fast premaskmatch code used here too
- the bircd.ini which is written now contains explanation for every option, so you know what you're editing.
- fixed a few things related to reading from an already destroyed user (didnt cause a crash but it's not neat)
-
- i now put in code to completely disable a command, a disabled command also does not show in /quote help reply. added "servcmds=" option in bircd.ini to disable /chanserv etc commands.
1.0.a14
- oper attempt with bad password caused read of undefined address (caused client connection to hang) fixed.
1.0.a13
- +s channels were showing in /list. fixed.
- changed and speeded up /whois code
- /who mask x didn't show anything
- idle time wasn't reset when someone says something
1.0.a12
- ircu does not accept SQ with a wildcard server name mask, causing desynch (server exists on one side of the net, not the other) fixed now: full servername sent to servers.
1.0.a11
- small bugfix, if connection got "server full", "connections from one ip" data wasn't correctly updated.
- fixed all warnings/hints in the source
- /who marking code redone, it no longer loops thru all users; faster now
- checking for valid userid, and truncating to max length
- too many connections from same IP server notice to ircops
1.0.a10
- connection limit on Y-lines now works
- /stats P and /stats Y show the number of connections on this port/class
- fixed a problem with recursed calls to parsing, commands parsed in the wrong sequence, causing for example commands to be ignored, decynchs, etc. happens when receiving a burst, on a fast machine.
1.0.a9
- recently introduced bug with server crashes fixed.
- the stop signal did not stop the server properly, fixed now
- ports can be server only or client only, and hidden (flags S H C in P:lines, see example.conf)
- ports can be configured to accept only connections from a given IP block (not mask) use 1.2.3.4\bits notation or lowest-highest notation.
- added /stats P
- Service name and signal port can be customised (read manual page), allows multiple irc servers on a single machine
- minor changes
1.0.a8
- changed /WHO code, uses about 10 times less cpu. as ircop, use /who 0 x to see invisible users
- some bugfixes/speedups in userid, host, upper/lowercase, etc code
- ignoring reverse dns without dots, IP address used instead
1.0.a7
- Fixed problem of dead connection after a burst of data is sent to it
changes in services
1.2.1
- fixed: nickserv ignores nickchange only case
- fixed: expiring nicks didnt decrease counter in motd
- registering nicks requires parameters: password email. email is no longer showed to normal users
- services can now coexist with other services on the same net without causing problems
- autosave every 3 mins
- minor changes/fixes
1.1.19
- fixed: user's TS was not updated after nickchange
- added remote version reply
1.1.18
- re-enabled deop bouncing for invisible chanserv mode. added minimal support for halfop: it won't desync op/voice. added umode=2 setting: invisible chanserv, modes come from services server.
1.1.17
- fixed receive code, it caused errors in the stream if receiving a netburst of some size, causing the services to disconnect on parse errors
1.1.16
- added hiddenhost setting (enabled by default) so real hosts are not shown to users in nickserv info/list commands
- nickserv accounts with "private" setting enabled no longer match in nickserv list command, except if services operator
1.1.15
- SVSNICK (forced nick change to guest) changed to be compatible with new beware ircd again (source is services server)
- removed the "bounce op by server on registered channel" code, its an old feature, not needed anymore.
1.1.13
- fixed: messed up "last param" code in topic code in 1.1.12. also fixed some other last param issues
- services now properly sends SQUIT if disconnecting
1.1.12
- Added support for parsing P10 short numerics
- fixed topic parser to use last param as topic; fixes problem of chanserv sending a number as topic
1.1.11
- fixed bug which caused AV crashes and unpredictable problems.
1.1.10
- added option "safeidentify" to disallow using the insecure "/msg nickserv identify". it is enabled by default.
1.1.9
- the "settime" option in bircserv.cfg did not work, the setting was always enabled.
1.1.8
- added support for OPMODE and CLEARMODE messages
1.1.7
- secret channels can no longer be found using chanserv; SOP needed to find them using /chanserv list. /chanserv info requires being ircop, or having access to the channel
1.1.6
- fixed: a netsplit did not properly destroy the server-tree behind the splitting server.
- fixed: /msg nickserv info notexistingnick, caused services to stop responding.
1.1.3
- Thanks R33D33R to show me Uworld stuff on your small net.
- fixed a bug which may be important: if a channel is created during netburst, the channel wasn't associated with a chanserv record
- added /msg chanserv kick
- added /msg operserv invite (now ircops can get in any channel without enabling that option in the ircd)
- added operserv channel, where joined ircops can see who uses operserv/admin power - it's no longer anonymous.
- some operserv commands now require the ircop to be identified
- a G-lined user who enters causes the G-line to be resent - not doing so allowed users to evade through a restarted server.
1.1.2
- fixed one possible memory leak
- fixed the bug which caused duplicated memos whenever nickserv.db is read
- added /msg chanserv help drop
- added /msg chanserv set #channel password
- Fixed "/msg operserv gline -" not enough parameters and fixed not sending the actual gline remove to the network.
1.1.1
- Some things weren't converted to P10 yet, causing problems, which are now fixed
1.1.0
- Services now use undernet P10 compatible protocol (as it must be able to link to beware ircd)
- The services now know the IP address of users. This allows for using IP addresses in access and akick lists.
- added "seen" function with wildcard search to allows ircops to see who has been online in the recent past.
- Services use a single "operserv.db" file in which info such as g-lines and jupes are saved.
- added operserv "setnickpass" to change lost passwords, and "nickdrop" to delete registered nicks easily.
1.0.4
- Added traybar icon and "automatic start"
- Fixed bug which made "strictop" not work
- Jupes are now re-added on a reconnection.
- Fixed bug in channel mode +b/-b parser
- Added functionality for custom ports scanning (reason for any port)
- Added ChanServ CLEAR op, user, mode, ban. clear mode: users were able to takeover, and deny users access by setting a key
-
- Added AKICK functionality to ChanServ