$Id: ChangeLog,v 2.110 2003/11/23 07:16:37 ericprev Exp $

Version 0.0.1
-------------

* Initial Release of DChub

* The most useful features are available

--------------------------------------------------------------------------------
Version 0.0.2
-------------

* the hub-security "fake" user is now only visible from Op and Master account.

--------------------------------------------------------------------------------
Version 0.0.3
-------------

* A new option have been added to force dchub to use a different port from the
  default port (411). After invoking dchub with this option, the new port is
  registered into database and the option is no more necessary. The port is 
  stored into HUBPORT key of the database.

--------------------------------------------------------------------------------
Version 0.0.4
-------------

* new key added to the database: MHUBPASS and MHUBLIST. They are used to set up
  a hub network.

* hub network is now available. It still supports multi-hub search (=relay other
  hub requests to local client).

* Multi-hub search support added (=relay local client requests to other hubs).

* Support of "ONLY_REG" (registered users only) flag added by Yves Blusseau.

* new master command added: -redirall to redirect all users to a different hub
  (added by Yves Blusseau).

* Enhancement of empty password support for registered users added by Yves
  Blusseau.

* -ulist command result is now displayed properly on DC client (fixed by Yves
  Blusseau).

* Some bug fixes on the DC Protocol (fixed by Yves BLUSSEAU).

* ONLY_REG key type is now as it should have been, an integer and not a string.
  You must rebuild your configuration file.

--------------------------------------------------------------------------------
Version 0.0.5
-------------

* a myinfo script is now available. Its main goal is to monitor minimum share
  requirement. (see scripts/dchub_myinfo_handler.pl) for more information.

* new function added for PERL script: dchub::nick_duration.
  (see Documentation/scripts for description).

--------------------------------------------------------------------------------
Version 0.0.6
-------------

* the core has been partially rewritten. Previously, each connection was handled
  by a thread (which takes ~2MB of RAM). Now, all connections are handled by one
  thread. The amount of memory used by each connection is now less than 1KB, a
  lot better :)

* fix the "out of memory!" message occuring after exactly 128 calls to the Perl
  interpreter.

* new key added to the database: WELCOME. This key contains a welcome message
  sent to incoming users. Patch by Hans Forsn.

* Op can now redirect users directly from DC instead of using -redir command.
  Patch by Hans Forsn.

--------------------------------------------------------------------------------
Version 0.0.7
-------------

* fix a hub registration hang problem. With previous version, if the hub 
  registration fails because the DC registration server does not respond, the
  socket used by the registration is not closed. After a moment, dchub cannot
  open new socket and starts to hang (in the worst case).

* a lock has been added to hub registration to avoid multiple registration at
  the same time.

* When a user is disconnected (not kicked), the global chat kick message is no
  more displayed. Patch by Hans Forsn.

* 3 news functions for PERL script: disconnect, redirect and redirectto.
  Functions added by Hans Forsn.

* To avoid memory saturation if a connection fails during DC handshake,
  handshake stage must now be performed in 10 seconds.

* fix a bug in privchat handling. The '$' at the beginning of the message 
  content has been removed.

* multi-users private chat has been created. It allows more than 2 users on a
  private chat. They are created using "+new_mchat" and private chat users can
  invite new users using "+invite_mchat". This feature does not require special
  capability from user client.

* normal users have now a special help (obtained using "+help").

* fix a bug occuring when a user tries to enter the hub with the same nick
  of another already in the hub. Instead of sending a ValidateDenide message
  to the incoming user, it sends several one (several is the number of users
  currently connected to the hub). The client seems to panic a little and
  sometimes the hub panics a lot and crashes.

* The nickname "Hub-Security" is now protected, nobody can use it.

* The hub can now start external program (only for hub Masters). The goal is
  to provide an easy way to build bots. (see Documentation/ext_prog). A 
  sample of external program is in ext_prog directory.

--------------------------------------------------------------------------------
Version 0.0.8
-------------

* New key added: MULTICHAT. Using this key, you can limit multi-user chat usage
  to nobody, op/master only or anybody.

* new function added for PERL script: dchub::nick_type.
  (see Documentation/scripts for description).

