*** 20030405_6 by kreator
- rip out solthread/pthread support because it gives us no benefit;
  current code has numerous races and problems with that one


*** 20030405_5 by kreator
- and more lastseen updates..


*** 20030405_4 by kreator
- make successful identification update lastseen for master
  and slave nicknames


*** 20030405_3 by kreator
- oops, wrong order in {}


*** 20030405_2 by kreator
- fix service notices
- fix grave bug with master nicknames expiring while slaves
  were normally used :(


*** 20030210_1 by kreator
- rev to rc2
- fix urls
- fix n_chanserv -> n_nickserv mistake in chanserv.c
- fix gline7 
- add preliminary svsnick support
- fix servernotices and set privmsg on
- killchan update


*** 20030129_1 by kreator
- rev to rc1
- NICKLEN to 18, it makes a day easier for me :-) and evades a ton of
  false bug reports..
- smaller operserv string fix
- remove some stuff from TODO
- make a working mailing list


*** 20030124_1 by kreator
- fix phread location for FreeBSD
- smaller operserv stuff


*** 20030120_2 by kreator
- smaller ^M fix


*** 20030120_1 by kreator
- fix Hybrid7 gline time
- fix possible bad reference in cs_cycle()


*** 20030114_1 by kreator
- a really big bunch of fixes, "\r\n" stuff, etc..


*** 20030112_4 by kreator
- more cleanups..


*** 20030112_3 by kreator
- fixed smaller numerics issues with mo_forcenick(), part II


*** 20030112_2 by kreator
- fixed smalles numerics issues with mo_forcenick()


*** 20030112_1 by kreator
- added m_forcenick.c as Hybrid7 FORCENICK module, to be incorporated with
  identifying and nickchanges..
- added hybrid_services.c as Hybrid7 module for /nickserv, /operserv,
  /memoserv, /identify etc.. (thanks bnx!)


*** 20030111_2 by kreator
Directory /home/cvs/hybserv/contrib added to the repository


*** 20030111_1 by kreator
- added ags' ExpireAkick fix; good work ags!


*** 20030101_1 by kreator
- fix bug when services would load chan.db with akicks just to be expired,
  which would cause services to crash


*** 20021229_1 by kreator
- smaller fix for Me.hub NULL


*** 20021212_1 by kreator
- fix #undef gecosbans warning
- smaller set of changes


*** 20021210_1 by kreator
- fix very very nasty problem: original stupid spilled chars
  implementation caused multiple passes through BotProcess() with already
  discarded dccptr->hostname/username (reject unauth TCM conn) which later
  causes SendUmode() to core services
- smaller fix for mkpasswd


*** 20021206_2 by kreator
- add help set privmsg


*** 20021206_1 by kreator
- real misc va_* stuff fix for notice


*** 20021204_3 by kreator
- fix exit()s
- fix pid_t when print("%d")


*** 20021204_2 by kreator
- fix seenserv.c warnings (trivial)
- fix misc pidfile issues on Solaris (trivial)


*** 20021204_1 by kreator
- take out supposed seenserv fix


*** 20021203_2 by kreator
- fix old URLs


*** 20021203_1 by kreator
- seenserv smaller fix
- fix wrong hostmask[MAXLINE] handling without boundary checking (bad,
  very bad)


*** 20021201_1 by kreator
- oh yeah, we're back with TONZ OF PATCHEZ, sir:
  * seen.diff from "rabble of helpers" (seen nick!ident@host | ident@host
    | nick!ident) (fixed)
  * verbose.diff from "rabble of helpers" (more verbose add/del access)
  * seenserv.diff from "rabble of helpers" (fix TS seenserv coring)
  * akick.diff from "rabble of helpers" (fixed a bit) with following:
    1. AKICK DEL now with /m cs akick del test
    2. AKICK ADD - with time
    3. AKICK ADD - when users on chan kick ban them
    4. AKICK LIST - now supports expiration (Never, Expired, or the Human
                    readable format).
- and a lot of different fixups all around..


*** 20021127_2 by kreator
- test strikes back.


*** 20021127_1 by kreator
- test commit and changelogs, again.


*** 20021012_1 by kreator
- c_set_successor() fix: add successor clear (harly)


*** 20021010_1 by kreator
- some c_invite() fixes
- update for c_cycle() from LHG team


*** 20021007_1 by kreator
- import identifoper code from ddb
- document gdb_debug
- add c_modes and c_cycle (will fix later a bit more) (LHG team)
- speedup setdefaultalvl()
- fixed my wrong ifdef bug in banexpire
- add set privmsg for nicks, fix notice() and os_notice() as well as a lot
  of operserv code to support os_notice() (idea and some parts of code
  from LHG team)


*** 20020922_5 by kreator
- this time really fix execute7gline() (TS was sent, doh)


*** 20020922_4 by kreator
- fix finddupe in Makefile.in
- allow bansexpire for hybrid7
- fix execute7gline() for hybrid7 (it accepts mins, not secs)


*** 20020922_3 by kreator
- fixed a dozen of IsNum() < 0 issues in memoserv code


*** 20020922_2 by kreator
- more verbose m_list and m_read


*** 20020922_1 by kreator
- fixed double cs_verbose notice
- added MS_REPLIED in memoptr->flags, display read/replied flags
- backup ignore.db


*** 20020920_2 by kreator
- fix backup ignore.db


*** 20020920_1 by kreator
- fix ALVL for hybrid7


*** 20020919_3 by kreator
- doh, fix mode +e


*** 20020919_2 by kreator
- fixed lastupdate flag when EMPOWERADMINSMORE and valid admin is also
  founder/successor of any channel


*** 20020919_1 by kreator
- RELEASENOTES


*** 20020918_2 by kreator
- more tweaks for new lastused channel code


*** 20020918_1 by kreator
- finished #ifdef DANCER


*** 20020917_4 by kreator
- start #ifdef DANCER work
- update new channel activity (lastused) code
- update access list info output
- make proper o_restart and make it work with SIGUSR1, too


*** 20020917_3 by kreator
- misc


*** 20020917_2 by kreator
- YATP (Yet Another Ton of Patches). probably will break something :-)


*** 20020917_1 by kreator
- here is what went into last commit (code merge from dancer-services):
  - channel mode +f and +c (dancer stuff, will go under define in next
    commit)
  - usermode +E (dancer)
  - hybserv control pipe (DIE)
  - founder/successor last active flags for last used channels (obsoletes
    old lastused code)
  - burst complete flag
  - more forgotten CS_VERBOSE stuff fixed
  - verbose channel access lists, as well as nickinfo
  - a whole bunch of int -> unsigned counters fixup
  - socklen and time_t variables fixup
  - missing includes fixup
  - misc fixes for n_help()
- and some smaller fixes around, nonrelated to dancer code
- fix source/includes headers with proper developer information 8-D


*** 20020916_1 by kreator
- add a bunch of features from dancer services; mental note: ifdef mode +e
  and forward channels


*** 20020906_2 by kreator
- add expirebans docs


*** 20020906_1 by kreator
- add harly's BanExpire (and fix it)
- misc fixes scattered around
- started work on blackbook manager, ATM in unusable state :-)


*** 20020903_1 by kreator
- fix smaller issue in WriteIgnores


*** 20020902_2 by kreator
- fixed WriteIgnores bug: ts should be delta, instead of fixed ts


*** 20020902_1 by kreator
- clear COLLIDE and NUMERIC flag in ns_loaddata()
- fix other ERR_MUST_CHANGE into ERR_MUST_CHANGE2 when appropriate
- add forgotten (yeps, my bad) NS_NUMERIC clear in collide()
- fix 432 numeric send to be in proper 3 variable format
- move collide check into 30secs resolution
- fix numeric-collide delay to be 30 sec (obvious)


*** 20020901_1 by kreator
- force nick change via 432 numeric 10 seconds before killing
  nickname (harly)


*** 20020831_1 by kreator
- multiple founder possibility (harly and kre)
- if founder has identified with no founder access level,
  add him (harly)


*** 20020824_2 by kreator
- fixed kline for Hybrid7; this one is a complete reimplementation


*** 20020824_1 by kreator
(null)

*** 20020823_1 by kreator
- add harly into credits
- fix DelAccess() for channel founder
- set CS_SECURE flag for new channels by default


*** 20020709_1 by kreator
- noexpire string nick info


*** 20020625_2 by kreator
- commited various stuff:
  - args patches for ns_loaddata(), as well as bug with founder level
    (CA_FOUNDER)
  - add autosave services ignores into OperServIgnoreDB
  - misc cleanups and fixes
- tested against gcc-3.1
- fixed cvs commit log f*up by cvs upgrade :-(


*** 20020625_1 by kreator
- test commit


*** 20020524_1 by kreator
- fix compile error if #undef ALLOW_JUPES


*** 20020514_1 by kreator
- care about BSD signal semantics

*** 20020512_7 by kreator
- cleanup TODO


*** 20020512_6 by kreator
- remove debugcnt from DelAccess()


*** 20020512_5 by kreator
- reindent all files using gnu style

*** 20020512_4 by kreator
- add missing parens in UpdateChanModes()


*** 20020512_3 by kreator
- another bunch of smaller fixes

*** 20020512_2 by kreator
- misc reindent and clear in conf.c


*** 20020512_1 by kreator
- fix # in c_fixts()

*** 20020511_2 by kreator
- misc changes in dcc


*** 20020511_1 by kreator
- add missing gethostbyaddr in SetupVirtualHost()


*** 20020510_2 by kreator
- misc


*** 20020510_1 by kreator
- misc changes in alloc


*** 20020508_2 by kreator
- adx: CheckNick() was not called after nick change


*** 20020508_1 by kreator
- fix . to : in debug message "unable to connect to host:port"


*** 20020507_2 by kreator
- move MyFree into a macro


*** 20020507_1 by kreator
- fix my typo in MyFree


*** 20020501_1 by kreator
- imported adx patches:
  - fixed reference to deleted gptr in operserv code
  - fixed invalid total network conns count, which was b0rking dcc


*** 20020428_7 by kreator
- another DelAccess() :-(


*** 20020428_6 by kreator
- smaller fixup for UpdateChanModes by adx


*** 20020428_5 by kreator
- smaller fixup


*** 20020428_4 by kreator
- fix a nasty bug in DelAccess() (another one)


*** 20020428_3 by kreator
- add more todo
- and fix NICKLEN back to 9 chars as original specs say
- and add small AKICK fixup for hybrid-based ircds: it is possible to put
  nick mask that is > 9 chars, that is impossible to remove for any mode
  -b command - as a result of hybrid not checking length of server-sent
  mask :-(


*** 20020428_2 by kreator
- add more todo
- and fix NICKLEN back to 9 chars as original specs say


*** 20020428_1 by kreator
- add more todo


*** 20020427_10 by kreator
- fix adx's patches :-)
  a) MAXLINE missing
  b) IsEOL(..) casting ptr to integer conversion



*** 20020427_9 by kreator
- fix adx's patches :-)
  a) MAXLINE missing
  b) IsEOL(..) casting ptr to integer conversion


*** 20020427_8 by kreator
- another bunch of adx fixes:
  - DCC I/O loop error (fixed)
  - CMDHALFOP/AUTOHALFOP mismatch (fixed)
  - if AutoOpAdmins = 0, then opers get halfopped when they join a #
    (fixed)
  - hybrid-7 GLINE now works
  - bug with writing oper nicknames to oper.db (data.c). We were looking
    for *opernick* in donestr, but what if there would be another oper
    named, for example abcopernickdef? - their umodes wouldn't be written
    into oper.db...  I fixed the bug by looking for
    *<space>opernick<space>*.
  - yet another bug.. if SAVE_TS in #undef'd, when someone deops ChanServ
    on a channel (also if ChanServ is deopped by SJOIN message with older
    TS), it admittedly reops itself by sending MODE +o, but chanop
    status is not marked  in local, internal structures (ChanServ doesn't
    know it is opped...). So if, after deopping chanserv, someone will
    join a channel, ChanServ won't op them... (fixed)



*** 20020427_7 by kreator
- another bunch of adx fixes:
  - DCC I/O loop error (fixed)
  - CMDHALFOP/AUTOHALFOP mismatch (fixed)
  - if AutoOpAdmins = 0, then opers get halfopped when they join a #
    (fixed)
  - hybrid-7 GLINE now works
  - bug with writing oper nicknames to oper.db (data.c). We were looking
    for *opernick* in donestr, but what if there would be another oper
    named, for example abcopernickdef? - their umodes wouldn't be written
    into oper.db...  I fixed the bug by looking for
    *<space>opernick<space>*.
  - yet another bug.. if SAVE_TS in #undef'd, when someone deops ChanServ
    on a channel (also if ChanServ is deopped by SJOIN message with older
    TS), it admittedly reops itself by sending MODE +o, but chanop
    status is not marked  in local, internal structures (ChanServ doesn't
    know it is opped...). So if, after deopping chanserv, someone will
    join a channel, ChanServ won't op them... (fixed)


