CHANGES file
------------

2001/06/03:
-----------

HSX 3.58.00

HSX sources has been released under GPL.

* Enhancements
  ------------

   - new plugin to support HL broadcast function

   - On new style account, a flag has been added to enable/disable per user
     broadcast. By default, broadcast is disabled.

 
* Bug fixes
  ---------

   - In download function, when the wanted file is an URL, HSX now tests the
     right client capability.


============================================================================
2001/04/19:
-----------

HSX 3.57.00

* Enhancements
  ------------

   - A new function named "file redirector" has been added. If you create
     a symbolic link containing an URL ("http://...." or "ftp://...."),
     you can store files anywhere on another server. Using the "file
     redirector" you can reduce your network load by storing files on one
     or more of the multiple servers providing free drive space.
     If the client supports this feature, download of such file is totally
     transparent. Not all HSX functions support the "file redirector", here
     is the list of working one:
           + file info
           + file download
           + file delete (it deletes the link, not the file itself)
     For non-compatible client, all functions are transparent except the
     download.

     USAGE WARNING:

     + Due to the fact the file is stored remotely, HSX currently can't
       provide file size to client. In the symbolic link, after the URL, you
       can add the string "\nsssss" where \n is the carriage return (ctrl-v
       ctrl-j) or line feed (ctrl-v ctrl-n) and sssss if the file size in
       byte.
        Ex: if a symlink contains "http://ac2i.tzo.com/ghx_e.html\n516"
       The client will display a file named ghx_e.html having a size of
       516 bytes.

     + To be VALID, the symlink name must be the same as the name after the
       last / of the URL. 
        In the previous example, the symlink name must be "ghx_e.html".

   - A new plugin named "redir_file" allows creation of "file redirector"
     remotely.

 
* Bug fixes
  ---------


============================================================================
2001/03/03:
-----------

HSX 3.56.01

* Enhancements
  ------------

 
* Bug fixes
  ---------

   - Sometimes, when a user client deletes a file, the client hangs.
     This bug has been removed.


============================================================================
2001/02/28:
-----------

HSX 3.56

* Enhancements
  ------------

   - new chat commands have been added
       /servinfo
       /userinfo

   - banner is now supported (check DATABASE file for more information).

   - When a client asks for information on a file, if the client supports 
     this feature, HSX can return a preview of the file.

* Bug fixes
  ---------

   - It is now possible to provide a path which contains symbolic links
     as file root dir path. In such case, previous version requires to
     declare the root directory as an external path or they display an empty
     directory.

   - File info function now works properly. Pervious version has a bug which
     may crash HSX.


============================================================================
2001/01/22:
-----------

HSX 3.53

* Enhancements
  ------------

   - To site admins who run a server on a multi-homed computer, a new key
     named cnx.ip as been introduced in the database. If this key exists and
     is not empty, only IPs contained in the key value can be used to 
     connect the site. Thus, you are able to choose from which network 
     interface users can connect. (check DATABASE file for more information)

   - Some news flags have been added to the new style account. They all
     deals with threaded news support: 
            * can delete articles
            * can delete groups
            * can delete threads
            * can create groups
            * can create threads
     Previous versions only allow such rights to an admin account. Those 
     new flags have 0 (not allowed) as default value.

   - A new flag is now supported by HSX: -s
     If this flag is used AND the process is owned by root, HSX chroots into
     the site directory before running.
       WARNING: 
         = not all features have been tested. 
         = If you have developped a plugin which needs special libraries you
           may have some problems. Take a look at LD_LIBRARY_PATH env var
           to solve the problem.
         = All symbolic links must use a relative path instead of an
           absolute one and moreover, if the destination of the symbolic
           links is beyond chrooted HSX scope, destination won't be
           reachable.

* Bug fixes
  ---------


============================================================================
2001/01/14:
-----------

HSX 3.50

* Enhancements
  ------------

   - It is now possible to limit transfer speed for each connection or for
     the site. (see xfer.speed_limit* key in DATABASE file for more
     information).

* Bug fixes
  ---------

   - Minor bug fix in download function. Sometimes, download is queued
     when download slots are available.

   - Due to a forgotten debug flag, inside previous versions, the speed
     limit has been limited to 64KB/s. This flag has been removed.


============================================================================
2000/12/18:
-----------

HSX 3.47

* Enhancements
  ------------

   - In thread news article, the nickname and account of the sender is 
     displayed, not only the account. Articles posted on earlier version
     of HSX remains unchanged, only new articles are affected.

* Bug fixes
  ---------

   - Private chat/messsage incompatibility between HL client and HSX has
     been solved. New HL clients are not able to create private chat and 
     private message with previous HSX releases. This version fixes the 
     problem (you must enable appropriate flags on the account).