* extprog toolkit now includes a generic DC message decoder. The most seen 
  message can now be easily decoded.

* new command added for multi-users chat: "+leave_mchat". Using it, a user can
  leave a mchat. Previously, only leaving the hub allows a user to leave a
  mchat.

* To avoid connection problem, in addition to the 10 second handshake limit
  of the previous release, this release does not allow incoming connection
  from the same IP without a delay of at least 10 seconds. During this time,
  allow connections are discarded without even starting the handshake.

* temporary IP ban supported (use -tbanip and -tunbanip in Hub-Security private
  chat). IP is banned for 24 hours.

* permanent IP ban supported (use -pbanip and -punbanip in Hub-Security private
  chat). In fact, this ban is not permanent, it is just a 5 years ban :)

* -redirall command is now for Master only.

--------------------------------------------------------------------------------
Version 0.0.9
-------------

* -redirall command is now for Master only. Previous version has a bug and the
  command was set for op only.

* $MyINFO function now wastes less bandwidth. When a $MyINFO is received by the
  hub, it resends it to all users only if its content is different from the 
  previous content.

* fix the bug preventing dchub::nick_type() to return a valid result.
  Patch by Morra.

* To ease some script function writing, the hub has an extension to the set of
  DC commands. This function is $UniSearch. Its goal is to provide the
  capability to send a search query to one given user. When someone/something
  sends a $UniSearch command, dchub internally converts it into a standard 
  $Search command (thus all clients will understand it) and sends the command
  only to the select user.

* extprog toolkit generic decoder now handles Hello and quit message (incoming
  and outgoing users).

* fix a bug in extprog generic decoder preventing a proper decoding of the 
  search result.

* a second extprog program sample is available. This small bot starts unisearch
  on each incoming user to find if this user client is not buggy and returns
  junk search result. If the client is faulty, the user is kicked.

* new PERL script function added: dchub::nick_ip(). Patch by Morra.

* New key added: KICKTEMPBAN. Using this key, you can automatically temporary
  ban kicked users. This key is an 'int' and its value is the ban duration in
  number of minutes.

* ext_prog programs now receives 3 parameters. To the existing 2 ones, the
  local host IP is added (not 127.0.0.1, the "true" IP).

--------------------------------------------------------------------------------
Version 0.1.0
-------------

* Temporary and permanent banip commands (-tbanip/-tbanip) can now accept
  either an IP (like before) or a nickname. Patch by Uriel Chemouni.

* The number of simultaneously incoming users have been limited to avoid
  creation of a lot of threads.

* Op and Master can now enter into the hub even if the hub is full.

* Dutch Translation of user_file file by Myckel Habets.


--------------------------------------------------------------------------------
Version 0.1.1
-------------

* Fix the kick bug making the hub hangs.

* Fix a bug in Passive search result handling. Noticed by Dirk Rieger. The
  result was previously badly decoded if the file contains space.

* New myinfo Perl script handling dc++ clients. 2 keys added to configure it:
  HUB_MAX and SLOT_MIN. Script by Tobias Lundberg.

* Fix the #define LOCK_READ and LOCK_WRITE conflict between fcntl.h and
  hl_locks.h

--------------------------------------------------------------------------------
Version 0.1.2
-------------

* Dutch Translation of all documentation files by Myckel Habets.

* Minor bug occuring when MHUBLIST is decoded fixed by James Curbo.

* Minor bug fixed in Perl script handling dc++ clients. If the number of
  hubs is a 2 digit number, it is now properly handled. Bug fixed by
  Andreas berg.

* Minor bug fixed in hub registration function.

* Python scripting added by Ralph Zitz. Configure tries to guess include 
  directory and library names from the installed python version. If this fails,
  use -with-python_include and -with-python_lib configure flags.

--------------------------------------------------------------------------------
Version 0.2.0
-------------

NOTE: before installing this version, if you want to keep the content of your
database, save it as well as the user file (the file you use with -u). Because
this version introduces a new database format, first, you must start with a
dchub -i -c yourconffile -u youruserfile. If you have special account, you
can then restore the user file. Now, you can enter the hub as MASTER and
recreates all your database keys.

* German translation of all documentation files by Dirk Rieger.

* new data structure. Patch by Uriel Chemouni.