*** 20020427_6 by kreator
- add adx in credits
- a whole bunch of adx fixes:
  1. dccspill MUST NOT be a global variable, otherwise any operator with
     low privileges could use all OperServ commands:
     - an +o oper connects to hybserv and sends, for example, .DIE
       without CR/LF and with single space at the end,
     - when services admin (+s) uses any command, it is appended to the end
       of DCC spill; for example, if they use .status, we've got
           .DIE .status
       in the DCC spill. This is then processed and, finally, the +o oper
       is able to use the privileged command.
  2. FindServer(): We CANNOT just compute the hash value for server name
     and match() the chain, because *.server.org may have another hash
     value than some.server.org. If we are looking for "some.server.org"
     and have a server named "*.server.org", we won't find it -
     FindServer() returns NULL, which is *wrong*.
  3. Why do we need CMDOP access to use /msg ChanServ HALFOP? We have
     CMDHALFOP instead (let founders decide what level they want for
     HALFOP command...).



*** 20020427_5 by kreator
- add adx in credits
- a whole bunch of adx fixes:
  1. dccspill MUST NOT be a global variable, otherwise any operator with
     low privileges could use all OperServ commands:
     - an +o oper connects to hybserv and sends, for example, .DIE
       without CR/LF and with single space at the end,
     - when services admin (+s) uses any command, it is appended to the end
       of DCC spill; for example, if they use .status, we've got
           .DIE .status
       in the DCC spill. This is then processed and, finally, the +o oper
       is able to use the privileged command.
  2. FindServer(): We CANNOT just compute the hash value for server name
     and match() the chain, because *.server.org may have another hash
     value than some.server.org. If we are looking for "some.server.org"
     and have a server named "*.server.org", we won't find it -
     FindServer() returns NULL, which is *wrong*.
  3. Why do we need CMDOP access to use /msg ChanServ HALFOP? We have
     CMDHALFOP instead (let founders decide what level they want for
     HALFOP command...).


*** 20020427_4 by kreator
- add adx in credits


*** 20020427_3 by kreator
- fix non-chanservices build


*** 20020427_2 by kreator
- misc.


*** 20020427_1 by kreator
return nullify back in myfree :-( seems various parts of hybserv code
require it - i have to carefully review them again.


*** 20020421_2 by kreator
- add adx wishlist
- fix damn dccnext bug (boot next user -> crash)


*** 20020421_1 by kreator
- add adx wishlist


*** 20020402_2 by kreator
- add new bug log
- do some assertions and try to fry the damn chan-founder-list bug


*** 20020402_1 by kreator
- add new bug log


*** 20020303_2 by kreator
- cleanup old code
- fix hybserv coring on some of commands from clients on masked servers
- smaller cleanups around


*** 20020303_1 by kreator
- update todo


*** 20020216_1 by kreator
- fix a nasty bug reported by <marc@egotistical.net> - referencing deleted
  structure in loop at DelAccess()
- smaller optimisations


*** 20020210_1 by kreator
- readme small update


*** 20020208_3 by kreator
- fixed a couple of things
- removed SEGV handler (wtf did we have it at the first place..)


*** 20020208_2 by kreator
- move nickserv ircop flag into NoExpire as it should be


*** 20020208_1 by kreator
- testing.


*** 20011128_1 by kreator
- rename finddouble into finddupe


*** 20011125_8 by kreator
- and another set of GetMaster() patches


*** 20011125_7 by kreator
- disable ADVFLOOD by default
- start autoop thing to work


*** 20011125_6 by kreator
- and add it in install target


*** 20011125_5 by kreator
- add finddouble for debugging purposes. read bin/README and source for
  explanation


*** 20011125_4 by kreator
- updated contributors section
- addedd STRICT_DATA_CHECKING which will hopefully get rid of those pesky
  nickname loops which are (IMHO) result of DeleteLink()+InsertLink()
  issues
  BIG FAT NOTE: YES, THIS WILL SLOW DOWN NICK INITIALISATION *VERY* MUCH.
  yes, that is intentional. yes, once all problems are eradicated, that
  double-checks will be removed. hopefully. yes. yes. hope. yes.


*** 20011125_3 by kreator
- update TODO directives
- yes, update MemoServ to handle master/slave nicknames properly, so users
  will be notified of new mail on reconnecting (however, slaves will not
  be live-notified because it would be too CPU intensitive, at least for
  now)


*** 20011125_2 by kreator
- fixed n_info() issue which caused nicknames in linked list not to be
  able to see -all- information on other nicks
- fixed channel access inheritance for nicknames in link -> all access is
  handled via master nicks (mental note: do missing transfer access in
  DeleteLink())


*** 20011125_1 by kreator
- reverted OnAccessList() for ChanServ simply because I will resign
  chann access lists to handle all things via master nicks -> this will
  speedup things and it is The Only Proper Way [tm]
- PS, we should get some speedups from several last commits since I've
  removed some of useless checks.. I wonder how many of them really are in
  whole Services :-/


*** 20011124_2 by kreator
- update TODO
- confirm fixed possible DoS via DeleteLink()
- fix master nick lookup for OnAccessList() which will result in normal
  access lists lookups (as they should be in the first place!)


*** 20011124_1 by kreator
- this hopefully fixes that nasty DeleteLink() bug which could cause
  remote attacker to crash services in any time - this also could lead to
  nick.db corruption (not exactly, in fact)


*** 20011122_1 by kreator
- small set of fixes which could cause instability with nick data :)


*** 20011103_1 by kreator
- commit smaller uncomitted stuff


*** 20011022_1 by wcampbel
Removed my mirror


*** 20011019_2 by wcampbel
Spelling correction in ChangeLog


*** 20011019_1 by wcampbel
Minor doc fixes


*** 20011015_1 by kreator
- small fixes, part II


*** 20011014_4 by kreator
- some small changes, again


*** 20011014_3 by kreator
- small feature fix for stats g pattern matching


*** 20011014_2 by kreator
- add "stats g pattern" matching for easier gline examination


*** 20011014_1 by kreator
- add owallop for reload
- add printing matches for ungline


*** 20011011_3 by kreator
- go back to 2.13 autoconf because of 2.52 brokeness for bsd


*** 20011011_2 by kreator
- a bunch of new fixes and updates to 1.8.0


*** 20011011_1 by kreator
- update install
- update knownbugs: mention telnet conns don't work
- update to autoconf/automake 2.52
- update some dcc code
- update operserv
- do support for dmalloc


*** 20011009_1 by kreator
- fix small bug in SERVICES_FIGHT_FIX
- do releasenotes, update known bugs, etc.


*** 20011006_2 by wcampbel
Fix for the fix from ike


*** 20011006_1 by wcampbel
Fix for NICKOPERIDENT from ike, hopefully this will prevent the odd coring


*** 20010923_2 by wcampbel
.jump is administrator only (spotted by erick@erick.org)


*** 20010923_1 by wcampbel
.fuckover no longer exists, remove from the DCC help


*** 20010921_1 by kreator
- fix security issue when non-identified users with registered nickname
  could see info on themselves including all channels and all levels


*** 20010920_5 by wcampbel
Cygwin fixes and document that Cygwin works


*** 20010920_4 by wcampbel
Removed the unused Strn.h header
Added .cvsignore files


*** 20010920_3 by wcampbel
Document we now have a CVSWeb (Remove from TODO)
Update the Hyb7 conf entries in README


*** 20010920_2 by kreator
- add sql-design to be..


*** 20010920_1 by kreator
- misc fixes
- rewrite MyFree macro into inline func
- misc stuff, sql stuff, etc..
- remove c_r support since it is broken for our use
- new core :-/


*** 20010915_2 by kreator
- added sql stuff to be done later


*** 20010915_1 by kreator
Directory /usr/cvsroot/hybserv/sql added to the repository


*** 20010912_1 by kreator
- added services fighting fix -> still experimental code
- revisited DoShutdown() code - added putlog() with reason
- did some misc changes around


*** 20010911_1 by kreator
- some TODO rewrites
- sync with autoconf2.50 and autoheader2.50
- update configure and defs.h properly
- fix misc warnings