============================================================================
2000/11/12:
-----------

HSX 3.45

* Enhancements
  ------------

   - Support of directory footer. In a directory, if a file named .footer
     exists, it is sent to the client while it enters in this directory.

   - To developper, plugin interface version has changed to 1.2 (previous 
     version si 1.1), "client capabilities" functions have been added. Using
     these functions, you can know if a client has some functions and modify
     your reply according to its capabilities. A good example of this is
     the directory footer. If the client doesn't support it, the footer is
     sent as a private message instead. 

* Bug fixes
  ---------

   - Download/upload folders incompatibility between HL client and HSX has
     been solved. New HL clients are not able to download/upload with 
     previous HSX releases.


============================================================================
2000/10/29:
-----------

HSX 3.42

* Enhancements
  ------------

   - Support of download queue has been added. By default, 10 downloads
     are allowed simulatenously. To change this value, use GHX plugin
     named "HSX configuration manager" and in database, change the value,
     of the key "download_queue_size". WARNING: modification of this value
     on a site where downloads are queued may have some side effects
     like forever hanging downloads.

* Bug fixes
  ---------

   - A bug in default account handling has been fixed. Now, if the wanted
     account doesn't exist or the given password is invalid, HSX tries to
     use the default account in new style format and then the default
     account in old style format. Previous version tries default account in
     new style format only if someone tries to connect to a new style
     account with a wrong password.


============================================================================
2000/10/21:
-----------

HSX 3.39:

* Enhancements
  ------------

   - Private message support is now a plugin.

   - Private message history of new HL client is now supported.

* Bug fixes
  ---------

   - An incompatibility of new HL client with HSX prevents the client to
     send private messages or open private chats has been fixed.


============================================================================
2000/10/06:
-----------

HSX 3.38

* Enhancements
  ------------

   - some existing functions are now availables as plugins. So, HSX core is
     smaller in memory if you don't use theses functions and the functions
     supported by these plugins can now be replaced by another plugin. Here
     is the list of functions newly supported by plugin:
       - agreement tools: functions allowing remote changes of agreement.
       - mail support
       - read file information
       
* Bug fixes
  ---------

   - bug fix in account managment. Sometimes, an existing account (you
     can log in with) doesn't exist for some functions.

   - bug fix in identify function. Sometimes, nickname replaces login.

   - bug fix in file listing function. Some memory areas are never freed.

   - bug fix in asynchronous command handling. Same problem as above.
  

============================================================================
2000/07/22:
-----------

HSX 3.34

* Bug fixes
  ---------

   - bug fix in private message management. This bug erases all private 
     messages and send empty messages instead.


============================================================================
2000/03/05:
-----------

HSX 3.33

* Enhancements
  ------------

   - new functions added to the plugin interface (now v1.1). Most of these
     functions allow a plugin to use some account values. Some others allow
     plugin to run periodic tasks.

   - a database is now available to allow plugin to store their global
     information. (same function interface as GHX one).

   - new plugin added: http support. Using this plugin, it is possible to
     access to a site using a browser. Currently, this plugin only provides
     a minimal subset of HTTP/1.1 commands.
     Things to know about http support:
       - all protections work in the same manner as hotline.
       - when a user clicks on a directory, if a .index.html file exists in
         this directory, it is sent instead of the directory listing.
       - all files ending with .html are readable regardless of protection.
         Thus, a guest can browse html files but can't download normal files.
     /etc/mime.types must exist to provide correct file type support.

   - minor modification of fake file plugin. Some file extensions are now
     recognized and the appropriate file type is returned. Thus, the correct
     icon can be displayed.

   - new plugin added: flood. Using this plugin, an admin can flood a user 
     with private messages.


* Bug fixes
  ---------

   - a bug in register_new_user_socket function has been fixed. This removes
     a potential crash.

   - some potential crashs have been removed in task and socket management.

   - when building directory content list, HSX now only take into account
     files and directories. All other type of files are ignored. Previous
     versions may hang when they encountered a file which is in fact a pipe.


============================================================================
2000/02/12:
-----------

HSX 3.30

* Enhancements
  ------------

   - new plugin: fake dir. This plugin allows creation of fake files in
     directories. Warning: fake files can only be created on Un*x partition
     (like ext2 partition), not on DOS or Windoz partition.


* Bug fixes
  ---------


============================================================================
2000/02/02:
-----------

HSX 3.29

* Enhancements
  ------------

   - Threaded news support is now a plugin.