* new memory management. Patch by Uriel Chemouni.

* new multi-hub features. the hub can now run in cluster. (EXPERIMENTAL) Patch 
  by Uriel Chemouni.

* no more pthread in the main hub processing. Patch by Uriel Chemouni.

* new database, Edblib is no more required. Patch by Uriel Chemouni.

* no more limit to simultaneous login. Patch by Uriel Chemouni.

* new public chat (an irc like chat). Patch by Uriel Chemouni.

* new right management. new account type : b, B, F. Patch by Uriel Chemouni.

* ghost users automaticaly removed when having the same IP. Patch by Uriel 
  Chemouni .

* username matching with an IP can no longer log in. Patch by Uriel Chemouni.

* user having double-quote in their nickname cannot login. Patch by Uriel
  Chemouni.

* username limited to 47 characters. Patch by Uriel Chemouni.

* username are now case insensitive. Patch by Uriel Chemouni.

* new parameter in dchub : -f force the hub to reg the given PORT. Patch by 
  Uriel Chemouni.

* new parameter in dchub : -U change UID form the hub after binding the main
  socket. Patch by Uriel Chemouni.

* new parameter in dchub : -b force the hub do bind socket to the given IP.
  Patch by Uriel Chemouni.

* new Hub-cmd : -rediralllocal -setfusionuser -setfusionuser -fusion -skick ...
  Patch by Uriel Chemouni.

* -bcast funtion now send PM message to all users. Patch by Uriel Chemouni.

* new extension to protocol to improve external Bot capabilities Patch by 
  Uriel Chemouni.

* new flood protections. Patch by Uriel Chemouni.

* add temporal control of the incoming messages. Patch by Uriel Chemouni.

* new anti search spam. Patch by Uriel Chemouni.

* a small memory leak fixed. Patch by Uriel Chemouni.

* -startprg now verifies if the bot is not already loaded before loading it.
  Patch by Uriel Chemouni.

* new debug function for the cluster mode. Patch by Uriel Chemouni.

* new keys added to the database: PUBCHAT MIN_SR_INTERVAL SPAM_SILENT_LIMIT
  SPAM_KICK_LIMIT, read configuration_file for more info. Patch by Uriel 
  Chemouni.

* new nick locking system uses the key LOCK_PATTERN to lock all nick matching
  with some regexp. 
  ex: "^#*\|^@*" will ask a passwd for all the username starting by # or @.
  (you must remplace all the | by  to enter the pattern in the hub-security
  interface).
  Patch by Uriel Chemouni.

* now compile on Darwin. Patch by Uriel Chemouni.

* a lot of other small patchs. Patch by Uriel Chemouni.

* numerous typo fixed in the code.

* Perl scripts updated by Tobias Lundberg. Start the hub with PERL scripting
  enabled and write -commands in the main chat to see whats new.

--------------------------------------------------------------------------------
Version 0.2.1
-------------

NOTE: you may have some problems with your Bot with this new version, don't
forget that you must not stay idle more that 2 min, else the bot will be
disconnected (expect for directly connected bot, they can stay 5 years idle).
	
* Fix a compilation problem with Perl 5.8.

* registered users can not have ghost anymore. Patch by Uriel Chemouni.

* connection idled for more than 2.5 minutes are automatically disconnected
  every 10 seconds. Patch by Uriel Chemouni.

* bug fix in kick process, Bug report by Tobias Lundberg, Fixed by Uriel
  Chemouni.

* new +me user function (same effect than /me fnc on irc). Patch by Uriel
  Chemouni.

* French translation of documentations files by gaetan legendre.

* some typo fixed.

--------------------------------------------------------------------------------
Version 0.2.2
-------------

* New hub command added: -perlreset. When this command is called, it restarts
  the PERL interpreter and reload PERL scripts. Note: During the perl_init
  function, you must NOT try to send event else the hub will hang forever.

* small bug fixed in the function handling "$To" of extprog toolkit. Fixed by
  Dirk Rieger.

* complexity of the matching function reduced from n to log n. Patch by
  Uriel Chemouni.

* minor change in the ghost removing system. Patch by Uriel Chemouni.

* Bug fix and clean up in the cluster's part of the code. by Uriel Chemouni.