*** 20010907_1 by kreator
- remove darn x=NULL in MyFree() which borked some of wild code we still
  have around :-(


*** 20010828_1 by wcampbel
Synced up mkpasswd


*** 20010827_1 by wcampbel
Add the nick to the JUPE/UNJUPE WALLOPS notice.  This is useful for
responsibility purposes


*** 20010820_3 by kreator
- misc stuff for n_info()


*** 20010820_2 by kreator
- added KrisDuv's ideas into the code:
  - fix memory leak in c_op()
  - fix dumb usage of uninitialised str[] in n_set_hide()
  - fix some stupid code in n_set_hide()
  - display *all* info for channel and nickname to owner if he requests it
    (ie: issues info command without arguments!)


*** 20010820_1 by kreator
- misc stuff mostly


*** 20010818_6 by kreator
- fixed some c_r stuff (should have trown out that c_r support ages ago)
- fix some n_NickServ stuff in OPERNICKIDENT code
- misc


*** 20010818_5 by wcampbel
#if 0'ed two variables that were unused


*** 20010818_4 by kreator
- add c0manche as contributor -> he tested O-line security and reported
  that bug i've fixed last
- mention once again that this is STILL a prerelease


*** 20010818_3 by kreator
- fixed most inconvenient bug in OPERNICKIDENT code


*** 20010818_2 by kreator
- added pre-API documentation that is Janos writing
- removed old profiling report


*** 20010818_1 by kreator
- do smaller fixes in main Makefile
- update new config.guess and config.sub and install-sh
- fix some bogus code in ADVFLOOD
- fix some stupid NULL casts (i was fixing this in last commit, but i'm
  mentioning just in case)


*** 20010816_3 by kreator
- fixed some more code in ADVFLOOD


*** 20010816_2 by kreator
- disable ADVFLOOD_NOTIFY_ALL at the moment
- do some misc changes for flood detections, seems new advflood code is
  reason of latest cpu-kill deadloops :(


*** 20010816_1 by kreator
- disable unused portion of match.c


*** 20010811_1 by kreator
- added TIME_WITH_SYS_TIME check, did proper change of *.c which use
  time.h
- modified MyFree() to NULLify argument after free()-ing
- added new bug -> we've got a new core


*** 20010810_2 by kreator
- put *newer* config.guess and config.sub
- fixed n_set_uin() issue with non-dissapearing "UIN: " in n_info() output


*** 20010810_1 by kreator
- fixed smaller typo, eg:
  [fer]  Foreign OperKill: OperServ killed |DeVa| (Clones))
                                                          ^ note `)'


*** 20010807_2 by kreator
- took out #error !defined HYBRID_ONLY || !defined IRCNET since it is
  more-less meaningless and b0rks Comstud


*** 20010807_1 by kreator
- added ADVFLOOD patch from ike with smaller modifications (here follows
  his comment):
  * added advanced flood protection against nickchange/reconnect flooders,
    this is completely tweakable in include/config.h - ADVFLOOD
  * added option to require opers to identify to nickserv before being
    able to identify to operserv in include/config.h - OPERNICKIDENT
  * some code is repetitive, cleanups will be done soon
- got back from vacations :-)


*** 20010731_1 by wcampbel
Updated config.guess and config.sub for asuffield


*** 20010730_1 by wcampbel
Commit a change to allow the user@host to be specified in config.h for
juped nicks.  We may want to replace this later with a way to .jupe a
nick with a specific user@host.  Comments?


*** 20010717_1 by wcampbel
Corrected a URL for CVS checkouts


*** 20010623_1 by wcampbel
Committed a minor thing to test the e-mail sending upon commits


*** 20010622_1 by kreator
- fscanf had \n for pid
- fixed issue when services would core on large number of clones


*** 20010619_2 by kreator
- bwah. solaris has unsigned long pid_t and bsd has unsigned int


*** 20010619_1 by kreator
- oopsies, i had one `,' too much in last commit


*** 20010618_1 by kreator
- rewrite some TODO entries
- begin work on other ircds compatibility: got services to link with
  ircnet ircd, next will fix NICK syntax


*** 20010617_2 by kreator
- fixed problem with killchan not cleaning channels because of lame O:*@*
  lines (reported by KrisDuv)
- did what Kris suggested --> >= check for c_level(): however, this is a
  cosmetic change since it was syntactically and logically OK (founder can
  redefine levels and make autoop match only one person - founder)
- added verbose reports (if channel is set verbose) for access_add
  (KrisDuv) and access_del (modification of Kris' code)


*** 20010617_1 by kreator
- applied KrisDuv's patch for RemoveFounderChannelFromNick() function
  which _didn't_ decrease fccnt after channel drop: so in fact we had
  ++fccnt but never --fcnt!


*** 20010616_1 by kreator
- smaller sprintf_irc cleanup


*** 20010615_2 by wcampbel
Added KrisDuv to the credits


*** 20010615_1 by kreator
- last commit was referencing to ChanServ leaving of channel, not OperServ
  (was tired and didn't notice the difference)
- applied another KrisDuv's patch
- fixed all similar problems that upper patch was referencing to


*** 20010614_3 by kreator
- added patch from KrisDuv: OperServ would not part channels which were
  dropped on founder nick drop
- add some CygWin support


*** 20010614_2 by kreator
- oops, was mislead by one of Kris' patches so i forgot to add an extra
  nptr check in s_quit()


*** 20010614_1 by kreator
- applied (some are slightly modified) patches from KrisDuv
  <krisduv2000@yahoo.fr> in the following order:
   * fix stupid DefaultAccess problem which ment that anyone could alter
     global channel levels (how the heck didn't anyone notice that?)
   * fix broken lastseen updating for nicknames
   * fix broken "Last Seen" info in n_info()
- did some misc changes


*** 20010612_1 by wcampbel
Side ported the Hyb6 fix for RESTART


*** 20010607_1 by kreator
- misc changes in nickserv
- modify irc servers that we are on since irc.uk.eu.org is not going to be
  back on EFNow (hi, fl_ :)


*** 20010606_2 by kreator
- did some wordwrapping in README. oh that pesky wordwrap :-)


*** 20010606_1 by john
- I cleaned up the README file a bit and added more specific information 
  regarding the mailing lists. As of now ALL of the lists are fully 
  functioning. 


*** 20010605_4 by kreator
- document that we still have problems with linked nicknames under some
  strange circumstances - we cannot release 1.8.0 untill this is fixed


*** 20010605_3 by kreator
- oops, last commit f***ed up things :-(


*** 20010605_2 by kreator
- add routine that will check on load if there are more than 1 nick
  entry per 1 nick: this will slow down reading routines a bit so we can
  eradicate it when we are sure no problems with linked nicknames exist
  any more.


*** 20010605_1 by kreator
- undo some fixes for nicklink problem. seems some people are having
  repeated nicknames in nick.db, and funny thing is that i _don't_ have
  them with same version of software!


*** 20010604_3 by kreator
- fixed bug for DEBUGMODE in hybserv.c (thanks Janos)


*** 20010604_2 by kreator
- do some fixes all around
- clean seenserv code a bit, do a reformat, remove joinpart() code
- do misc fixes with operserv code


*** 20010604_1 by kreator
- wrote various missing helpfiles
- modify MyFree()
- do misc fixes around


*** 20010603_4 by kreator
- some TODO changes


*** 20010603_3 by kreator
- oops, forgot to remove fuckover helpfiles :)


*** 20010603_2 by kreator
- do some changes to cmdhalfop that Janos proposed


*** 20010603_1 by kreator
- a lot of fixes and cleanups all around


*** 20010602_2 by wcampbel
In my opinion, forbidden channels should be created with chanmode +s
in addition to chanmode +i


*** 20010602_1 by janos
- In line 5999 in chanserv it was HALFOF not HALFOP -> fixed


*** 20010601_3 by kreator
- fixed CH_OPPED stuff
- more fixes for that pesky problem with master nicks and unlink
- remake .depend


*** 20010601_2 by kreator
- fix Makefile
- do some fixes for CH_OPPED stuff, so i re-enabled it: this needs more
  tracing, so current CVS will probably have problems


*** 20010601_1 by kreator
- added fixlevel script for fixing broken ALVL entries which will appear
  for all people using older chan.db-s with newer sources
- remove that code from Makefile


*** 20010530_1 by kreator
- fix small bug in data.c for saving forbidded nickname's passwords


*** 20010529_1 by kreator
- fix nickserv set documentation


*** 20010528_7 by kreator
- original IrcBg code had 8 char limit for UIN and dumped it into long:
  since they are larger now, move it into string


*** 20010528_6 by kreator
- added some todo directives


*** 20010528_5 by kreator
- added preliminary support for pthread in libc_r; however, it seems to be
  missing pthread_sigwait()


*** 20010528_4 by kreator
- misc changes in README
- add gsm, phone and uin code to nickserv
- add clearnoexpire for nickserv and chanserv
- fix statserv index which was missing showstats
- add set verbose for chanserv
- fix set url help
- fix configure
- added showadmins and showopers


*** 20010528_3 by kreator
- fix autoconf for snprintf
- remove bogus snprintf from chanserv


*** 20010528_2 by kreator
- completely remove support for LibSfio and LibHoard since they give us no
  better performance & updated docs accordingly
- remove old profile
- move strncasecmp into ircncmp
- move strcasecmp into irccmp
- misc fixes around
- fix tools Makefile (remove libp - hoard)


*** 20010528_1 by kreator
- get rid of that pesky SIGINT signal handler; i wanted to remove it
  several times but always forgot


*** 20010527_7 by kreator
- did a _lot_ of fixes in hashing code that was obviously broken for any
  masked server in hash: this should fix all bad hits for such cases


*** 20010527_6 by kreator
- try to fix hashing code for masked servers


*** 20010527_5 by kreator
- misc makefile fix


*** 20010527_4 by kreator
- tweak hook a bit


*** 20010527_3 by kreator
- added GDB hook in hybserv.c


*** 20010527_2 by kreator
- fix mkpasswd


*** 20010527_1 by kreator
- document new bug with FindServer
- import match.c from Hybrid7 and delete old one
- fix jupe.c
- fix operserv.c
- misc fix for sock.c
- fix for tools Makefile
- import mkpasswd.c from Hybrid7 with MD5


*** 20010522_2 by kreator
- added complete profile in doc/20010519_2-profile.gz


*** 20010522_1 by kreator
- add mySQL/PostgreSQL support in TODO; hopefully someone will join us who
  will independently work on this one


*** 20010521_1 by kreator
- misc statserv fix


*** 20010520_1 by janos
- A smaller update to chanserv.c, and I set default CMDVOICE to 8
  and CMDHALFOP to 10 (why? -> see my mail what was sent to hybserv-coders
  on May 20th)


*** 20010519_4 by kreator
- misc change


*** 20010519_3 by kreator
- fix bug in c_info


*** 20010519_2 by kreator
- do some optimisations in SplitBuf based on profile report, should give us
  some more performance


*** 20010519_1 by kreator
- added preliminary/first_day profiling results in
  doc/20010518_1-profile.gz


*** 20010518_1 by kreator
- more configure and Makefile fixes


*** 20010517_3 by kreator
- rip out FuckOver


*** 20010517_2 by kreator
- misc Makefile changes


*** 20010517_1 by janos
- YESSS, Hybserv2 mailing lists are working again. John-Work moved it to
  Alleged, so README was updated
  Mailing list infos:
  hybserv@alleged.com - Hybserv Public List
  hybserv-bugs@alleged.com - Hybserv Bugs
  hybserv-coders@alleged.com - Hybserv Coders
  hybserv-cvs@alleged.com - Hybserv CVS



*** 20010516_4 by kreator
- misc fixes all around
- Makefile changes
- increase bufs for ircvsprintf


*** 20010516_3 by kreator
- juped libString completely
- misc changes around


*** 20010516_2 by kreator
- very large update - juped libString and added irc_sprintf (and co.) from
  Hybrid7; that gave us additional performance gain; we lost some boundary
  checking there
- moved Snprintf to snprintf, etc..
- fixed misc stuff all around 


*** 20010516_1 by kreator
- quite large update, I rewrote lots of code to make current_ts global,
  which has lowered usage of time() considerably; now we do have services
  consuming less CPU time
- preliminary support for snprintf fix


*** 20010511_2 by kreator
- part of DeleteLink fixes.


*** 20010511_1 by kreator
- fix nasty bug in WriteNicks() that existed even before
- found some more bugs in DeleteLink()


*** 20010510_1 by kreator
- misc changes to INSTALL
- added myself as leader developer :-) as result of discussion with John,
  that doesn't mean I will pretend to be boss -> I will try to continue
  improving HybServ2 and putting lot of efforts in that wonderful project:
  just to mention that more people are joining us and hopefully this
  project will grow even more


*** 20010508_2 by kreator
- DisplaySettings() in OperServ had same bug as did SaveSettings() in
  settings.c: it didn't check if PARAM_STRING is empty


*** 20010508_1 by kreator
- misc TODO modifications
- misc install.fast modifications
- add FIXTS command for ChanServ and NickServ for fixing bogus TS
  nicknames; default value is 8 weeks, however this is too much paranoid
  and has to be further tested


*** 20010507_2 by kreator
- small hybserv.conf modifications
- reviewed TODO


*** 20010507_1 by kreator
- add experimental MD5 support via hybcrypt()
- fix problem with ChanServ ignoring valid operators


*** 20010506_4 by janos
- a line to hybserv.conf with an example user with 's' flag
  so a newbie can die ,and he does not need to kill hybserv


*** 20010506_3 by kreator
- fix problems with cmds on forgotten channels


*** 20010506_2 by kreator
- fix configure script to detect stdio and stdio-mt more precisely
- correct some typos in README
- fix Makefile.in for sources to have correct include hierarchy, to have
  local includes before system ones (why o why didn't we have this
  before?)


*** 20010506_1 by kreator
- misc stuff


*** 20010505_1 by janos
- TODO refreshing, a bug what flame fixed, and I added to TODO before,
but kreator has not noticed it so, I removed from TODO(it was about
auto +v/+h+o), and notice about
operserv does not support hybrid7 modes
 


*** 20010503_9 by kreator
- added fl_'s patch, follows his comment:
  Hopfix is the +v instead of +h fix.. basically, the checks need to be in
  order of importance (+o/+h/+v), not (+o/+v/+h) ;)


*** 20010503_8 by kreator
- patch by fl_: let +h people use unban by default (if hyb7 is defined) 


*** 20010503_7 by kreator
- add web for cvs snapshots that I provide (manually)


*** 20010503_6 by kreator
- add some more files to be cleaned in distclean, especially those left
  from CVS conflicts
- force type f for make distclean, we don't want any directories to be
  erased


*** 20010503_5 by kreator
- add some more bugs in TODO, remove old ones


*** 20010503_4 by kreator
- fix small typo in settings.c


*** 20010503_3 by kreator
- remade .depend
- rewrote SaveSettings() so that conf is saved safe, it won't get
  truncated if something bad happens when writing conf


*** 20010503_2 by kreator
- fix for quite nasty problem with dcc connections: dccptr->nick was
  changed in onick (tempuser from GetUser -> O lines) instead of real
  lptr->nick, prolly for telnet connections. i don't care if they got
  b0rked, previous solution was simply stupid and wrong
- sync TODO and KNOWNBUGS


*** 20010503_1 by kreator
- more fixes for PARAM_STRING in settings.c


*** 20010502_6 by kreator
- fix another ugly conf bug with PARAM_STRING


*** 20010502_5 by kreator
- fix for lame SQUIT
- reported new bug with services ignoring DCC commands (does this have
  anything to do with previous DCC chat problems?)


*** 20010502_4 by kreator
- fix problem with PARAM_SET directives in conf files: old routines would
  save PARAM_SET with value of 1, but if one would put it into 0, conf
  would treat it as it is SET-ed (1). i've fixed it not to write any
  numerics on PARAM_SET values -> however, this code has to be rewritten
  and redefined again, since it means we don't have to look a whole
  param[] structure, just param[0] since whole directive should be one
  PARAM_SET
- resynced README and TODO between me and janos :-)


*** 20010502_3 by janos
- I changed hybrid-7.leguin.org.uk to irc.efnow.net because on hybrid-7
a hybnet server listening on port 6667, so I make sure users will come
to hyb7 test net anyway :) 


*** 20010502_2 by janos
- a bug added to TODO


*** 20010502_1 by kreator
- after extensive testing I confirm that previous patch completely fixed
  all DCC cores on .command that would end in return message to
  non-existing lptr
- reformated and changed style of documentation in README


