Ceci decrit un schema different pour les commandes de manipulation de groupe de fichiers 
----------------------------------------------------------------------------------------

/******************************************************************************************/
/* group delete (available,ok) */
client -> server
HTL_HDR_GROUP_DELETE
   HTLC_DATA_DIR directory pour la commande en cours
   HTLC_DATA_FILE nom de fichier format hotline
   [ [HTLC_DATA_FILE nom de fichier format hotline]
     [HTLC_DATA_FILE nom de fichier format hotline] ... ]

Le directory doit imperativement etre le premier de la liste 

server -> client
HTLS_HDR_TASK
  avec ok ou error avec un message comportant la liste des fichiers
  avec le probleme de chacun.

/******************************************************************************************/
/* group download (NA) */
client -> serveur
HTL_HDR_GROUP_DOWNLOAD
   HTLC_DATA_DIR directory pour la commande en cours
   (max 40x) [ [HTL_DATA_FILE_XT guint32 file_id (numero quelconque unique pour le transfert),
                       guint32 data_begin, guint32 data_len,
                       guint32 rsrc_begin, guint32 rsrc_len,
                       guint8 nom_de_fichier_len, char nom de fichier] ...]

Le directory doit imperativement etre le premier de la liste 
data_len et rsrc_len peuvent etre egal a 0 pour indiquer que l'on veut tout le fichier.

server -> client
HTLS_HDR_TASK
   HTLS_DATA_HTXF_REF reference de download (the_server_ref)

ensuite, le client doit se connecter sur le socket de transfert.
1 structure htxf_hdr (16 octets)
{
	magic=0xBACACAFE
   ref= (the_server_ref)
   type=GDOWNLOAD (0x414B3437)
   len=0xDEADBEAF  (inutilise) 
}

ensuite, le serveur envoie dans le socket les donnees suivantes:

bout a bout une suite de structure comme suit:
soit:   guint8 status (=0 ici)
        guint32 file_id, guint16 name_len, char name,
        guint32 data_begin, guint32 data_len, 
        guint32 rsrc_begin, guint32 rsrc_len,
        ....les datas..., ... les rsrc...

soit:   guint8 status (=1 ici)
        guint32 file_id, guint16 name_len, char name,
        guint16 msg_error_len, char msg_error

        
/******************************************************************************************/
/* fast group download (NA) */
client -> server

HTL_HDR_GROUP_FDOWNLOAD
   HTLC_DATA_DIR directory pour la commande en cours
   HTLC_DATA_FILE nom de fichier format hotline
   [ [HTLC_DATA_FILE nom de fichier format hotline]
     [HTLC_DATA_FILE nom de fichier format hotline] ... ]

Le directory doit imperativement etre le premier de la liste 

server -> client

HTLS_HDR_TASK
   HTL_DATA_OPT suivi de
            <guint32 reference>
            <guint32 taille du bloc de donnees>
            <guint32 =0>
            <guint32 ID check pour les transferts>
ou NACK

Sur la connexion en UDP
-----------------------

tout fonctionne de la meme maniere qu'un transfert UDP standard.
z est toujours initialise a data (0).

A l'arrivee, on obtient un bloc de donnees ayant la structure suivante:
La structure utilisee est decoupee en bloc identique utilisant le format suivant
guint8 = type du chunk
         (0 = fichier, 1 = erreur)
---> 0 chunk de fichier
	guint32 = longueur du nom du fichier (N)
   guint8*N = filename (tel que fournit lors de la demande)
   guint32 = data size (M)
   guint8*M = data
   guint32 = rsrc size (L)
   guint8*N = rsrc
---> 1 chunk d'erreur:
   guint32 = longueur du message d'erreur (K)
   guint8*K = message d'erreur
   

