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 unsensitiv. 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 leek 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.