*** 20010501_9 by kreator
- removed fixed bug from TODO and KNOWNBUGS; this was fast :-)


*** 20010501_8 by kreator
- fix nasty .gline bug
- fix kline documentation for OperServ
- TODO changes


*** 20010501_7 by kreator
- fix that totally weird variable scope bug in ADMININFO, *ugh*


*** 20010501_6 by janos
- some information added about Hybrid7 and HybServ linking in README 


*** 20010501_5 by kreator
- oops, ADMININFO had splitted string that should not be like it


*** 20010501_4 by kreator
- fix small typo reported by Janos - Administrators should be
  Administrator in VERSION reply
- changes to ADMININFO code


*** 20010501_3 by kreator
- more changes for ADMININFO


*** 20010501_2 by kreator
- move RELEASENOTES-1.8.0 into RELEASENOTES-8.0, according to John
- smaller modifications INSTALL, README and TODO and misc code lying
  around to move HybServ string into HybServ2
- more verbose configure
- add ADMININFO for ctcp VERSION, code under define in config.h.in


*** 20010501_1 by kreator
- updates for Makefile.in to support mrproper that some users are used to,
  it does distclean by default
- changes to configure.in and configure to have proper system detection,
  especially solaris: previously we tested for "/bin/sun", and that sucks;
  now we have config.guess and config.sub for that
- more syncing with Janos: properly added gecosbans on all sources and
  includes, rechecked all, modified CAPABS, etc.


*** 20010430_4 by john



*** 20010430_3 by kreator
- rewrote some TODO entries since we've fixed them


*** 20010430_2 by kreator
- changes to INSTALL and README: mention services through loopback device
  (127.0.0.1), put myself in bug reporting list, etc.


*** 20010430_1 by kreator
- more syncing with Janos, especially for chan access levels for halfops
  etc.
- added GIMMECORE in config.h for proper corefile setup
- more changes for CAPAB
- changes to INSTALL
- properly made update-chan in Makefile.in to detect and allow ALVL
  deletion in chan.db for smooth upgrade to Hybrid7 capable Hybserv


*** 20010429_9 by kreator
- add upgrade script for new levels into Makefile.in


*** 20010429_8 by kreator
- and another fix, probably last


*** 20010429_7 by kreator
- fix ugly core that happens for printing level commands


*** 20010429_6 by kreator
- synched with Janos for Hybrid7 +a, +I and +h - reviewed all patches and
  incorporated them into latest cvs. Note: this is quite large update!
- updated README and RELEASENOTES
- updated documentation: clear, index, halfop, etc.
- updated config.h appropriately with new dependancies


*** 20010429_5 by kreator
- add some more verbose messages in operserv: omode and gline wallops now
  show who issued the command
- fix index for chanserv and nickserv to show new commands


*** 20010429_4 by kreator
- oops, used uninitialised helpstr in helpserv security fix


*** 20010429_3 by kreator
- more fixes for both unforbid()s - make it work as drop on fake
  nicknames/channels
- some more fixes for smooth upgrade on unforbid()
- move to pre-1.8.0 that will appear on syncing with Binder


*** 20010429_2 by kreator
- removed cleandb that did not go in last cvs


*** 20010429_1 by kreator
- added unforbid for channels and nicknames
- added kline for operserv
- added gline7 from fl (Lee Hardy <lee@leeh.co.uk>)
- fix for serious security problem with helpserv, reported by larne
  (Edward Brocklesby <ejb@leguin.org.uk>) and binder (John Binder
  <jbinder@kgazd.bme.hu>)