* new -silence fuction. With this command you can add/remove privilege to user,
  including VIP privilege. by Uriel Chemouni.

* new Key BUFFER_SCALE added, define the maxbuffer incoming size. Increase
  max hub's memory by users. default value : 8 (8Ko/users), you may need to
  increase this value on some low end machine. added by Uriel Chemouni.

* if ONLY_REG is set to 2, the hub will try to redirect users when a user
  is not registered. patched by Uriel Chemouni.

* new Key added: MAX_CNX_IDLE. This key defines the maximum idle time of a
  connection. If the key does not exist, there is no limit else the key contains
  the number of seconds of inactivity required to terminate a connection.

--------------------------------------------------------------------------------
Version 0.2.3
-------------

* Dutch Translation of documentation files updated by Myckel Habets.

* German Translation of documentation files updated by Dirk Rieger.

* $OpList is now handled by extprog_toolkit. Patch by Dirk Rieger.

* New Bot filtering client type and shares. Added by Dirk Rieger.

* New keys added: KICKPERMBAN, KICKTEMPBAN2. These keys set the number of days
  of banishment when the command tbanip or pbanip are used. Patch by Dirk
  Rieger.

* user commands added: +seen, +afk, +back, +msg, +clearmsg. See the hub user
  online help for more informations. Patch by Dirk Rieger.

* op commands added: -tunbannick and -punbannick. These commands permits op to
  unban banned nicknames. Patch by Dirk Rieger.

* New type of account added: 'V'. for Vip user, those Users can not be kick
  directly however if you realy want to kick write : -silence v user_name in the
  Hub-secutity, and then kick him. Patch By Uriel Chemouni.

* dchub_start script to start/stop dchub as a standard daemon. Script added by
  Dirk Rieger. The script must be put in /etc/rc.d/init.d (or /etc/init.d) and
  then the hub can be started/stopped according to the runlevel.

* Bug fix with share size in cygwin's build. By Uriel Chemouni

* The registration function had been rewritten to make DCHub able to run on non
  threadable systems. In case of CYGWIN compilation, DChub will use a
  threadless registering function, this version can freeze if the dns host is
  unreachable. Patch by Uriel Chemouni.

* new version of PERL script handling myinfo by Daniel Marmander. This version
  provides many new features including a translation support. Beware: before
  it, you must read the beginning of the file to perform the required
  configuration.

* +join, +list, +leave, +seen, +msg, +clearmsg commands now display their
  result in the same place the command were sent (no more input in public chat,
  output in private chat).

* +seen, +msg, +clearmsg and -users commands translated.

* fix a bug in occuring when multiple +msg was made with the same nickname.
  Previously, the nickname will receive only the first message. All messages
  were sent but the client was unable to decode it.

* master commands added: -olist, -mlist. These commands list the OP accounts
  and the MASTER accounts.

--------------------------------------------------------------------------------
Version 0.2.4
-------------

* Translation of AFK file and messages. Added by Dirk Rieger.

* Add missing command in the known command list: -punbannick. Added by Dirk
  Rieger.

* Translate message in do_version. Done by Dirk Rieger.

* Add missing keys to the file "configuration_file" of Documentation.

* Fix the bug crashing the hub in -?banlist command.

* Hub registration Bug fix. Done by Uriel Chemouni.

* Small fix in edb_warper.c. Done by Uriel Chemouni.

* In ext_prog toolkit, function added to ban user. Added by Dirk Rieger.

* In ext_prog toolkit, the toolkit provides support to decode $NickList command
  Added by Dirk Rieger.

* ClientBot now has an enhanced client type detection. Done by Dirk Rieger.

* The +msg command is now case insensitive. Done by Yves Blusseau.

* -rename command now works (hub_cmd array was now properly sorted). Done by
  Rafal Flantowicz.

* new command: -perlclear to reload all PERL handlers without restarting the 
  interpreter. Done by Yves Blusseau

* Add a new Operator command : -showtype. Added by Uriel Chemouni.

* Add support for plugin.

--------------------------------------------------------------------------------
Version 0.2.5
-------------

* 2 new Hub-Security functions added including a tutor feature. Done By
  Chemouni Uriel.
  