* Bug fixes
  ---------

   - minor bugs fixed in ring init and exit functions. These bugs appear in
     the plugin toolkit.

   - major bug fixed in the configuration flag function.


============================================================================
2000/01/31:
-----------

HSX 3.28

* Enhancements
  ------------

   - plugin support has been added. Plugins are enabled if they are in the
     directory /plugins of HSX root directory.

* Bug fixes
  ---------

   - Hotline client seems to have some problems to handle HSX asynchronous
     event. This version contains the dirst try to fix this problem.


============================================================================
2000/01/07:
-----------

HSX 3.21

* Bug fixes
  ---------

   - minor bug fixed in the upload function. The problem previously appeared
     when an upload is performed from windoz hotline client or from mac 
     hotline client while uploading file without rsrc data.


============================================================================
2000/01/03:
-----------

HSX 3.20

* Enhancements
  ------------

   - threaded news support has been added.

   - HSX login stage has been modified to allow hotline client to use
     threaded news. Now, HL Client 1.5 and above can use only threaded news,
     client below 1.5 can use only standard news and GHX can use threaded
     and standard news at the same time on the same server.

   - In thread news, article max size has been extended from 64KB to
     1.5MB.

* Bug fixes
  ---------

   - minor bug removed from broadcast function. Now, broadcasting username
     is properly displayed on message.


============================================================================
99/11/12:
---------

HSX 3.10

* Enhancements
  ------------

   - agreement modification can now be performed directly from the 
     client (admin only).

* Bug fixes
  ---------

   - a lot of buffer overflow problems have been removed.
     HSX can now proprely handle huge incoming command and outgoing
     result. 

   - News subsystem has been modified to support big message like
     one containing one or more embedded pictures.

   - The news limit has been increased to ~33MB.


============================================================================
99/09/05:
---------

HSX 3.05

* Enhancements
  ------------

   - User info now includes file transfers.


* Bug fixes
  ---------

   - Some functions no more hang when crypted connexions are used.
     (at least, get user info and chat function hangs in previous
     version).

============================================================================
99/09/05:
---------

HSX 3.00b

* Bug fixes
  ---------

   - bug in the HSX I/O subsystem. Directory cache building fails if 2 requests
     appears at the same time. This bug is now fixed.

   - some debug messages have been removed.

============================================================================
99/09/01:
---------

HSX 3.00 Initial release.

* Enhancements
  ------------

   - a big part of the HSX file IO core has been rewritten. Some file operations
     are now handle asynchronously (they no more hang the server).
         - make dir: under few cases, it can be a quite long process.
         - delete dir/file: deleting a big file can take a bunch of time when
                            this file is big (more than 50MB).
         - move file: when a big file is moved from one filesystem to another,
                      HSX must copy it manually. Now, the copy no longer hangs
                      the server. Only other file IO are delayed.
         - group delete dir/file: same as delete dir/file.
         - directory cache building: when a directory is very big (more than 1000
                      entries), it can take a long time to build cache. Now,
                      during cache construction, the server remains available to
                      perform non-file IO operations like chat and private message
                      management.

   - file modification date has been added to the directory listing sent to client.
     Thus, if the client supports it, it can display the date of last access of 
     each file. This feature is not incompatible with hotline client, they simply
     ignore it.

   - support download of group of files (requires a compatible client like GHX 3.03)
     to increase download speed of small files and to reduce server load.

   - opening hours added on new style account.

* Bug fixes
  ---------

   - bug fix in the crypto packet decoding. If the -k function is enabled,
     HSX has some problems to handle some requests. This bug is fixed.

   - encryption key length is now between 8 and 15 (before 8 and 16).

   - bug fix in the sending function. Sometimes, under a very loaded or
     slow connection, some tasks may hang. In fact, the client receives a
     reply for tasks but can't identify it because the server has sent a
     reply with the wrong task number. This should no more happen.

   - bug fix in the quota system. While downloading the ressource file,
     the size of the ressource file is no more added to the amount of data
     uploaded but to the amount of data downloaded.

============================================================================
99/07/28:
---------

* Enhancements
  ------------

   - FAST download can now compress data on the fly (if the client supports
     and has enabled this feature).

* Bug fixes
  ---------

   - minor bug fix in the server monitor.


============================================================================
99/05/22:
---------

* Enhancements
  ------------

   - Move files function now support to move files and symbolic links across 
     filesystem. Be careful when you move files across filesystem,
     while HSX copies files, it can't manage connections thus everybody
     is stopped except the download and upload connections.

   - Add support for file group deletion. This reduces server load when
     several files are deleted at the same time. Requires a compatible client.