- fix cleandb with both [ and -d override for older systems
- fix cleandb into cleandb.in that will configure fix with proper path
- add releasenotes for 1.8
- add documentation for kline, unforbid
- fix forbid documentation
- fix drop documentation
- modifications to TODO
- added fl_ and binder/janos to README, contributors
- fixed configure script for cleandb
- fix lame register variables in libstring (%s%register%%g)
- fix Makefile.in
- additionally test hybserv against gcc-3.0


*** 20010422_1 by kreator
Fixed minor bug in s_server() to correctly detect reconnecting hosts if
SPLIT_INFO on


*** 20010420_2 by kreator
Fixes for nptr==nptr->master in NickServ, userdb ---> THIS has to be
  reviewed. I was tired, and commented the wrong fix..


*** 20010420_1 by kreator
s/psuedo/pseudo/g **/*(.)
Fixes for nptr==nptr->master in NickServ, userdb
Quickfixes for memonotify on signon -> decided to notify user right after
  its identification ---> THIS HAS TO BE REVIEWED! Probably problems with
  DeleteLink() with copylink turned on.
Several smaller bugfixes around, too small to mention..


*** 20010414_1 by kreator
More TODO directives, mostly ideas from John Binder <jbinder@kgazd.bme.hu>


*** 20010413_1 by wcampbel
Removed serno.h in the root
serno.h is only in include/


*** 20010411_4 by kreator
Quickfixed CH_OPPED stuff. However, this is _not_ real solution, since it
seems CH_OPPED flags are not functional ATM.
Reversed back " " stuff, since it is handled in SplitBuf() anyway, and it
would do performance hit.


*** 20010411_3 by kreator
Fixed that nasty " " at the end of modes. Seems there were at least two
bugs causing server not to update channel/user flags, and that was reason
of OP ALL not to be working, together with other similar functions.


*** 20010411_2 by kreator
Fix address magenet.com -> magenet.net


*** 20010411_1 by kreator
Fixed ChanServ that would stay on channel if it was CS_RESTRICT and then
~CS_RESTRICT.


*** 20010410_3 by kreator
Updated documentation for libhoard. Some updates for libhoard to use -lrt
in configure for Solaris


*** 20010410_2 by kreator
Remove pthread_exit() from last commit. I still need to fix DoShutDown()
and exit() for LinuxPosixTreads since it does not properly shut down
threading system :|


*** 20010410_1 by kreator
Fix for SplitBuf() and s_sjoin() for blank sjoins. More fixes for
SplitBuf() to handle some bad situations.
Fix for pthread_exit() in DoShutDown() and SIGSEGV in ProcessSignals()
Some fixes for Snprintf where char is propagated to int in `...'.


*** 20010408_6 by kreator
Fix for ChanServ not parting channels with too long topics. There was no
topiclen check. Also, it would join, set topic and part, which could be
too long for ircd linebuf, and could therefore be truncated.


*** 20010408_5 by kreator
Fixed dcc.c with INADDR_NONE that was missing for Solaris.
Fixed chanserv.c with ChanServ that would not part after INVITE on
CS_GUARD channels with AllowGuardChannel == 0.


*** 20010408_4 by kreator
Fixed blank sjoins, I hope. Should have read ReadHub() better.


*** 20010408_3 by kreator
Ugh! I'm dumb. Forgot av[mcnt][0]==':', and put av[mcnt]==':'.


*** 20010408_2 by kreator
I believe this should fix problem with ':' alone as av[5] which makes
nicks[0] empty.


*** 20010408_1 by kreator
Seems that we have weird behaviour with Hybrid7 and sjoin (reported by
larne) - I'm including assertion for GetNick(nicks[0]) I believe since
nicks[] gets NULL for some reason. 


*** 20010401_1 by kreator
Fixed nasty bug in DccConnectHost(): in FreeBSD gethostbyname() does not
resolve IP-s, especially IPv4 addresses that are not in dot notation.
Some TODO stuff.


*** 20010327_1 by kreator
Document more TODO entries.


*** 20010315_1 by kreator
Add better support for multiprocessing machines running HybServ - through
libhoard. Add configure testing for it. Document it. Update TODO.


*** 20010313_2 by wcampbel
Test commit, make sure the fixed serno.h works


*** 20010313_1 by wcampbel
Added the 3rd mirror


*** 20010312_1 by kreator
Document some more TODO stuff..


*** 20010311_1 by kreator
Sfio support - configure && documentation, appropriate source
modifications, etc.


*** 20010310_5 by wcampbel
Recovered the lost ChangeLog entries


*** 20010310_4 by wcampbel
Recover the lost ChangeLog entries


*** 20010310_3 by wcampbel
Testing

*** 20010310_2 by wcampbel
Document anonymous CVS


*** 20010310_1 by kreator
Fixed install.fast, since we don't need install-help as separate
target, it is done in install target by default


*** 20010305_1 by kreator
Some typos of mine in statserv, and to log Hwy's nicknamelen change.


*** 20010221_1 by kreator
More fixes for autoroute stuff.


*** 20010220_1 by kreator
Added preliminary rerouting logic through M: lines.
Fixed rename() bug - XXX check this again.


*** 20010219_4 by kreator
Was tired and put notice(.., connect_ts) instead of split_ts. Zeroed
connect_ts on SQUIT, too. Perhaps I should save it for "Last successful
connection lasted for.."?


*** 20010219_3 by kreator
Forgot to mention - Makefile.in fixes, SED, proper symbolic links with ln
-s, etc. It was attempting to do hardlinks all the time. TODO update. Some
smaller changes..


*** 20010219_2 by kreator
Forgot to cvs add help/statserv/split.


*** 20010219_1 by kreator
Added SPLIT_INFO and EXTRA_SPLIT_INFO code - as split command for StatServ,
as well as netsplit server detection that is delivered by SendUmode(L..
Added CycleServer() in o_Restart() that was missing.
Added some __DATE__ and __TIME__ macros in info on startup and o_status()
Added pid validation checking, services shouldn't start if they were
already running.
Killed all (void *)NULL. Why cast something that is already (void *)?


*** 20010218_2 by kreator
Added AllowGuardChannel option in settings.conf, since it is somewhat
annonoying to have ChanServ sit on large amount of channels on large
network.
Fixed o_status() that was not precisely written in last commit.


*** 20010218_1 by kreator
Removed that kludgy proxy checking code - use Hybrid-TCM for that.
Modified documentation, too. 
Added support for native Solaris threads - now it is default on Solaris
platforms. This includes updates both in source and configure script.
Some small code updates, fixes - ex. <time.h> was missing.


*** 20010215_1 by kreator
OperServ - onick and co. in o_Wallops() did not have to be NULLed, so
wallop could contain garbage
ChanServ - bug reported on mailing list - EMPOWERADMINS defined, admins
can FORGET/FORBID but cannot DROP such channels
NickServ - allow registred administrators (if EMPOWERADMINS) to drop
nicknames without their own password. Updated the helpfiles accordingly.


*** 20010214_2 by kreator
Fixed several bugs, made config.h -> config.h.in, settings.h ->
settings.h.in for automatic HPath and SETPATH setup. Some docs rewrite,
too.


*** 20010214_1 by kreator
Fixed a nasty Solaris (and perhaps other OS') bug: seems socket() has
problems when using fd=1 (that we got after closing 0,1,2 and perhaps
other 64 fds). We have setsid() that I did in last commit, so it should be
enough.
Fixed some Makefile.in stuff, and random things I have seen all around.


*** 20010213_1 by kreator
Fixed AllowKillProtection - there was PARAM_INT instead of PARAM_SET
Put setrlimit() to generate core on SIGBUS if -DDEBUG, no matter of shell
limits
Put setsid() after fork() to daemonize as session leader, and break
anything with tty, closed first 64 fd-s for proper daemonizing, too.
Fixed install target - right order of making targets
Made HYBRID7_GLINES and removed them because of Dianora's request
Cleaned a bit Makefile.in


*** 20010212_6 by kreator
Fixed BCFlood issue by eliminating bogus code. It was funny to see that
broadcast anti-flood code generates some more flood by flooding all +d
opers that broadcast flood is happening :-)


*** 20010212_5 by kreator
Changed Makefile.in and configure.in for VERSION string to use MAJOR
version - release, and include/serno.h from CVS. Useful for anon-CVS and
other. Notice: awk used.


*** 20010212_4 by kreator
And removed it afterwards.


*** 20010212_3 by kreator
Added bogus test-add.


*** 20010212_2 by kreator
Forgot to mention BCFlood. Test, once again.


*** 20010212_1 by kreator
Preliminary changes to test CVS and state what has to be done.


*** 20010211_2 by wcampbel
Ok, ChangeLog should properly update.


*** 20010211_1 by wcampbel
Imported Hybserv


HybServ Change Log

1.7.2 

  - Finally added install-help target into install (kre)

  - Fix for nasty ghost kill (Hwy101)
 
  - Jupe patch (voting and help updates) (toot)
 
  - KillProtection option (toot) 

  - Added chroot() to HPath when UID 0, as well as 077 umask (kre)

  - Fixed nasty bug with gline on symbolic address containing some/any
    digits (kre)

  - Fixed uname problem in status report of OperServ (kre)

  - Time constants are now permitted to be 0 as it should be (kre)

  - Added backup of SeenServDB (kre)

  - Some code updates in SeenServ code (kre)
  
  - Fixed bug with `DCC CHAT' and Solaris (kre)
  
  - Fixed weird backup bug on Solaris (kre)
  
  - Some documentation updates (kre)
  
  - Fixed funny bug with translating `%' to `*' in IDENTIFY password
    strings - in fact, this was expected behaviour :-) (kre)

  - Moved SETPATH to Makefile, as it should be. This includes various
    Makefile changes (kre)

  - Made OperServ more verbose on `Access Denied' thing (kre)

1.7.1

  - Fixed a nasty chanserv bug which would cause it to crash hybserv (toot)

1.7

  - Fixed the README and notes.  No actual bug fixes or features.

1.6.1

  - SplitOps channel setting to prevent mass-deops

  - A voting system for server jupes

  - Split some #define EMPOWERADMINS features into a new
    define in config.h

  - ChanServ won't part a Guarded channel after inviting someone
    to it.

  - Logon.news is re-read on .rehash.

  - features and fixes from UniBG's version of HybServ by
    Nedelcho Stanev <decho@csoft.bg>:

     . a SeenServ bot
     . support for Gecos channel bans
     . a greplog command on statserv for admins to
       scan hybserv logs for certain commands
     . more commands are shown on wallops
     . fixed a bug with adding long host masks on nickserv

1.6.0

  - reverted GMT offset calculation back to old method - but
    it is still an hour off for daylight savings time people

  - added "libString" directory with some useful optimized
    string functions

  - added commands "gmemo" and "gcmemo" to Global
    (/msg Global help {gmemo|gcmemo})

  - fixed two issues regarding NickServ's KILL IMMED option

      . if you did a SET KILL IMMED followed by a SET KILL ON,
        the KILLIMMED flag would not be cleared
      . a combination of SET SECURE ON and SET KILL IMMED
        caused NickServ to kill the user no matter what - now
        it gives the user a 1 minute delay to identify
    (found by Jetchko Jekov <jeka@ieee.bg>)

  - added a bunch of new fixes/features from Nedelcho Stanev
    (<decho@csoft.bg>):

      . fixed compatibility issue wrt ChanServ's "invite"
        command and ircd-hybrid-6
      . bug fix in ChanServ's "access add" command
      . bug fix in OperServ's "ungline" command
      . minor security fix in gline handling
      . made OperServ's "jupe" command more robust
      . bug fix in MemoServ's "purge" command
      . added new service: Global - sends a motd to users
        upon logon, and some other neat stuff
        (/msg Global help)
        Directives GlobalNick, LogonNews and GlobalNotices
        added to settings.conf
      . added command "SHOWSTATS" to StatServ
        (/msg StatServ help showstats)
      . New directive: DoWallops to send a wallops upon
        the use of certain OperServ commands
      . nickname jupes can now have a reason other than
        "Jupitered Nickname"
      . bug fix in MemoServ's "send" command

  - partyline messages referring to database saves and memo
    purges are now sent to the +d usermode instead of +y -
    a few complaints about this :-)

  - NickServ's "info" command now shows administraters all
    channels a user has access to

  - server jupes now show the reason they are juped in the
    links list

  - implemented a cleaner, more efficient method of remote
    trace and whois replies

  - optimized NickServ's "info" command wrt displaying
    the nick's registered channels

  - optimized channel mode handling a little

  - fix for IRIX 6.5 where server hostnames were not resolving
    correctly

  - bug fix involving linked nicknames and memo notification
    (found by screwedup <rrooott@hotmail.com>)

  - cosmetic bug fix in NickServ's "SET OPER"

  - bug fix where channel exceptions were not being
    calculated in stats m

  - hub and dcc client connections are now non-blocking

  - redid CheckLogs() because solaris doesn't support
    scandir(3)

  - bug fix involving the calculation of the GMT
    offset

  - *major* bug fix where if the length of a user's
    nickname equaled NICKLEN, they would not receive
    a terminating \0 on the end of their buffer and thus
    could not execute any services commands since they
    were not correctly added to the hash - the only
    operating system I could reproduce this on was
    solaris, but in theory it would be a problem on any
    OS.
    (many thanks to Nathan Mehl <memory@blank.org> for this)

  - redid all header files so we (hopefully) won't have
    many double includes

  - optimized Makefiles a bit

  - bug fix where a user could continually cycle a restricted
    channel - this was also causing the use of a bad pointer
    which eventually caused a crash
    (found by screwedup <rrooott@hotmail.com>)

1.5.0     08/30/1999

  - added a pile of fixes/features from Philippe Levan
    (<levan@epix.net>):

      . don't check mode changes by OperServ
      . let the users deop themselves
      . core dump if tolower()'s result is used as a signed integer
        (may be compiler specific)
      . allow turning noexpire on/off on channels (useful if
        RestrictRegister because all channels registered by
        admins/opers are NOEXPIRE)
      . preserve "real-time" information when reloading nickname
        database (especially the NS_IDENTIFIED : the list command
        won't show anybody as ONLINE after a reload ; or NickServ
        would forget to collide a nick because of the loss of
        collide_ts)
      . allow admins to list and change users' access lists if
        EMPOWERADMINS
      . allow people to unset oper flag
      . default to short output for trace, add -long for long output
      . fix nick TS handling code : I have a companion program whose
        only purpose is to take over the nicks if hybserv dies and it
        uses the same user@host's as hybserv ; when hybserv returns,
        let the TS protocol do the cleaning and don't send KILL's
      . allow people to use *Serv@MyName in messages : more secure
        in case hybserv dies and somebody takes over the nick
      . be consistent with desc_*Serv in whois
    Thanks to Philippe for going to all this work :-)

  - NickServ's "info" command now shows administrators
    the user's linked nicknames and all channels the user
    has registered

  - fixed a problem with the proxy detector which could
    spawn a huge amount of threads during a netjoin
    (found by mike <mike@victim.com>)

  - heavily rewrote StatServ's "server" command, and added
    some neat options
    (/msg StatServ help server)

  - servers are now stored in a hash table to ensure
    faster lookups

  - added tools "encryptconf" and "encryptdb" to convert your
    plaintext conf files and databases (respectively) to
    encrypted form

  - added command "set" to OperServ so you can configure
    settings.conf items while services is running (also
    added -sets flag to OperServ's "save" command to save
    the new settings - /msg OperServ help save)

  - new O: line flag added: "s" for Services Administrators -
    this way, you can give server administrators +a, but
    reserve the most powerful commands for a select few.
    (requested by Ryan <socfam@hotmail.com>)

  - added directives "MaxLogs" and "MaxChansPerUser" to
    settings.conf
    (latter suggested by Ryan <socfam@hotmail.com>)

  - better log file control

  - made nick collisions a little quieter

  - added ircd-hybrid's faster nickname/channel hashing
    functions

  - finally redid the nick/chan/memo hashes so they're
    actually "real" hashes now :-)

  - glines are more "hybrid"ized - creates 3 fake opers and
    servers to vote for the gline

  - added some options to OperServ's "killchan" command
    (/msg OperServ help killchan)
    (suggested by mike <mike@victim.com>)

  - broke up OperServ's +d usermode into a bunch of more
    specific ones - +d now represents every other usermode
    (.help umode)
    (requested by mike <mike@victim.com>)

  - bug fix in NickServ's "access add" command

  - added command "dump" to OperServ - ALLOW_DUMP must be
    defined
    (/msg OperServ help dump)
    (requested by Cloud90 <Cloud90@earthlink.net>)

  - better checks for glines of service bots

  - bug fix where if you used SET #channel GUARD ON with no one
    in the channel, it would core
    (found by neph|l|m <adel@cybercable.fr>)

  - cleaned up up a great deal of code - also moved much of
    the code into smaller modules

  - added ircd-hybrid-6 match() and removed WildCompare()

  - OperServ's "trace" command could fail occasionally if
    if you used -nolimit and there were many users on the network.
    It was filling up the sendq buffer too fast, so eventually
    an errno of EDEADLK would occur during write(). Now uses
    select() to determine if the socket is writeable. This only
    affected dcc/telnet connections as far as I could tell.

  - the OVisin() beast is dead (finally)

  - no longer broadcasts tcm links to clients who have
    not yet entered their password

  - no longer broadcasts clone detections/exits for
    nickname enforcement psuedo-clients

  - bug fix involving bans set by ChanServ

  - bug fix involving #undef BLOCK_ALLOCATION and OperServ's
    "channel" command
    (found by Mshadow <mshadow@localnet.com>)

  - added "OP ALL" to ChanServ to op you in all channels you
    have access to
    (suggested by screwedup <rrooott@hotmail.com>)

  - yanked the varargs code (ANSI II C has been out for how many
    years?) :-)

  - added flag "-nolimit" to OperServ's "trace" and "channel"
    commands
    (/msg OperServ help trace/channel)

  - optimized conf handling a bit

  - OperServ's "join" and "part" commands are now administrator
    only
    (requested by Ryan <socfam@hotmail.com>)

  - handles service nick kills more efficiently now

  - optimized the sjoin routine a bit - it was calling FindChan()
    way too many times

  - bug fix in the lag detector where services was pinging
    juped servers

  - bug fix involving server kicks
    (found by xirphoid <xirphoid@excite.com>)

  - OperServ no longer allows you to jupe services'
    current hub server
    (thanks to good for "demonstrating" this :-))

  - ./configure now outputs some configuration info when
    it completes

  - added flag "-proxy" to OperServ's trace command

  - added command: "droplink" to NickServ (admins only)
    (/msg NickServ help droplink)

  - added a wingate/proxy detector (ProxyCheck in
    settings.conf). This will only work if you
    have a pthreads library.

1.4.6     06/18/1999

  - added command "clearstats" to StatServ (admins only)

  - bug fix in GetChanUser() routine
    (found by Kryten <euro.kryten@btinternet.com>)

  - added GlineFile/JupeFile directives to settings.conf
    (suggested by Nathan Mehl <memory@blank.org>)

  - bug fix in OperServ's "unjupe" and "ungline" commands

  - added .include directive to hybserv.conf
    (suggested by Ryan <socfam@hotmail.com>)

  - "a" and "o" flags in O: lines no longer include
    the jupe, "j", flag automatically - you must
    include a "j" flag yourself to give jupe privileges
    (requested by Ryan <socfam@hotmail.com>)

  - added a few bandaids which were causing compile
    warnings on OpenBSD

  - bug fix in OperServ's "omode" command
    (found by aeon <aeon@darkscape.cx>)

1.4.5     06/03/1999

  - added a somewhat Big Brotherish command to NickServ:
    "flag" - for admins to play with
    (/msg NickServ help flag)

  - added a neato lag detector to StatServ - check out
    RELEASENOTES-1.4.5 (LagDetect/MaxPing directives
    added to settings.conf).
    Also: added command "refresh" to StatServ to manually
    update lag information (admins only).

  - bug fix in ChanServ forbid handling

  - bug fix where services would not correctly respond to
    a server ping request if it was from a client

  - bug fix in OperServ "part" command

  - added command "SET GUARD" to ChanServ - user requested
    Note: this feature is only effective when configured
          with #define HYBRID_ONLY
    (/msg ChanServ help set guard)

  - ChanServ now automatically sets "NoExpire" for channels
    registered by an operator or higher

  - ChanServ now displays "NoExpire" as a channel option
    in an "info" output

  - added MaxClonesWarning to settings.conf

  - fixed a few bugs in ChanServ's SET SECURE handling
    (found by metalman <jimmyo@fastrans.net>)

  - cleaned up list.c and server.c a bit

  - added hybrid-6 +e (ban exception) support, and added
    option "-exmatch" to OperServ's "channel" command

  - bug fix where ChanServ would deop all non-autoops
    that were previously opped the moment someone new
    joined the channel

1.4.4     05/09/1999

  - bug fix in cs_CheckJoin() which could cause
    ChanServ to quit flood the network if it was
    trying to send an entry message to itself

  - bug fix in ChanServ topic handling - introduced in
    1.4.3
    (found by Neph|l|m <adel@cybercable.fr>)

1.4.3     05/09/1999

  - topics can now be cleared through SET TOPIC -
    (/msg ChanServ help set topic)

  - bug fix involving ChanServ SET TOPIC and HYBRID_ONLY

  - added a minor security check to bin/cleandb

  - optimized top level Makefile a bit

  - bug fix in ChanServ's ENTRYMSG handling
    (found by Ryan <ryanduarte@hotmail.com>)

  - "ReloadDbsOnHup" is now disabled by default in
    settings.conf

  - added C/N line examples to the README file

1.4.2     05/03/1999

  - made script bin/cleandb to cleanup the backup
    directory by removing backups that are a month
    or more old

  - bug fix in rehashing settings.conf

  - bug fix in "fuckover" where if the client was
    able to withstand the flood for 20 seconds,
    it would incorrectly issue a "Flood successful"
    message to the partyline

  - found and fixed memory leak in database reloads

  - bug fix where a database reload could incorrectly
    make a nickname identified

  - you can now customize each service nick's ident
    in settings.conf (see ...ServNick section)
    (suggested by John-Work <irc@alleged.com>)

  - added option "RestrictRegister" to settings.conf

  - added two helpful command line programs:
    "shownicks" and "showchans" - they are installed
    as hard links to the hybserv binary
    (./show{nicks,chans} -h for more information)

1.4.1     04/18/1999

  - added "NonStarChars" to settings.conf
    (suggested by XShadow <castro@usmatrix.net>)

  - added some neat options to OperServ's "channel" command
    (/msg OperServ help channel)

  - implemented a system of backing up database files -
    check out "BackupFreq" in settings.conf

  - "rehash" now rehashes settings.conf - should have
    put this in 1.4.0 =/

  - added #define HYBRID_ONLY to config.h, so
    ChanServ does not join registered channels
    anymore - please be aware that this will work
    only on a 100% hybrid network
    (this was suggested by holobyte a long time ago (-:)

1.4.0     04/16/1999

  - New feature: linked nicknames - so you can have
    different aliases for the same nickname, and have
    all of them share the same access list, set options,
    memos, etc.
    See settings.conf for "LinkedNicknames" and "MaxLinks"
    Administrator command "showlinks" added to NickServ
    accordingly
    (/msg NickServ help {link|unlink|showlinks})
    (/msg NickServ help set master)

  - New feature: settings.conf - this file contains
    most of the old config.h options, so you can
    configure many of HybServ's features at run
    time, rather than compile time. The example
    settings.conf contains documentation on each
    option.
    (Please read RELEASENOTES-1.4 for more information)

  - devised a method of ensuring +y users don't get
    flooded with clone warnings when services
    is connecting to the network for the first time

  - added "set kill immed" to NickServ as well as
    "AllowKillImmed" option in settings.conf
    (/msg NickServ help set kill)

  - added feature "SmartMasking" to settings.conf -
    it is thoroughly explained in that file
    (suggested by XShadow <castro@usmatrix.net>)

  - added "set hide {email|url|addr|quit}" to NickServ
    (/msg NickServ help set hide)

  - bug fix in telnet service where you could raise
    a SIGPIPE by sending data and closing the
    connection without waiting for the nickname
    prompt
    (found by holobyte <holobyte@holobyte.org>)

  - kill protection is now off by default for newly
    registered nicknames - can be turned on by
    default in settings.conf (NSSetKill)

  - long standing bug fix where a secure nickname
    would not be given a full minute to identify
    when services first connects to the network

  - bug fix where a clone would change his/her nick and
    +y users would see clone exit/detected messages

  - OperServ's "gline" and "ignore add" commands now
    understand more complex time formats for
    temporary glines/ignores: XwXdXhXmXs
    (/msg OperServ help {gline|ignore})
    (suggested by darkskull <darkness@damnation.net>)

  - enhanced timeago() a bit to work with the new
    settings.conf

  - created directory "doc" for documentation files

  - the "ServerNotices" option now affects every
    service bot, not just OperServ

  - minor bug fix involving "MaxConnections"

  - obscure bug fix involving GetUser() and incoming telnet
    connections

  - minor bug fix in ident reply handling

  - bug fix where if a channel expired while ChanServ
    was in the channel, ChanServ wouldn't part - you would
    have to set "ChannelExpire" obscenely low to produce
    this error

  - NickServ/ChanServ now display "<< PRIVATE >>" to
    administrators who use "list" on private nicks/chans

  - added command "collide" to NickServ (admins only)
    (/msg NickServ help collide)

  - databases are no longer saved after a SIGSEGV

  - bug fix where if your nickname had secure on,
    and you changed your nick to the same nickname
    with a different combination of upper/lowercase
    letters, you could be collided

  - Service nicks now treat NOTICEs like PRIVMSGs

  - StatServ now keeps track of current resolving host
    users instead of total resolving host users seen
    today

  - bug fix where if you identified with OperServ not
    using the nickname in your O: line, you would not
    be able to see administrator commands on NickServ,
    ChanServ, or OperServ in a "help" request
    (found by darkskull <darkness@damnation.net> and
     Riggs <riggs@amused.net>)

  - bug fix where "reload" would cause OperServ to log
    an incorrect warning about users' umodes

  - bug fix where "reload" would cause ChanServ to join
    forgotten channels
    (found by darkskull <darkness@damnation.net>)

  - two new usermodes: +n/+l
    (/msg OperServ help umode)

  - remote whois/version/trace/motd queries are now
    broadcast to +y users

  - added some more information to OperServ "status"

  - OperServ no longer warns/kills clones if they match
    an exception (e) flag

  - bug fix where SendUmode() would broadcast to dcc
    clients who had not yet identified

  - now notifies +y users of clients who /oper

  - added flood protection to SendUmode() to prevent against
    many calls in very short time periods (such as during
    netsplits)

  - added #define NICKREG_DELAY to config.h

  - command abbreviation now works on ChanServ's "clear"
    sub-commands - forgot this one while I was doing the
    others :-)

  - if ChanServ happens to be in a channel when an admin
    uses "forget" on it, ChanServ now parts

  - added command "noexpire" to NickServ and ChanServ -
    admins only
    (/msg {Nick,Chan}Serv help noexpire)

  - bug fix where O: lined users' umodes would be erased
    after a SIGHUP or rehash

  - bug fix where OperServ would join empty C: lined channels
    after receiving a SIGHUP

  - cleaned up server.c a little

  - added #define MAXKILL to config.h - for "killhost"
    and "trace -kill"

  - bug fix where NickServ would respond if you sent
    an unknown command to StatServ
    (found by darkskull <darkness@damnation.net>)

  - added a ton of options to OperServ's "trace" command
    (/msg OperServ help trace)

  - added #define LOWERCASE_IDENT to config.h
    (requested by Riggs <riggs@amused.net>)

  - OperServ now notifies users with +y usermodes of
    new maximum user/channel/oper/server counts
    (as long as STATSERVICES is enabled)

  - NickServ no longer says "<< ONLINE >>" next to the
    nickname in "info" unless the user is currently
    identified
    (found by Riggs <riggs@amused.net>)

  - StatServ now keeps track of clients running identd

  - fuckover is back under #define ALLOW_FUCKOVER -
    disabled by default
    (user-requested)

  - Administrators can now boot other administrators off
    the partyline (in the case of a ghost etc)

  - bug fix where #undef'ing NICKSERVICES and STATSERVICES
    at the same time would cause a compile error
    (found by darkskull <darkness@damnation.net>)

1.3.0     03/06/1999

  - bug fix involving pthreads and signals

  - added #define RESTRICTED_ACCESS to config.h, so
    only operators or above may use *Servs - disabled
    by default
    (requested by John-Work <irc@alleged.com>)

  - ChanServ no longer says "<< ONLINE >>" next to the
    founder entry in the "info" command, unless the
    founder is currently identified with NickServ

  - added NickServ's memo set options to NickServ "info"
    output

  - NickServ's set "nomemos", "nonotify", and "nosignon"
    have been changed to "memos", "notify", and "signon",
    because that way is easier to understand - unfortunately
    this is not backwards compatible, meaning whatever
    memo settings you had in prior versions will be reversed
    by this version, so you'll have to reset them :-) Sorry.

  - bug fix in ignore host matching

  - all NickServ and ChanServ "set" commands are now logged

  - NickServ's "access list" now supports hostmask matching
    (/msg NickServ help access list)

  - command abbreviation now works for sub-commands such as
    /msg NickServ set pass <password> instead of:
    /msg NickServ set password <password> - This includes
    NickServ/ChanServ's "access" and "set" commands, ChanServ's
    "akick" command, and OperServ's "ignore" and "htm" commands

  - new OperServ command: "umode"
    (/msg OperServ help umode)

  - cleaned up all functions which use varargs to use the
    more standard/portable stdarg.h if possible

  - buffer overflow fixed in o_unlink()

  - OperServ now logs uses of "status", "boot", and
    "identify", which I forgot to do a while ago :-)

  - fixed a few things that were causing some compile
    warnings on Solaris/SunOS

  - bug fix in OperServ's "killhost" command

  - bug fix where if you removed a J: line from the conf,
    and rehashed, the psuedo-server would not be SQUIT'd

  - bug fix where OperServ could be fooled into thinking
    juped nicks were clones, if they exceeded MAXCLONES

  - bug fix where connection count wasn't updated properly
    if a tcm wasn't authorized to connect

  - minor bug fix in NickServ's "access del"

  - added "stats p" and "stats c" to display port/channel lines

  - replaced .glines and .jupes with "stats g" and "stats j"

  - Administrators can now see private nicknames/channels in
    NickServ/ChanServ "list"

  - fixed a null pointer bug introduced in 1.2.0 that was causing
    unpleasant seg faults after a rehash
    (found by LauraDax <lauradax@magenet.com>)

  - OperServ now accepts "mode" in place of "omode"

  - minor bugfix in OperServ's "restart"

  - command abbreviation now works if you are initially .identify'ing
    through dcc chat

  - added command: "hub" to OperServ
    (/msg OperServ help hub)

  - added "Current Hub:" info to StatServ's "server" command

  - made p_CheckTime() a bit more rugged

  - minor bandaids to BroadcastDcc()

1.2.0     02/13/1999

  - gethostbyaddr() is now non-blocking (yay!) on telnet
    clients thanks to pthreads

  - pthread support added - configure will detect if it
    should compile with pthreads - if you don't have
    pthreads installed on your system, consider installing
    them; they're awesome :-) - Read README.PTHREADS for
    more information

  - CRYPT_OPER_PASSWORDS is now on by default for security
    reasons - please remember to update your conf or #undef
    this option

  - server connection attempts and clone detections are now
    broadcast to the partyline

  - "rehash" now rehashes S: lines

  - removed OperServ's obsoleted "stats n" (StatServ does all
    that and much more) also, added "stats s" - displays S:
    lines

  - bug fix in OperServ "gline"

  - potential buffer overflow fixed

  - bug fix in CheckNick() involving RECORD_SPLIT_TS
 
  - rewrote user verification code

  - added check to make sure hybserv doesn't run as root

  - OperServ now accepts "identify" in place of "register"

  - added #define OPERS_HAVE_ACCESS to config.h so any
    global operator will have oper/jupe/gline privileges
    on OperServ, without needing an O: line in hybserv.conf.
    This feature was user-requested, and it is disabled
    by default because I don't like the idea of just any
    oper being able to gline someone (that is why newnet
    and dalnet are so lame)

  - bug fix where telnet service allowed people to connect
    without having a "d" flag in their O: line

  - redid htm code a bit

  - OperServ's "jump" now supports wildcards in the
    server name

  - bug fix in nick change handling of nicknames equal
    to NICKLEN

  - last seen address/quit message is no longer updated unless
    the user was identified when they quit

  - NickServ "info" no longer shows last seen address if the
    user is currently online

  - bug fix where last seen user@host for NickServ wasn't
    being updated when the user /quit

1.1.12    01/15/1999

  - added #define CRYPT_OPER_PASSWORDS to config.h so you
    can put encrypted passwords in O: lines, with the
    mkpasswd program.  It is #undef'd by default so your
    current hybserv.conf will still work.
    mkpasswd.c is copyright (C) Nelson Minar 1991

  - now reloads databases on a SIGHUP if RELOAD_DBS_ON_SIGHUP
    is defined in config.h (defined by default)

  - bug fix where services would seg fault if you used OperServ's
    "omode" to -i/+o yournick on a forbidden channel
    (found by zarf <zarf@li.com>)

  - bug fix in memo adding routine

  - added command "ghost" to NickServ
    (/msg NickServ help ghost)

  - nickname security is now turned on by default when you
    register

  - OperServ's "reload" now reloads ChanServ, MemoServ, and
    StatServ databases

  - STATSERV_DB added to keep track of all time high counts for
    users/opers/chans/servs etc.

  - bug fix where services wasn't clearing channel bans
    after an SJOIN with TS - 1

1.1.11    01/14/1999

  - bug fix in ctcp handling which was causing an infinite loop,
    and on some systems, a seg fault
    (found by zarf <zarf@li.com>)

  - bug fix in BlockSubAllocate() which was causing a seg fault

1.1.10    01/08/1999

  - new feature: if HybServ cannot bind a P: lined port
    on startup, it will continue attempting to bind the
    port at 10 second intervals.  If it cannot bind
    the port after so many tries (MAX_BINDS), it gives
    up

  - added option: MAX to OperServ's "htm" command so you
    can set the maximum htm rate on the fly

  - OperServ no longer joins C: lined channels unless there
    are users in them - no point guarding an empty channel,
    and this also fixes the bug where OperServ would
    join, part, and join again on startup

  - added SET SUCCESSOR to ChanServ
    (/msg ChanServ help set successor)

  - memory leak found and fixed in chanserv.c

  - added script "install.fast" to quickly compile and
    install HybServ

  - added #define LAST_SEEN_INFO to config.h to have NickServ
    keep track of users' last seen addresses and quit messages
    to display in an INFO

  - added options: EMAIL, URL and HIDE to NickServ's "set"
    command
    (/msg NickServ help set {EMAIL|URL|HIDE})

  - added options: ENTRYMSG, EMAIL, URL, and FORGET to
    ChanServ's "set" command
    (/msg ChanServ help set {ENTRYMSG|EMAIL|URL|FORGET})
    (FORGET option suggested by holobyte <holobyte@holobyte.org>)

  - RECORD_SPLIT_TS now works after a .jump

  - make install-help now chown's the help directory to the
    user who ran configure
    (found by holobyte <holobyte@holobyte.org>)

  - added #define ALLOW_ACCESS_IF_OPPED to make optional
    the feature where ChanServ doesn't deop anyone
    as long as a SuperOp is opped on the channel
    (requested by holobyte <holobyte@holobyte.org>)

  - bug fix where ChanServ would rejoin every channel
    regardless of it being empty when it was killed -
    also, no longer joins forgotten channels after
    being killed

1.1.9     12/30/1998

  - when ChanServ now joins a channel, it no longer deops
    anyone as long as there is a SuperOp or higher opped
    on the channel - the SuperOp does NOT need to be
    identified with NickServ
    (requested by Cloud90 <Cloud90@earthlink.net>)

  - new feature: #define HIGHTRAFFIC_MODE
    to handle high traffic loads more efficiently - read
    config.h for more information - command "htm" added
    to OperServ accordingly

  - Now checks to make sure there is a '#' in the channel
    name in a C: line
    (found by NEPH|L|M <adel@cybercable.fr>)

  - uses of the ChanServ "clear" command are now logged

  - bug fix in ChanServ's "akick" command
    (found by Cloud90 <Cloud90@earthlink.net>)

  - now introduces all juped servers/nicks on connection
    to the hub, instead of waiting for the nick/server to
    show up, and then introducing the jupe
    (suggested by ^joey- <apryan@dimensional.org>)

  - new ChanServ command: forget (admins only)
    (/msg ChanServ help forget)
    (requested by holobyte <holobyte@holobyte.org>)

  - added #define SERVER_NOTICES to config.h, to have the
    server name issue NOTICES, instead of OperServ/StatServ
    (requested by ^joey- <apryan@dimensional.org>)

  - added #define RECORD_SPLIT_TS to config.h, so when services
    splits, users won't have to re-identify with NickServ or
    OperServ
    (suggested by holobyte <holobyte@holobyte.org>)

  - memory leak fixed in RemUserInfo()
    (introduced in 1.1.7)

  - added new memory handling routines (alloc.c)
      a) Now detects if we run out of memory on a malloc(),
         realloc() call etc.
      b) Block Allocation added (#define BLOCK_ALLOCATION) -
         read the section in config.h for more information

  - added HelpServ (#define HELPSERVICES)
    (/msg HelpServ help)
    %H now expands to HELPSERV_NICK in motd files as well

  - new ChanServ command: status (admins only)
    (/msg ChanServ help status)

  - recoded hashing algorithms - hashes use much less memory
    now for smaller nets

1.1.8p3   12/07/1998

  - bug fix where StatServ wasn't resetting daily domain
    resolving/nonresolving counts

  - bug fix in ChanServ's "access list" command introduced
    in 1.1.7p1
    (found by geniusj <geniusj@home.com>)

  - bug fix in StatServ that was causing a seg fault when
    services was /squit'd

  - redid paths in config.h a bit - you no longer have to
    specify the entire path name for hybserv.conf/hybserv.motd
    etc. - just give the name of the directory with all the
    files in HPATH; of course, if your files are scattered
    around, you'll need to give individual paths :-)

  - now responds to remote /motd requests - motd file path
    is MOTDFILE in config.h (dcc motd file is now DCCMOTDFILE)
    motd file may contain % characters that expand to various
    strings as explained in the example motd.global file

  - made dcc/telnet socket parsing code a little more efficient

1.1.8p2   12/04/1998

  - buffer overflow fixed
    (found by holobyte <holobyte@holobyte.org>)

  - added MemoServ command: "reply"
    (/msg MemoServ help reply)

  - bug fix where StatServ's daily counts weren't being reset
    at midnight if you didn't live in the GMT timezone

  - added more info to StatServ's "server" command

  - all *Serv's now support command abbreviation - for example
    if you wanted to identify with NickServ, you could type:
    /msg NickServ ident <password>, instead of the entire
    word "identify"
    (suggested by holobyte <holobyte@holobyte.org>)

  - added help on NickServ's "info" command, which I forgot
    to do in 1.1.6p3 :-/

  - bug fix in config file parsing

  - now responds to remote trace, whois, and version queries

  - OperServ/ChanServ no longer quit with a SIGSEGV error
    if a SIGTERM is received
    (found by holobyte <holobyte@holobyte.org>)

1.1.8p1   11/28/1998

  - bug fix where users with numerical ips would be stored
    in the StatServ domain hash using the last two segments
    of their ip instead of the first two

  - new StatServ command: stats
    (/msg StatServ help stats)

  - StatServ's "domain" command is much more informative now

  - added #define AUTOLINK_FREQ to config.h to auto link to
    unconnected tcm bots that have B: lines

  - fixed potential memory leak

  - bug fix where hubs wouldn't be cycled correctly on startup
    or after CONNECT_FREQ seconds
    (introduced in 1.1.8)

1.1.8     11/26/1998

  - added #define STATDEL_FREQ to config.h to specify number
    of days to wait before deleting StatServ hostname entries
    that have 0 clients (default: 1 week)

  - bug fix involving #define MAXCLONES

  - added new OperServ command "jump"
    (/msg OperServ help jump)

  - bug fix where if the hub server was .jupe'd, the client/channel
    hashes wouldn't be cleared properly

  - bug fix in RemUserInfo()

  - bug fix in timeago() which was causing a buffer overflow,
    and as a result, a seg fault if the given TS was equal
    to the current TS

  - telnet interface now uses the nickname in the O: line
    rather than the nickname entered at the prompt as
    the client's nick

  - added some more information to OperServ's "status"

  - channel memos are now cc'd to nicks on the channel access
    list
    (suggested by holobyte <holobyte@holobyte.org>)

  - bug fix where .jupe wouldn't create a psuedo-server if
    the server wasn't currently connected to the network
    (found by holobyte <holobyte@holobyte.org>)

  - added StatServ (#define STATSERVICES)
    implemented commands:
      HOST, DOMAIN, SERVER, HELP
    (/msg StatServ help <command>)

  - bug fix involving AUTOOP_ADMINS introduced in 1.1.7p1
    (found by holobyte <holobyte@holobyte.org>)

1.1.7p1   11/16/1998

  - bug fix where ChanServ wouldn't reset mlocked modes
    after joining with TS - 1, from a kick/deop flood
    (found by holobyte <holobyte@holobyte.org>)

  - bug fix where an oper from an unknown host, but
    with a nick that has an O: line could execute
    OperServ commands without first registering
    (found by holobyte <holobyte@holobyte.org>)

  - added #define AUTOOP_ADMINS to config.h so if an
    admin isn't on a channel's access list, they won't
    be auto-opped, but they will still have founder
    access to the channel as long as EMPOWERADMINS is
    defined
    (requested by holobyte <holobyte@holobyte.org>)

  - MEMO_EXPIRE added to config.h so memos will expire
    after a certain number of days

  - registered nicknames can now be added to a channel's
    ACCESS list; this way, someone can't spoof a host
    on the access list, register any nickname, and get ops
    (suggested by holobyte <holobyte@holobyte.org>)

  - no longer exits program if pid file can't be written

  - added virtual host support (read the section on V: lines in
    the example hybserv.conf)

  - bug fix in AddChanInfo()

  - bug fix where forbidden channels couldn't be dropped
    (found by holobyte <holobyte@holobyte.org>)

  - bug fix where memoserv.c wouldn't compile if CHANNELSERVICES
    was #undef'd
    (found by holobyte <holobyte@holobyte.org>)

1.1.7     11/12/1998

  - ChanServ no longer deops non-autoops when joining a channel
    if there is an opped SuperOp or higher on the channel, when
    joining from a split; if SECUREOPS or RESTRICTED is set,
    however, non-autoops will be deoped regardless of having
    a SuperOp or higher opped on the channel

  - "stats m" now shows MemoServ memory usage

  - priority logging of database saves changed to LOG3,
    because it tends to flood your log file

  - added #define PURGE_FREQ to config.h to specify the
    number of seconds between automatic memo purges

  - bug fix in OperServ's UNJUPE command that was causing a
    segfault
    (found by ^joey- <apryan@dimensional.org>)

  - bug fix in timeago()

  - added three memo SET options to NickServ:
    NOMEMOS, NONOTIFY, and NOSIGNON
    (/msg NickServ help set)

  - added #define MAXMEMOS to config.h to specify maximum
    number of memos someone can have at once

  - MemoServ added (#define MEMOSERVICES)
    implemented commands:
      SEND, LIST, READ, HELP, DEL, UNDEL, FORWARD, PURGE
    (/msg MemoServ help <command>)

  - bug fix where buffer overflow would occur if the hub server
    had NICKLEN set to a value greater than hybserv's NICKLEN,
    and someone did a /nick very-long-nickname

  - ChanServ's forbid command now checks if the channel has a
    leading #

1.1.6p5   10/31/1998

  - bug fix where some data was being lost when the hub sent
    the initial connect burst
    (introduced in 1.1.6)

1.1.6p4   10/30/1998

  - always asks for a nickname now in telnet interface in case
    two people have similar hostmasks

  - tells telnet clients to turn off local echo when entering
    their password

  - bug fix in .boot

  - added version.c and removed -DVERSION="" from other source
    files in Makefile

  - bug fix involving IDENT_TIMEOUT

  - bug fix in .who

  - ident requests are now non-blocking, so services can
    act normally while idents are being performed

  - bug fix where #undef NICKSERVICES combined with a
    #define FLOOD_PROTECTION would cause a compile error

1.1.6p3   10/25/1998

  - .who now shows idle times of clients idle more than 5
    minutes

  - unauthorized tcm connection attempts are now logged

  - tcm bots are now idented, so you may now use usernames in
    L: lines: L:tcm@*.tcm.org:TcmNick:password

  - several bug fixes in tcm linking code introduced in 1.1.6p2

  - bug fix in .boot

  - Administrators can now use the ChanServ/NickServ "info" command
    on private and forbidden nicknames/channels if EMPOWERADMINS
    is defined

  - added command "info" to NickServ
    (/msg NickServ help info)

  - added command "set unsecure" to NickServ
    (/msg NickServ help set unsecure)

  - bug fix where if you registered a channel and dropped your
    nickname, it would crash

  - the fuckover command has been disabled because of it's
    possible use as a DoS attack; I've thought long and hard
    about this, and I know many people like the command,
    so if you have any questions/comments/suggestions, email
    wnder@underworld.net

  - now idents incoming telnet connections so the clients username
    is no longer *@hostname (if an ident request fails, the client
    will be known as "unknown@host"); IDENT_TIMEOUT added to
    config.h accordingly

  - now saves channel/nickname databases before shutting down
    after a SIGTERM

  - no longer logs connections to dcc chat clients

  - no longer displays blank lines sent by telnet clients to
    partyline

  - added #define TELNET_TIMEOUT to config.h so telnet clients
    who haven't entered their password within a certain number
    of seconds will be disconnected

1.1.6p2   10/16/1998

  - added #define CONNECTFREQ to config.h to specify the delay
    between reconnect attempts (if the hubs are down etc)

  - removed modes field from C: lines in hybserv.conf
    (it did nothing)

  - .stats o now displays nicknames

  - several bug fixes in telnet interface

  - .rehash now reloads P: lines

  - .stats m now accounts for dcc/telnet memory usage and
    P: line memory usage

  - optimized memory usage a bit more in the user structures

  - bug fix where HybServ wouldn't detect if the hub closed
    the connection properly
    (introduced in 1.1.6p1)

  - bug fix in OperServ's "restart" command

  - bug fix where if the socket descriptor used for the hub
    server happened to be 0, hybserv wouldn't connect properly

1.1.6p1   10/10/1998

  - added a telnet DCC CHAT interface, so you can telnet to
    a port on the box hybserv is running on to give commands
    to hybserv - added P: lines to hybserv.conf to specify
    which ports to listen on for users (tcm ports are now
    specified this way also, instead of in config.h) - read
    the example hybserv.conf for more information.
    This code is very experimental, and probably contains
    all sorts of bugs :-), so I'd appreciate anyone who
    can use the telnet feature frequently to test it out.
    Any bug reports can be sent to wnder@pheared.underworld.net

  - deop flood protection added - if OperServ or ChanServ is
    deoped from a channel 5 times in <= 20 seconds, everyone
    on the channel is deoped, so the *Serv can regain ops

  - bug fix where commands that were previously dcc only,
    were not being displayed correctly to opers/admins on
    the partyline, if given through /msg

  - bug fix where HybServ would crash when someone /oper'd
    if the N: line for services had a hostmask stripping
    field
    (found by DevilM <devilm@r337.com>)

  - O: lines in hybserv.conf *MUST* contain nicknames now
    (read the example hybserv.conf for more information)

  - removed "op" command from OperServ (it did nothing anyway)

  - bug fix in ChanServ's "identify" command

  - bug fix in s_error()

  - bug fix where if someone not on a channel's access list
    was the first to join the channel, ChanServ did not deop
    them after joining

  - the OperServ commands "on", "off", and "clones" are now
    logged

  - bug fix where if you changed your nickname during a dcc chat
    it would screw up the dcc connection

  - bug fix where ChanServ wouldn't join a channel OperServ
    was monitoring in older ircds

  - redid dcc code to use a little less memory when dealing
    with a small number of connections

  - services now logs when people trigger flood/kick protection

  - bug fix where if both OperServ and ChanServ were on the
    same channel, only 1 of them would respond to a channel
    ctcp

  - DATABASE_SYNC in config.h was changed to 1800 seconds
    (every half hour) to save the databases

1.1.6     09/30/1998

  - kick flood protection added - if OperServ or ChanServ is
    kicked from a channel 5 times in <= 20 seconds, everyone
    on the channel is deoped, so the *Serv can regain ops

  - bug fix involving MLOCKs for +l/+k modes

  - added command "clear" to ChanServ (/msg ChanServ help clear)

  - Makefile modified so 'make install' no longer installs
    the help files - use 'make install-help' now

  - added "stats ?" to OperServ (/msg OperServ help stats)

  - added command "info" to ChanServ (/msg ChanServ help info)

  - ChanServ now automatically drops channels when the
    founder's nickname expires

  - "stats m" now accounts for NickServ/ChanServ/ignorelist
    memory usage

  - ChanServ now responds to channel ctcps

  - added flood protection (read the section of config.h dealing
    with flood protection)

  - added command "ignore" to OperServ to prevent certain
    users from using services

  - ChanServ now parts channels that have been empty for 5
    minutes

  - bug fix in detection of expired channels

  - the AUTODEOP level now autodevoices too

1.1.5p1   09/24/1998

  - bug fix in SJOIN handling

1.1.5     09/24/1998

  - ChanServ's AUTODEOP level works now

  - added commands "invite", "op", "voice", and "unban"
    to ChanServ

  - added command "level" to ChanServ so founders can
    customize their channel's access levels
    (/msg ChanServ HELP LEVEL)

  - added "set" command to ChanServ

  - bug fix where if you did /msg OperServ omode #channel +p
    and the channel was already +s, it wouldn't update the
    modes properly by "-s"ing first

  - added "setpass" and "forbid" commands to ChanServ
    (EMPOWERADMINS must be defined)

  - added #define MAX_AKICKS to limit the number of autokicks
    per channel (default: 20)

  - the "save" and "reload" commands from NickServ are now
    under OperServ

  - added "akick" and "list" commands to ChanServ

  - the NickServ "list" command can now be executed by anyone
    regardless if they have a registered nickname or have
    identified

  - got AUTOOP and AUTOVOICE access levels for ChanServ working

  - added a lot of neat info to the "status" command for
    OperServ :-)

  - added #define DATABASE_SYNC to config.h to save the
    nickname/channel databases every so often

  - bug fix involving a user joining the channel "0"

  - bug fix where deoping OperServ and another client in the
    same mode string wouldn't update the channel op flags
    properly

  - added #define EMPOWERADMINS to config.h to give the option
    of allowing administrators to control channels/nicknames -
    read config.h for more details (it is #undef'd by default)

  - added ChanServ commands "help" and "access"

  - die command now saves channel/nickname databases before
    shutting down

  - added commands "register", "identify", and "drop" to
    ChanServ

  - #define CHANNELSERVICES in config.h now introduces
    CHANSERV_NICK to the network (#define CHANSERV_DB is
    the location of the channel database)

  - fixed a bug in OperServ's .register
    (found by LauraDax <lauradax@magenet.com>)

  - added commands "off" and "on" to OperServ (.help off/on)

  - bug fixed in CheckJuped()

  - added #define NICKNAME_EXPIRE to config.h to have
    nicknames expire if the are not used for a certain
    period of time

  - added commands "save" and "reload" to NickServ

  - added new set switch to NickServ - SECURE
    (/msg NickServ HELP SET SECURE)

  - added commands "recover" and "release" to NickServ

  - redid OperServ help so people who don't have access
    to a command, can't get help on it; also redid the
    output to /msg OperServ HELP - looks much better
    now :-)

  - OperServ commands "trace", "channel", "stats",
    "killchan", and "killhost" can now be executed through 
    /msg

  - redid .stats u output to account for weeks and years

  - added command "list" to NickServ

  - added command "set" to NickServ

  - got NickServ help command working and created help files

  - killchan/killhost no longer kill *Servs if they happen to
    be in the channel or match the hostmask

  - bug fix in rehashing of jupe entries

  - bug fix in CheckChans() where it was trying to read a NULL
    channel list

  - bug fix in .stats n (floating point exception)

  - .join and .part now require an "o" flag

  - bug fix in IsProtectedHost()

  - bug fix where "o" flag users could dcc chat even if they
    did not have a "d" flag (admins ("a") can still dcc chat 
    regardless of possessing a "d" flag)

  - added command "access" to NickServ to modify the list of 
    authorized hosts for your nick

  - added command "identify" to NickServ (if you identify with
    NickServ from an unknown host, it automatically adds the new
    hostmask to the list of known hosts for your nick =) )

  - added commands "register" and "drop" to NickServ

  - added #define NICKSERV_DB to config.h to specify the location
    of the NickServ database

  - changed SERVICENICK to OPERSERV_NICK in config.h

  - added #define NICKSERVICES to config.h to introduce NICKSERV_NICK
    to the network

1.1.4p5   08/25/1998

  - added temporary glines (.help gline)

  - .channel now allows the channel to have wildcards in it -
    MAXCHANNEL was added to config.h to truncate the list after
    so many matches

  - minor bug fixes in .help

  - bug fix where seg fault would occur if the second field of the N:
    line was greater than 256 characters

  - hybserv now writes its pid to a file so servchk is much more
    efficient

  - modified .stats m slightly

1.1.4p4   08/18/1998

  - removed .stats l - it's all under .stats b now

  - .stats m is a bit more accurate now

  - bug fix where B: and L: lines weren't being re-read during a 
    rehash

  - there is no longer a limit as to how many C:, B:, or L: lines
    you may have in hybserv.conf

  - bug fix where dcc messages meant for "o" flag users were being
    sent to other tcm bots if the tcm's hostmask matched an "o" user

  - make install now chown's the install directory to the user
    who ran configure - so hybserv doesn't automatically run as
    root - you can change the user by editing Makefile

1.1.4p3   08/12/1998

  - there is no longer a limit as to how many O: or S: lines you
    can have in hybserv.conf

  - bug fix in RemChanInfo() which could potentially become a 
    memory leak

  - bug fix introduced in 1.1.4p2 where .secure was no longer opping 
    "f" flag users

  - bug fix where netjoins involving a lesser TS could fool
    SERVICENICK into thinking it was deoped on a channel it was
    not even on

  - bug fix where only administrators could use .who

  - added: .stats i (.help stats) to go along with the new I: line

  - new conf line: I: line - read about it in the example hybserv.conf
    (requested by Alpha232 <alpha@freeshells.com>)

  - added commands: .killchan, .killhost (.help .kill[chan,host]) -
    you can disable them in config.h if desired
    (requested by Alpha232 <alpha@freeshells.com>)

  - added #define MAXCLONES and #define AUTOKILL_CLONES to config.h -
    read that section of config.h for more information (they are both
    disabled by default)

  - if SERVICENICK is kicked before it has a chance to set modes with
    .omode, it no longer tries to rejoin

  - bug fix in s_sjoin() involving SERVICENICK being deoped on a
    netjoin

1.1.4p2   08/07/1998

  - added function: toserv() to send server commands more easily

  - converted storing of channel members to a list rather than
    a messy string

  - bug fix when SERVICENICK didn't reop itself on a netjoin with 
    a lesser TS on a monitered channel

  - .trace no longer shows an empty "Channels: " line if the user
    is not in any channels

  - 2 bug fixes in .secure:
      a) when SAVE_TS was #undef'd, non "f" flag users weren't being
         deoped
      b) channels with TS of 0 weren't being handled properly

  - several bug fixes in .fuckover:
      a) users with an exception (e) flag can no longer be fuckover'd
      b) if a user was killed while they were being flooded, the flood
         process was not removed from the fprocs table
      c) psuedo nicks like SERVICENICK and any juped nicknames can no
         no longer be fuckover'd

  - changed name of package to hybserv

  - bug fix where jupe and gline kills weren't updating oper kill
    counts properly

  - a flags value of SOCK_UNUSED now designates an unused index in
    connections[] rather than a socket value of -1

  - .jupe can now be used to jupe nicknames as well as servers
    (.help jupe)

  - juped servers are now replaced with a fake server so services
    doesn't have to keep squit'ing them (make sure services has an
    H: line if you enable jupes)

  - ctcp ACTIONs are no longer logged

  - obscure dcc chat bug fix where if a client EOF'd before the motd
    was sent to them, the program would crash

  - bug fix where it informed a user twice when a dcc chat connection
    failed

1.1.4p1   07/22/1998

  - bug fix where ghosted partyline members weren't being detected
    due to the lame writesocket() routine I had

  - bug fix where SERVICENICK wasn't responding to channel ctcps

  - bug fix in notification of a user disconnecting from the partyline

  - added command: .fuckover (.help fuckover) - inspired by FEFNet's
    AlcServ/IceServ command - this implementation however fork()'s a new
    process to do the flood, so the services can function normally while
    the flood(s) are in progress.  Also, it tracks nick changes, and
    starts flooding the new nick if necessary.

  - added .stats m (.help stats)

  - wildcard jupe bug fixed

  - bug fix where gline kills weren't removing users from the list

  - bug fix in .secure if the channel is already monitored

  - bug fix in c_kill()

  - bug fix in UpdateChanModes()

  - .secure and .omode no longer break TS if SAVE_TS is defined in
    config.h - also, when SERVICENICK is deoped, it saves TS while
    reopping itself

  - added modestr() to make .secure more efficient

  - added some more info to .channel

  - added command: .clones (.help clones)

  - converted channel and nick lists to use a hash, for speedier
    processing

  - added #define MAXTRACE to config.h to truncate .trace list
    after so many matches

  - bug fix in nick change handling

  - bug fix in umodes handling

  - bug fix where it was seg faulting if the hub had no C/N's for
    services

  - added cron script bin/obchk to restart observ if the box reboots 
    etc.

  - added ./configure script to make compilation a little easier :-)

  - added some more info to .stats n

  - added command: .channel (.help channel)

  - added command: .trace (.help trace)

  - added command: .stats (.help stats)

  - tcm linking code is a little more stable

  - converted command parsing to a *much* more efficient routine

1.1.3     03/10/1998

  - First stable release of OBServ - right now it's basically an
    OperServ with a dcc chat interface.

  - This file created