* Fixed some compilation trouble on NetBSD, FreeBSD, Cygwin and SunOS.
  Fix by Chemouni Uriel.
 
* DCHub now Compatible with the official MacOS X client.

* New Anti-Fake Client System. Added By Chemouni Uriel.
 
* Bug FiX in VIP privileges. Fix by Chemouni Uriel.

* Some Changes in +me command, now also working with official client and in PM.
  Done by Chemouni Uriel. 
 
* Added a new buffer to speed up outgoing data, Dchub is now using less system
  call and less bandwidth (performance improve on high load). Done by Chemouni
  Uriel.

* CC Flood protection expanded now also depending of the mesages len. Done 
  by Chemouni Uriel. 

* Bug Fix in embedded python (no more segfault). Done By Uriel.

* Added a gui mode for dchub_gui, Use -g parameter. Done By Uriel. 

* The new registration procedure had been changed back to the old version with 
  a small fix Done By Uriel.

* New Configuration Key added "ALL_REDIR" redirect all incomming user if != 0.
  Added by Uriel.

* Add a new configure script: autogen.sh . Start it instead of configure to 
  perform the initial script configuration.

* New configuration key added "SILENT_KICK". If exists and is not 0, the default
  $Kick command (the nmdc kick) becomes silent (no more kick messages on the
  public chat). Added by Axel Boersma.

--------------------------------------------------------------------------------
Version 0.3.0
-------------

not available...

--------------------------------------------------------------------------------
Version 0.4.0
-------------

* major rewrite of the core of the server. The core now uses poll instead of
  select. This removes the software limit of 1024 file descriptor thus we can
  have more than 1024 connected users (if the ulimit is set to a greater value).

* configure defines MSG_NOSIGNAL if it does not exist.

* -U flag is handled properly. The only remaining 'root' thread is automatically
  created and no way seems to exist to change its id.

* fix a small memory leak existing if the WELCOME key exists but is empty.

* new configure flag: --enable-glib2. Use this flag to compile with glib2 
  instead of glib1.2

* fix a bug in low level user I/O flood protection.

* fix a minor bug which may occur when a bot sends a command in the public chat.

* fix a major bug in the login handshake. A crash can occur when invalid 
  information are provided during the very early stage of the handshake.

* fix a bug wasting bandwidth each time someone logs in. The OpList is resent to
  everyone, even if the incoming user is not an Op.

* fix a minor bug in string ref function.

* public and private chats were replaced by static and dynamic chats which can
  be password protected and work on the cluster.

* cluster fully rewritten. Only type III hub connection possible. In 
  Documentation, see hub_cluster.postv0.4.0 file. Most of the cluster features
  are available.

* the configure file automatically detects CPU not allowing unaligned memory
  access. If the CPU does not support unaligned memory access (MIPS, SPARC,...)
  a "manual" memory access solution is used to avoid a crash. Note: during the
  configure step, a core file will be created for such CPU, it is normal.

* protocol extension: 2 commands added: $XSearch and $XSR. These 2 commands
  (available if the capability XSearch is available) provides support of 
  e-donkey 2000 CRC on search. If a client does not support this feature, the
  hub automatically translate the query in a standard search.

* protocol extension: 2 commands added: $MD4Get0 and $MD4Set. The 2 commands
  allows client to ask for first level CRC (L0) of a file. Either the hub will
  reply or another client (the hub will cache the result for future usage).

* fix g_string_sprintf[a] compilation problem with glib2.

* German translation of all documentation files updated by Dirk Rieger.

* numerous bugs fixed in commands by Dirk Rieger.

* Fusion account type removed, not useful anymore.

--------------------------------------------------------------------------------
Version 0.4.1
-------------

* clientbot nearly completely rewritten. Patch by Dirk Rieger.

* MD functions are searched in both libSSL and libcrypto.

* bot can send commands (like with v 0.2.5). Be careful, they must send their
  global commands with correctly formatted string ("<botname> command|").

* add script (make_rpm) to make SRPM of dchub (Yves BLUSSEAU)

* all the extprog, scripts and plugins are now install under
  %{prefix}/libexec/dchub
  that is the recommanded directories for GNU softwares. (Yves BLUSSEAU)