* Bug fixes
  ---------

   - In the previous version, all logfile lines are ending with a mac style
     newline. This problem is now fixed, lines again ends with a unix style
     newline.

   - Bug fixed in the fast download expiration function.

   - Problem fixed in the upload function. Bogus Windoz hotline upload are
     now properly handled. HSX no more creates partial file.

   - In dropbox, partial files (hpf) are now displayed regardless of the owner
     of the dropbox thus uploads can be resumed inside dropbox. When the file
     is no more partial, it becomes only visible to dropbox owner.

   - New try to fix the bad user name problem. The previous version partially
     removes it but not fully. The problem seems to appear when a user logs in.
     A field is not properly set thus the new user is declared as away but
     his nickname is not yet filled. The problem should be completly removed
     now ... we hope ^_^.

   - Move files function now properly handles partial files.


============================================================================
99/04/26:
---------

* Enhancements
  ------------

   - ghost mode added. See GHX manual.

   - add a server monitor capability through a GHX plugin.

   - new flag added to the account authorization list:
       + Can enable server monitor : If set and if the account is an admin account,
                              this admin can dynamically view all log messages
                              (even if these messages are logged into file or not).


* Bug fixes
  ---------

   - Another potential problem related to badly named user fixed.
     This problem may appears when a user logs in while another user logs
     out.

   - connection transfer buffer are now dynamically allocated and adjusted
     for each user. This removes a bug appearing while HSX has to send
     large amount of data (like a directory with a size bigger than the buffer).

   - bug in encryption function is fixed. When HSX sends a large amount of
     data in one bloc, this bloc is only partially crypted. Now, all is ok.


============================================================================
99/04/03:
---------