* using double fork method in starting extprog to avoid zombie when they die.
  (Yves BLUSSEAU)

* Possible CrashBug fixed in Clientbot dc++Tag decoding. Patch #1332 by
  Dirk Rieger.

* LOCK_PATTERN handling changed. Patch #1339 by Dirk Rieger.

* add a new event: "login". It is sent when a user logs in and contains its IP
  (request #101989).

* fix compilation problem in plugin for platforms where a guint64 is not an
  unsigned long long.

* $Search query return path is analyzed to prevent malformed query to be sent to
  client. This analyze prevents an evil client to send a query with the IP of
  a victim (part of DC network or not) which force other clients to send their
  replies to this victim, a kind of DDoS. This problem was linked to bug #3096.

* Fix the display bug occuring when a bot kicks a user. Patch #1360 by
  Dirk Rieger.

* Sort correctly the array containing command. Bug notified by Dirk Rieger. The
  incorrect order may prevent one or more commands to be recognized.

* fix a configuration problem when detecting MD* functions.

* Before allowing any type of action (chat, xfer, search, ...) from a client,
  the hub wants it to send a valid MyINFO. If no MyINFO is received and the
  client sends a command, it is silently kicked. This feature can be be disabled
  if the key NO_MY_INFO (int) is defined to a non-zero value.

* fix a communication corruption problem occuring when 2 hubs communicate over
  a slow connection.

--------------------------------------------------------------------------------
Version 0.4.2
-------------

* fix a crash occuring when silent kicking an unknown user.

* fix numerous memory leaks (including a severe one in the public chat).

* -kick don't crash when used by scripts.

* new PERL command added: hubcmd. Using this command, a script can use all
  commands available in the Hub-Security (commands starting with '-').

--------------------------------------------------------------------------------
Version 0.4.3
-------------

* fix a lock problem on *banip commands.

* add missing bot privilege. Bots were not able to use Op commands and were 
  kicked because they use unusual search queries.

* fix the MOTD loading problem.

* Internationalization of PERL scripts.

* --enable-glib2 configure flag removed. version 2 is now the default glib
  version.

* --disable-glib2 configure flag added. Use glib1.2 instead of glib2.

* fix a bug preventing some multi-chat hub commands to work.

* fix a bug crashing the hub if someone tries to enter a password protected
  multi-chat without providing a password.

--------------------------------------------------------------------------------
Version 0.4.4
-------------

* fix incorrect handling of MAXUSER. When MAXUSER=X, X+1 users can enter.

* fix a bug preventing -hpstat to display correctly the hub connections.

* fix the hello/quit message occuring when a user left the cluster (bug #3417).

* add SIGHUP support (partially based on sourceo's patch #1450).

* Fix fd_logfile initialization error.

* Fix a bug in extprog_toolkit preventing bot to kick client (wrong command).
  Reported and fixed by Rael.

* Lot of changes in the *kick commands. patch #1451 by Dirk Rieger.

* command -flood added. patch #1451 by Dirk Rieger.

* patch #1452 against ClientBot by Dirk Rieger: 
   = changed the kick-command handling to use the -(t/p)banip & the kick-command
     to disconnect an user
   = added parameter for upload-limiter
   = changed description-decoding to prevent possible crash
   = enhanced client recognisation
   = enhanced userlist handling

* An error message is sent to user providing an incorrect password. (bug #3461)

* fix multichat messages sent to sender (bug #3460).

* Rewrite the Perl Autoload function to make it crash-proof (no more dchub crash
  on PERL script errors) by Yves BLUSSEAU.

* -lkick command totally removed (the code was already disabled).

--------------------------------------------------------------------------------
Version 0.4.5
-------------

* new key added: CLUSTERPORT. It contains the port used by the cluster.

* new flag added: -C. It defines the port the cluster should use at hub start.

* log files are not truncated on open, they are opened in append mode. changes
  based on patch #1488.

* update of ClientBot by patch #1528.

* [tp]banip no more fails if the nick to ban is a digit (bug #3789).

* remove debug message of PERL function dchub::nick_ip() (bug #3547).

* fix compilation problem of main_cnx_handshake.c on Alpha (bug #3394).

* add timeout on dying connection (10 seconds) (bug #3635).

* fix duplicated call to free() when in -pbanip (bug #3842).

* New binary (he3) to decompress HE3 files by Yves BLUSSEAU.

* German Documentation updated by Dirk Rieger (Patch #1632, #1631, #1630, #1629)

* fix the bug preventing normal user having a password protected account (no
  privilege) to log in if a ghost connection exists.

* on connection attempt, automatically kill all other connection attempts with
  the same nickname. Previously, only the first one is killed.

* Auto reload of modified perl scripts (you don't need to use -perclear or
  -perlreset commands to reload your scripts) by Yves BLUSSEAU.

--------------------------------------------------------------------------------
Version 0.5.0
-------------

* support both libgcrypt (>=1.1.12) and openSSL as cryptography library.

* new key added: LOCK_MODE. It allows negation of LOCK_PATTERN handling. If not
  set or set to 1, LOCK_PATTERN denies access to user matching the lock pattern.
  If set to 2, LOCK_PATTERN denies access to user not matching the lock pattern.

* new event added: kick. Patch #1782. It occurs when a user is kicked.

* new event added: ban. It occurs when a user is banned.

* Lot of changes in the kick/ban command set. Only the following commands exist:
    -kick
    -skick
    -ban
    -banlist
    -unban

  And they are all cluster compatible.

  Note: this requires a cluster running at least the same version. If the
  cluster is older, it will just ignore the command.

* new event added: hubinit. It occurs before the hub enters into the main loop.

* remove inaccurate use of removed command (-tbanip).
  Patch #1846 by Dirk Rieger.

* update ext_prog toolkit to support the new ban function.
  Patch #1847 by Dirk Rieger.

* ClientBot updated, #seen and #users added. Properly handles NMDC v2.
  Patch #1851 by Dirk Rieger.

* Fix a skick crash problem occuring when skick is used without reason.

* rewrote the -ban the command (doesn't kick the user anymore) by Yves BLUSSEAU.

* ban by IP address now work even if the user is not connected. (Yves BLUSSEAU).

* Don't allow connection with empty nickname.

* added #msg & #clearmsg command to ClientBot. Patch #1938 by Dirk Rieger.

* add ban by IP in cluster mode.

* add the --enable-dmalloc option in configure. (Yves BLUSSEAU).

--------------------------------------------------------------------------------
Version 0.5.1
-------------

WARNING: the configuration file format has changed. Use 'migrate_dchub_users'
         and 'migrate_dchub_configuration' to convert your files.

* add the --enable-weird-perl option to configure script to fix possible problem
  occuring during compilation if the perl library is not where perl thinks it is

* fix crash occuring when -f flag is used without parameter. Reported by
  Andreas berg.

* remove of script make_rpm. Now use make rpm to build a new RPM file
  (Y.BLUSSEAU).

* dchub can now be launched without having to specify the path of the
  configuration files (aka user file, conf file, crc file, etc...) (Y.BLUSSEAU).

* password are now crypted. (Y.BLUSSEAU)

* configuration and user files are now in XML format (Y.BLUSSEAU)

* fix incorrect use of '(unsigned) int' with 'g(u)int16' in structures

* fix a bug in locking perl interpreter (Y.BLUSSEAU).

--------------------------------------------------------------------------------
Version 0.5.2
-------------

* python scripting remove, too buggy (Y.BLUSSEAU).

* fix a problem in simple_myinfo_handler.pl where rules are send twice on log
  in (Y.BLUSSEAU).

* New binary (dchubpasswd) to encrypt password (Yves BLUSSEAU)..

* Update ClientBot to use the new ban command (patch #2198 by Dirk Rieger).

* old gui code removed.

* some comments in the main structure were updated and some typo were fixed.

* fix incorrect message flood control. Levels above OP were controlled instead
  of levels below OP. (patch #2322 by Dirk Rieger).

* fix buggy support of --disable-glib2 flag in configure script.

* glib version < 2.0 is no more supported. Too many functions are missing.

* KICKTEMPBAN key removed. Now all kick commands only disconnect a user
  (Yves BLUSSEAU).

* +afk/seen/msg commands moved into plugin (patch by Dirk Rieger).