* Bug fixes
  ---------

   - SECURITY ALERT: there is a bug in old style account login. If your site
                     use new style account, there is no problem. Else, 
                     anyone can enter the site as soon as it has a login
                     and a ******** account exists. In such case, the user 
                     is logged as ******** but has the login rights (very 
                     dangerous in case of administrator account.

   - New try to fix the bad user name problem. The previous version partially
     removes it but not fully.

                    
============================================================================
99/03/30:
---------

* Enhancements
  ------------

   - add a new flag in hsx configuration:
       + Enable directory upload rights inheritance: This flag modifies
             HSX result for all users who has the "can upload" flag set but
             don't have the "can upload anywhere" flag set. In previous version,
             These users can only upload in directories containing a .upload
             file. If this new flag is not set, no change appears. If this flag
             is set, these users can upload in directory containing the .upload
             file (like before) and in directory created directly or indirectly
             inside a directory containing the .upload file. This flag is very
             useful for Upload directories and Drop box. Just add the .upload
             file inside these directories and when a user creates a directory
             inside to upload, he is allowed to upload inside.

   - new flags added to the account authorization list:
       + Can't use private message : If set, the account owner can't send
                                     private message.
       + Can't use FAST download protocol: If set, the account owner is not
                                     allowed to use fast download protocol.

   - Now, when HSX starts, it tests if files/, accounts/ and news/ directories
     exists inside the root directory. It prints a warning if one of them
     doesn't exist.


* Bug fixes
  ---------

   - problem fixed inside the download policy. -x1 and -x2 don't disallow
     multiple download but disallow multiple transfer (including upload).
     The problem no more exists, only download are taken into account.

   - problem fixed while deleting a directory. If a .upload file exists inside
     the directory to erase, deletion failed. This is no more a problem.

   - problem fixed when no enough disk space is available during directory
     cache creation. Now, HSX properly handles this case.

   - New try to fix the upload problem with hotline client for windoz. This
     f....ing client seems to make a lot of terrible things while uploading
     thus all uploads made with it creates files appearing as partial file.
     Hope this time is the good one.

   - Bad user name problem fixed. In previous versions, when a user logged
     in while another is updated (status or name changes) the incoming user
     user list is badly initialized. This problem should no more occur.


============================================================================
99/03/15:
---------

* Enhancements
  ------------

   - Good news about FAST download protocol. It works fine for client inside a
     local network behind a NAT box. This news is also reliable for previous
     HSX version.
  
   - Directory cache is now updated during an upload.

   - Directory cache is updated after an upload from hotline PC. This buggy piece
     of software doesn't really comply with MAC hotline protocol so, the upload
     is prematurely aborted. No data corruption appears but the directory cache
     is not updated.

   - added ring system support. (protocol extension, read online manual for more
     information).

   - ban support added. Requires new account structure.
     Banned IPs management through account manager.

   - Allow access outside the files/ directory using symlinks. This
     access can only be performed if the admin allows access to the destination
     of the symlink.

   - A new extended configuration file has been added. HSX configuration
     can now be performed using HSX configuration plugin of GHX.
     Admin can dynamically modify the following parameters:
       . Enable/disable RING support.
       . Enable/disable FAST download support.
       . Enable/disable download support.
       . Enable/disable upload support (useful when disks are full).
       . Enable/disable verbose mode.
       . Enable/disable broadcast.
       . Switch between cached and non cached directory mode
                              (useful when adding Read-only media to a site).
       . Add or remove outside files/ path.
       . Change site name and description.
       . Add or remove new trackers to the tracker list (w/ or w/o password).
     All changes are dynamically taken into account.
      
   - Current directory free space is now reported for every directory list
     request.

* Bug fixes
  ---------

   - Last major HSX bug fixed. Until now, when a user leaves a server, when
     a new user enter this site, this new user inherit dead user name
     and receive all messages which must be delivered to the dead user.
     Now, when a user quits, all its structures are destroyed.
     Another side effect is the fact that site users are now sorted from
     the oldest to the newest in the user list.

   - bug fixed in the -k option.
   
   - bug fix while displaying broadcast and xfer message inside chat.
     A newline missing.

   - bug fix in the transfer reference subsystem. Now HSX expires 
     unused ref and FAST transfer ref. Earlier versions let reference
     alive indefinitely.

   - various bug fix inside the file management functions.
     Now, users can't browse directories or erase files outside the files/
     directory. Symbolic links are now properly supported to avoid all 
     security problems.


============================================================================
99/03/03:
---------

* new account structure. 
  
* allow Access control list on account connexion

* allow file quota per account

* allow data volume quota per account

* new accounts are only configurable using a GHX plugin.


============================================================================
99/02/12:
---------

* bug fix in mailbox system. Now, hsx can save mail
  without subject. Previous version returns an error.

* bug fix in -k option, now, HSX tests the given value.

* bug fix while parsing command line option, -k is previously ignored thus
  connexions are half crypted (only server -> client connexion is crypted).

* FAST download protocol supported [-u].
  New capabilities: really unlimited simultaneous download
                    download faster on heavy and very heavy loaded connexions
  Problem: may not work properly when used with NAT. No data corruption
           but nothing is transfered.

  This protocol transports more efficiently data only for big files
  (size > 2-3MB) and if either the network has a big transmitting delay
  (more than 40ms) or loses a lot of data. You can test the network
  quality using ping. If you use this feature on a network having
  low delay and no packet loss problem, you will slow down your transfer.

  This feature is available only for compatible client.
 
* some modifications have been made in the log file. Now all lines of the log
  have the same format. all lines include a date, a login and a nickname.
  Some operations are automatically logged:
    - connection (with IP address)
    - disconnection (with IP address)
    - download
    - fast download
    - upload
    - usage of encryption
    - account creation
    - account deletion (previously not logged)
    - account rights modification (previous not logged)
    - all errors happening during an upload or a download are logged.

 * admin can now choose a download policy [-x].
    - allow simultaneous downloads from a client
    - disallow simultaneous downloads from a client
    - kick user making simultaneous downloads.


============================================================================
99/01/30:
---------

* add a cryptographic engine (DES like crypto).
  features:
  - support key from 8 bits upto 72 bits (theoritically unlimited).
  - allow key changes (including switch on or off encryption) during session.
  - partial connexion encryption (to reduce computation time).
  - asymetric connexion encryption 
    (server and client have their own key with their own length).
  - encryption available on client request.

  (encryption: can handle more than 2000 packets/s using a 72 bits
   key (with a pII 300/encryption or decryption)).
  This feature is available only for compatible client.

* first HP-UX port.


============================================================================
99/01/12:
---------

* bug fixed in the agreement, unix characters are now
  properly translated into mac one.

* bug fixed in resume on upload, now it works well
  with original hotline.

* mailbox support added. This features doesn't exist
  in original hotline. Each account can have a mailbox
  in a pop3 like system. The mailbox is available only
  for compatible client.

* bug fixed in chat (public and private). Earlier versions
  crash when someone enter a message in a chat after
  an upload has been interrupted (very strange, isn't it ?)

* bug fixed in resume on download. Windoz hotline client
  is now properly handled while resuming a download.
  GHX2 and Mac Hotline doesn't have this problem.

* HSX now reports an error if root directory doesn't exist.


============================================================================
98/12/03:
---------

* bug fix in the agreement. The agreement is now
  correctly read from the hsx root directory

* resume on upload has been adding (tested with
  GHX2, should work with original hotline).

* drop box support added. To create a drop box,
  create a directory named 'Drop box for ' (case insensitive)
  followed by an account name (case sensitive).
  Drop boxes can be placed anywhere.

