lcrzo_address(3)

NAME
lcrzo_address - bibliotheque lcrzo : adresses (hostname, IP, Ethernet)

CONTENU
/*    Bibliotheque reseau de Laurent Constantin (lcrzo)
                 Module lcrzo_address
  Les fonctions presentes dans ce module permettent d'assurer la
  creation et la conversion d'adresses.
*/
/*-------------------------------------------------------------*/
/*                   REPRESENTATION D'ADRESSES                   */
/*-------------------------------------------------------------*/
/* type permettant de representer un nom de machine sous la forme
   d'une chaine de caracteres comme "machine.entr.fr" */
#define LCRZO_HS_MAXBYTES 240
typedef char lcrzo_hs[LCRZO_HS_MAXBYTES+1]; /* +1 for/pour '\0'*/
typedef const lcrzo_hs lcrzo_consths;
/* type permettant de representer une adresse ip sous la forme d'une
   chaine de caracteres comme "193.52.95.43" */
#define LCRZO_IPS_MAXBYTES 15
typedef char lcrzo_ips[LCRZO_IPS_MAXBYTES+1]; /*+1 for/pour '\0'*/
typedef const lcrzo_ips lcrzo_constips;
/* type permettant de representer une adresse ip sous forme de
   tableau de 4 entiers comme [ii][ii][ii][ii] */
#define LCRZO_IPA_MAXBYTES 4
typedef lcrzo_uint8 lcrzo_ipa[LCRZO_IPA_MAXBYTES];
typedef const lcrzo_ipa lcrzo_constipa;
/* type permettant de representer une adresse ip sous la forme d'un
   entier de 32 bits comme 0x3456329D (l'ordre des octets est host
   et non pas network) */
typedef lcrzo_uint32 lcrzo_ipl;
/* type permettant de representer une adresse ethernet sous la forme
   d'une chaine de caracteres comme "8:0:20:74:dc:2e" */
#define LCRZO_ETHS_MAXBYTES 17
typedef char lcrzo_eths[LCRZO_ETHS_MAXBYTES+1]; /*+1for/pour'\0'*/
typedef const lcrzo_eths lcrzo_consteths;
/* type permettant de representer une adresse ethernet sous forme de
   tableau de 6 entiers comme [ii][ii][ii][ii][ii][ii] */
#define LCRZO_ETHA_MAXBYTES 6
typedef lcrzo_uint8 lcrzo_etha[LCRZO_ETHA_MAXBYTES];
typedef const lcrzo_etha lcrzo_constetha;
/*-------------------------------------------------------------*/
/* ce define permet de verifier qu'il n'y ait pas
   de buffer overflow dans une chaine lcrzo_hs*/
#define lcrzo_hs_verifbof(hs) if(strlen(hs)>LCRZO_HS_MAXBYTES)return(LCRZO_ERR_PAOVERFLOW)
/* Nom : lcrzo_hs_init
   Description :
     Initialise une adresse sous la forme lcrzo_hs
   Parametre(s) d'entree :
     inhs : chaine contenant un nom de machine
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ouths : lcrzo_hs affecte par inhs
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKDATATRUNCATED : toutes les donnees entrees n'ont pas
                                 ete mises dans ouths
*/
int lcrzo_hs_init(lcrzo_conststring instring,
		  lcrzo_hs ouths);
/* Nom : lcrzo_hs_init_hs
   Description :
     Initialise une adresse sous la forme lcrzo_hs
   Parametre(s) d'entree :
     inhs : lcrzo_hs contenant un nom de machine
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ouths : lcrzo_hs affecte par inhs
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKDATATRUNCATED : toutes les donnees entrees n'ont pas
                                 ete mises dans ouths
*/
int lcrzo_hs_init_hs(lcrzo_consths inhs,
		     lcrzo_hs ouths);
/* Nom : lcrzo_hs_initdefault
   Description :
     Initialise une adresse lcrzo_hs avec la valeur par defaut
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     hs : lcrzo_hs affecte par "" (valeur par defaut)
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hs_initdefault(lcrzo_hs hs);
/* Nom : lcrzo_hs_init_ips
   Description :
     Convertit un lcrzo_ips en lcrzo_hs
   Parametre(s) d'entree :
     ips : lcrzo_ips a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     hs : lcrzo_hs affecte avec la valeur de ips
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_hs_init_ips(lcrzo_constips ips, lcrzo_hs hs);
/* Nom : lcrzo_hs_init_ipa
   Description :
     Convertit un lcrzo_ipa en lcrzo_hs
   Parametre(s) d'entree :
     ipa : lcrzo_ipa a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     hs : lcrzo_hs affecte avec la valeur de ipa
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_hs_init_ipa(lcrzo_constipa ipa, lcrzo_hs hs);
/* Nom : lcrzo_hs_init_ipl
   Description :
     Convertit un lcrzo_ipl en lcrzo_hs
   Parametre(s) d'entree :
     ipl : lcrzo_ipl a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     hs : lcrzo_hs affecte avec la valeur de ipl
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_hs_init_ipl(lcrzo_ipl ipl, lcrzo_hs hs);
/* Nom : lcrzo_hs_init_eths
   Description :
     Convertit un lcrzo_eths en lcrzo_hs
   Parametre(s) d'entree :
     eths : lcrzo_eths a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     hs : lcrzo_hs affecte avec la valeur de eths
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_hs_init_eths(lcrzo_consteths eths, lcrzo_hs hs);
/* Nom : lcrzo_hs_init_etha
   Description :
     Convertit un lcrzo_etha en lcrzo_hs
   Parametre(s) d'entree :
     etha : lcrzo_etha a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     hs : lcrzo_hs affecte avec la valeur de etha
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_hs_init_etha(lcrzo_constetha etha, lcrzo_hs hs);
/* Nom : lcrzo_hs_equal
   Description :
     Verifie l'egalite de deux lcrzo_hs
   Parametre(s) d'entree :
     hs1 : lcrzo_hs a comparer avec hs2
     hs2 : lcrzo_hs a comparer avec hs1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     0 : si hs1 et hs2 sont differents
     1 : si hs1 et hs2 sont egaux
*/
lcrzo_bool lcrzo_hs_equal(lcrzo_consths hs1, lcrzo_consths hs2);
/* Nom : lcrzo_hs_cmp
   Description :
     Compare deux lcrzo_hs
   Parametre(s) d'entree :
     hs1 : lcrzo_hs a comparer avec hs2
     hs2 : lcrzo_hs a comparer avec hs1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     -1 : hs1<hs2
      0 : si hs1 et hs2 sont egaux
     +1 : hs1>hs2
*/
lcrzo_int8 lcrzo_hs_cmp(lcrzo_consths hs1, lcrzo_consths hs2);
/* Nom : lcrzo_hs_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaulths : lcrzo_hs par defaut a utiliser si l'utilisateur
                   n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     hs : lcrzo_hs affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hs_init_stdin(lcrzo_conststring message,
			lcrzo_consths defaulths,
			lcrzo_hs hs);
/*-------------------------------------------------------------*/
/* ce define permet de verifier qu'il n'y ait pas
   de buffer overflow dans une chaine lcrzo_ips*/
#define lcrzo_ips_verifbof(ips) if(strlen(ips)>LCRZO_IPS_MAXBYTES)return(LCRZO_ERR_PAOVERFLOW)
/* Nom : lcrzo_ips_init
   Description :
     Initialise une adresse sous la forme lcrzo_ips
   Parametre(s) d'entree :
     inips : chaine contenant un nom de machine
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outips : lcrzo_ips affecte par inips
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKDATATRUNCATED : toutes les donnees entrees n'ont pas
                                 ete mises dans outips
*/
int lcrzo_ips_init(lcrzo_conststring inips,
		   lcrzo_ips outips);
/* Nom : lcrzo_ips_init
   Description :
     Initialise une adresse sous la forme lcrzo_ips
   Parametre(s) d'entree :
     inips : lcrzo_ips contenant un nom de machine
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outips : lcrzo_ips affecte par inips
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKDATATRUNCATED : toutes les donnees entrees n'ont pas
                                 ete mises dans outips
*/
int lcrzo_ips_init_ips(lcrzo_constips inips,
		       lcrzo_ips outips);
/* Nom : lcrzo_ips_initdefault
   Description :
     Initialise une adresse lcrzo_ips avec la valeur par defaut
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ips : lcrzo_ips affecte par "0.0.0.0" (valeur par defaut)
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ips_initdefault(lcrzo_ips ips);
/* Nom : lcrzo_ips_init_hs
   Description :
     Convertit un lcrzo_hs en lcrzo_ips
   Parametre(s) d'entree :
     hs : lcrzo_hs a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ips : lcrzo_ips affecte avec la valeur de hs
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ips_init_hs(lcrzo_consths hs, lcrzo_ips ips);
/* Nom : lcrzo_ips_init_ipa
   Description :
     Convertit un lcrzo_ipa en lcrzo_ips
   Parametre(s) d'entree :
     ipa : lcrzo_ipa a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ips : lcrzo_ips affecte avec la valeur de ipa
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ips_init_ipa(lcrzo_constipa ipa, lcrzo_ips ips);
/* Nom : lcrzo_ips_init_ipl
   Description :
     Convertit un lcrzo_ipl en lcrzo_ips
   Parametre(s) d'entree :
     ipl : lcrzo_ipl a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ips : lcrzo_ips affecte avec la valeur de ipl
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ips_init_ipl(lcrzo_ipl ipl, lcrzo_ips ips);
/* Nom : lcrzo_ips_init_eths
   Description :
     Convertit un lcrzo_eths en lcrzo_ips
   Parametre(s) d'entree :
     eths : lcrzo_eths a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ips : lcrzo_ips affecte avec la valeur de eths
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ips_init_eths(lcrzo_consteths eths, lcrzo_ips ips);
/* Nom : lcrzo_ips_init_etha
   Description :
     Convertit un lcrzo_etha en lcrzo_ips
   Parametre(s) d'entree :
     etha : lcrzo_etha a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ips : lcrzo_ips affecte avec la valeur de etha
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ips_init_etha(lcrzo_constetha etha, lcrzo_ips ips);
/* Nom : lcrzo_ips_equal
   Description :
     Verifie l'egalite de deux lcrzo_ips
   Parametre(s) d'entree :
     ips1 : lcrzo_ips a comparer avec ips2
     ips2 : lcrzo_ips a comparer avec ips1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     0 : si ips1 et ips2 sont differents
     1 : si ips1 et ips2 sont egaux
*/
lcrzo_bool lcrzo_ips_equal(lcrzo_constips ips1, lcrzo_constips ips2);
/* Nom : lcrzo_ips_cmp
   Description :
     Compare deux lcrzo_ips
   Parametre(s) d'entree :
     ips1 : lcrzo_ips a comparer avec ips2
     ips2 : lcrzo_ips a comparer avec ips1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     -1 : ips1<ips2
      0 : si ips1 et ips2 sont egaux
     +1 : ips1>ips2
*/
lcrzo_int8 lcrzo_ips_cmp(lcrzo_constips ips1, lcrzo_constips ips2);
/* Nom : lcrzo_ips_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaulths : lcrzo_hs par defaut a utiliser si l'utilisateur
                 n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ips : lcrzo_ips affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ips_init_stdin(lcrzo_conststring message,
			 lcrzo_consths defaulths,
			 lcrzo_ips ips);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipa_init
   Description :
     Initialise une adresse sous la forme lcrzo_ipa
   Parametre(s) d'entree :
     a,b,c,d : octets de l'adresse IP
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outipa : lcrzo_ipa affecte par a.b.c.d
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipa_init(lcrzo_uint8 a,
		   lcrzo_uint8 b,
		   lcrzo_uint8 c,
		   lcrzo_uint8 d,
		   lcrzo_ipa outipa);
/* Nom : lcrzo_ipa_init_ipa
   Description :
     Initialise une adresse sous la forme lcrzo_ipa
   Parametre(s) d'entree :
     inipa : lcr_ipa d'entree
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outipa : lcrzo_ipa affecte par inipa
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipa_init_ipa(lcrzo_constipa inipa,
		       lcrzo_ipa outipa);
/* Nom : lcrzo_ipa_initdefault
   Description :
     Initialise une adresse lcrzo_ipa avec la valeur par defaut
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outipa : lcrzo_ipa affecte par [0][0][0][0] (valeur par defaut)
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipa_initdefault(lcrzo_ipa ipa);
/* Nom : lcrzo_ipa_init_hs
   Description :
     Convertit un lcrzo_hs en lcrzo_ipa
   Parametre(s) d'entree :
     hs : lcrzo_hs a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipa : lcrzo_ipa affecte avec la valeur de hs
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipa_init_hs(lcrzo_consths hs, lcrzo_ipa ipa);
/* Nom : lcrzo_ipa_init_ips
   Description :
     Convertit un lcrzo_ips en lcrzo_ipa
   Parametre(s) d'entree :
     ips : lcrzo_ips a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipa : lcrzo_ipa affecte avec la valeur de ips
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipa_init_ips(lcrzo_constips ips, lcrzo_ipa ipa);
/* Nom : lcrzo_ipa_init_ipl
   Description :
     Convertit un lcrzo_ipl en lcrzo_ipa
   Parametre(s) d'entree :
     ipl : lcrzo_ipl a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipa : lcrzo_ipa affecte avec la valeur de ipl
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipa_init_ipl(lcrzo_ipl ipl, lcrzo_ipa ipa);
/* Nom : lcrzo_ipa_init_eths
   Description :
     Convertit un lcrzo_eths en lcrzo_ipa
   Parametre(s) d'entree :
     eths : lcrzo_eths a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipa : lcrzo_ipa affecte avec la valeur de eths
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipa_init_eths(lcrzo_consteths eths, lcrzo_ipa ipa);
/* Nom : lcrzo_ipa_init_etha
   Description :
     Convertit un lcrzo_etha en lcrzo_ipa
   Parametre(s) d'entree :
     etha : lcrzo_etha a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipa : lcrzo_ipa affecte avec la valeur de etha
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipa_init_etha(lcrzo_constetha etha, lcrzo_ipa ipa);
/* Nom : lcrzo_ipa_equal
   Description :
     Verifie l'egalite de deux lcrzo_ipa
   Parametre(s) d'entree :
     ipa1 : lcrzo_ipa a comparer avec ipa2
     ipa2 : lcrzo_ipa a comparer avec ipa1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     0 : si ipa1 et ipa2 sont differents
     1 : si ipa1 et ipa2 sont egaux
*/
lcrzo_bool lcrzo_ipa_equal(lcrzo_constipa ipa1, lcrzo_constipa ipa2);
/* Nom : lcrzo_ipa_cmp
   Description :
     Compare deux lcrzo_ipa
   Parametre(s) d'entree :
     ipa1 : lcrzo_ipa a comparer avec ipa2
     ipa2 : lcrzo_ipa a comparer avec ipa1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     -1 : ipa1<ipa2
      0 : si ipa1 et ipa2 sont egaux
     +1 : ipa1>ipa2
*/
lcrzo_int8 lcrzo_ipa_cmp(lcrzo_constipa ipa1, lcrzo_constipa ipa2);
/* Nom : lcrzo_ipa_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaulths : lcrzo_hs par defaut a utiliser si l'utilisateur
                 n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipa : lcrzo_ipa affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipa_init_stdin(lcrzo_conststring message,
		    lcrzo_consths defaulths,
		    lcrzo_ipa ipa);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipl_init
   Description :
     Initialise une adresse sous la forme lcrzo_ipl
   Parametre(s) d'entree :
     a,b,c,d : octets de l'adresse IP
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *poutipl : lcrzo_ipl affecte par a.b.c.d
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipl_init(lcrzo_uint8 a,
		   lcrzo_uint8 b,
		   lcrzo_uint8 c,
		   lcrzo_uint8 d,
		   lcrzo_ipl *poutipl);
/* Nom : lcrzo_ipl_init_ipl
   Description :
     Initialise une adresse sous la forme lcrzo_ipl
   Parametre(s) d'entree :
     inipl : lcrzo_ipl d'entree
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *poutipl : lcrzo_ipl affecte par inipl
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipl_init_ipl(lcrzo_ipl inipl,
		       lcrzo_ipl *poutipl);
/* Nom : lcrzo_ipl_initdefault
   Description :
     Initialise une adresse lcrzo_ipl avec la valeur par defaut
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pipl : lcrzo_ipl affecte par 0x00000000 (valeur par defaut)
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipl_initdefault(lcrzo_ipl *pipl);
/* Nom : lcrzo_ipl_init_hs
   Description :
     Convertit un lcrzo_hs en lcrzo_ipl
   Parametre(s) d'entree :
     hs : lcrzo_hs a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pipl : lcrzo_ipl affecte avec la valeur de hs
   Valeurs de retour normales :
     LCRZO_EOK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipl_init_hs(lcrzo_consths hs, lcrzo_ipl *pipl);
/* Nom : lcrzo_ipl_init_ips
   Description :
     Convertit un lcrzo_ips en lcrzo_ipl
   Parametre(s) d'entree :
     ips : lcrzo_ips a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pipl : lcrzo_ipl affecte avec la valeur de ips
   Valeurs de retour normales :
     LCRZO_EOK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipl_init_ips(lcrzo_constips ips, lcrzo_ipl *pipl);
/* Nom : lcrzo_ipl_init_ipa
   Description :
     Convertit un lcrzo_ipa en lcrzo_ipl
   Parametre(s) d'entree :
     ipa : lcrzo_ipa a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pipl : lcrzo_ipl affecte avec la valeur de ipa
   Valeurs de retour normales :
     LCRZO_EOK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipl_init_ipa(lcrzo_constipa ipa, lcrzo_ipl *pipl);
/* Nom : lcrzo_ipl_init_eths
   Description :
     Convertit un lcrzo_eths en lcrzo_ipl
   Parametre(s) d'entree :
     eths : lcrzo_eths a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pipl : lcrzo_ipl affecte avec la valeur de eths
   Valeurs de retour normales :
     LCRZO_EOK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipl_init_eths(lcrzo_consteths eths, lcrzo_ipl *pipl);
/* Nom : lcrzo_ipl_init_etha
   Description :
     Convertit un lcrzo_etha en lcrzo_ipl
   Parametre(s) d'entree :
     etha : lcrzo_etha a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pipl : lcrzo_ipl affecte avec la valeur de etha
   Valeurs de retour normales :
     LCRZO_EOK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_ipl_init_etha(lcrzo_constetha etha, lcrzo_ipl *pipl);
/* Nom : lcrzo_ipl_equal
   Description :
     Verifie l'egalite de deux lcrzo_ipl
   Parametre(s) d'entree :
     ipl1 : lcrzo_ipl a comparer avec ipl2
     ipl2 : lcrzo_ipl a comparer avec ipl1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     0 : si ipl1 et ipl2 sont differents
     1 : si ipl1 et ipl2 sont egaux
*/
lcrzo_bool lcrzo_ipl_equal(lcrzo_ipl ipl1, lcrzo_ipl ipl2);
/* Nom : lcrzo_ipl_cmp
   Description :
     Compare deux lcrzo_ipl
   Parametre(s) d'entree :
     ipl1 : lcrzo_ipl a comparer avec ipl2
     ipl2 : lcrzo_ipl a comparer avec ipl1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     -1 : ipl1<ipl2
      0 : si ipl1 et ipl2 sont egaux
     +1 : ipl1>ipl2
*/
lcrzo_int8 lcrzo_ipl_cmp(lcrzo_ipl ipl1, lcrzo_ipl ipl2);
/* Nom : lcrzo_ipl_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaulths : lcrzo_hs par defaut a utiliser si l'utilisateur
                 n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pipl : lcrzo_ipl affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipl_init_stdin(lcrzo_conststring message,
		    lcrzo_consths defaulths,
		    lcrzo_ipl *pipl);
/*-------------------------------------------------------------*/
/* ce define permet de verifier qu'il n'y ait pas
   de buffer overflow dans une chaine lcrzo_eths*/
#define lcrzo_eths_verifbof(eths) if(strlen(eths)>LCRZO_ETHS_MAXBYTES)return(LCRZO_ERR_PAOVERFLOW)
/* Nom : lcrzo_eths_init
   Description :
     Initialise une adresse sous la forme lcrzo_eths
   Parametre(s) d'entree :
     ineths : chaine contenant un nom de machine
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outeths : lcrzo_eths affecte par ineths
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKDATATRUNCATED : toutes les donnees entrees n'ont pas
                                 ete mises dans outeths
*/
int lcrzo_eths_init(lcrzo_conststring ineths,
		    lcrzo_eths outeths);
/* Nom : lcrzo_eths_init_eths
   Description :
     Initialise une adresse sous la forme lcrzo_eths
   Parametre(s) d'entree :
     ineths : lcrzo_eths contenant un nom de machine
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outeths : lcrzo_eths affecte par ineths
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKDATATRUNCATED : toutes les donnees entrees n'ont pas
                                 ete mises dans outeths
*/
int lcrzo_eths_init_eths(lcrzo_consteths ineths,
			 lcrzo_eths outeths);
/* Nom : lcrzo_eths_initdefault
   Description :
     Initialise une adresse lcrzo_eths avec la valeur par defaut
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outeths : lcrzo_eths affecte par "00:00:00:00:00:00" (valeur par defaut)
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_eths_initdefault(lcrzo_eths eths);
/* Nom : lcrzo_eths_init_hs
   Description :
     Convertit un lcrzo_hs en lcrzo_eths
   Parametre(s) d'entree :
     hs : lcrzo_hs a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     eths : lcrzo_eths affecte avec la valeur de hs
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_eths_init_hs(lcrzo_consths hs, lcrzo_eths eths);
/* Nom : lcrzo_eths_init_ips
   Description :
     Convertit un lcrzo_ips en lcrzo_eths
   Parametre(s) d'entree :
     ips : lcrzo_ips a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     eths : lcrzo_eths affecte avec la valeur de ips
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_eths_init_ips(lcrzo_constips ips, lcrzo_eths eths);
/* Nom : lcrzo_eths_init_ipa
   Description :
     Convertit un lcrzo_ipa en lcrzo_eths
   Parametre(s) d'entree :
     ipa : lcrzo_ipa a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     eths : lcrzo_eths affecte avec la valeur de ipa
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_eths_init_ipa(lcrzo_constipa ipa, lcrzo_eths eths);
/* Nom : lcrzo_eths_init_ipl
   Description :
     Convertit un lcrzo_ipl en lcrzo_eths
   Parametre(s) d'entree :
     ipl : lcrzo_ipl a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     eths : lcrzo_eths affecte avec la valeur de ipl
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_eths_init_ipl(lcrzo_ipl ipl, lcrzo_eths eths);
/* Nom : lcrzo_eths_init_etha
   Description :
     Convertit un lcrzo_etha en lcrzo_eths
   Parametre(s) d'entree :
     etha : lcrzo_etha a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     eths : lcrzo_eths affecte avec la valeur de etha
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_eths_init_etha(lcrzo_constetha etha, lcrzo_eths eths);
/* Nom : lcrzo_eths_equal
   Description :
     Verifie l'egalite de deux lcrzo_eths
   Parametre(s) d'entree :
     eths1 : lcrzo_eths a comparer avec eths2
     eths2 : lcrzo_eths a comparer avec eths1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     0 : si eths1 et eths2 sont differents
     1 : si eths1 et eths2 sont egaux
*/
lcrzo_bool lcrzo_eths_equal(lcrzo_consteths eths1, lcrzo_consteths eths2);
/* Nom : lcrzo_eths_cmp
   Description :
     Compare deux lcrzo_eths
   Parametre(s) d'entree :
     eths1 : lcrzo_eths a comparer avec eths2
     eths2 : lcrzo_eths a comparer avec eths1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     -1 : eths1<eths2
      0 : si eths1 et eths2 sont egaux
     +1 : eths1>eths2
*/
lcrzo_int8 lcrzo_eths_cmp(lcrzo_consteths eths1, lcrzo_consteths eths2);
/* Nom : lcrzo_eths_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaulteths : lcrzo_eths par defaut a utiliser si l'utilisateur
                   n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     eths : lcrzo_eths affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_eths_init_stdin(lcrzo_conststring message,
			  lcrzo_consteths defaulteths,
			  lcrzo_eths eths);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_etha_init
   Description :
     Initialise une adresse sous la forme lcrzo_etha
   Parametre(s) d'entree :
     a,b,c,d,e,f : octets de l'adresse Ethernet
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outetha : lcrzo_etha affecte par a:b:c:d:e:f
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_etha_init(lcrzo_uint8 a,
		    lcrzo_uint8 b,
		    lcrzo_uint8 c,
		    lcrzo_uint8 d,
		    lcrzo_uint8 e,
		    lcrzo_uint8 f,
		    lcrzo_etha outetha);
/* Nom : lcrzo_etha_init_etha
   Description :
     Initialise une adresse sous la forme lcrzo_etha
   Parametre(s) d'entree :
     intetha : lcrzo_etha d'entree
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outetha : lcrzo_etha affecte par inetha
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_etha_init_etha(lcrzo_constetha inetha,
			 lcrzo_etha outetha);
/* Nom : lcrzo_etha_initdefault
   Description :
     Initialise une adresse lcrzo_etha avec la valeur par defaut
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outetha : lcrzo_etha affecte par [0][0][0][0] (valeur par defaut)
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_etha_initdefault(lcrzo_etha etha);
/* Nom : lcrzo_etha_init_hs
   Description :
     Convertit un lcrzo_hs en lcrzo_etha
   Parametre(s) d'entree :
     hs : lcrzo_hs a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     etha : lcrzo_etha affecte avec la valeur de hs
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_etha_init_hs(lcrzo_consths hs, lcrzo_etha etha);
/* Nom : lcrzo_etha_init_ips
   Description :
     Convertit un lcrzo_ips en lcrzo_etha
   Parametre(s) d'entree :
     ips : lcrzo_ips a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     etha : lcrzo_etha affecte avec la valeur de ips
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_etha_init_ips(lcrzo_constips ips, lcrzo_etha etha);
/* Nom : lcrzo_etha_init_ipa
   Description :
     Convertit un lcrzo_ipa en lcrzo_etha
   Parametre(s) d'entree :
     ipa : lcrzo_ipa a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     etha : lcrzo_etha affecte avec la valeur de ipa
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_etha_init_ipa(lcrzo_constipa ipa, lcrzo_etha etha);
/* Nom : lcrzo_etha_init_ipl
   Description :
     Convertit un lcrzo_ipl en lcrzo_etha
   Parametre(s) d'entree :
     ipl : lcrzo_ipl a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     etha : lcrzo_etha affecte avec la valeur de ipl
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_etha_init_ipl(lcrzo_ipl ipl, lcrzo_etha etha);
/* Nom : lcrzo_etha_init_eths
   Description :
     Convertit un lcrzo_eths en lcrzo_etha
   Parametre(s) d'entree :
     eths : lcrzo_eths a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     etha : lcrzo_etha affecte avec la valeur de eths
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKUNRESOLVED : l'adresse n'a pas pu etre convertie
*/
int lcrzo_etha_init_eths(lcrzo_consteths eths, lcrzo_etha etha);
/* Nom : lcrzo_etha_equal
   Description :
     Verifie l'egalite de deux lcrzo_etha
   Parametre(s) d'entree :
     etha1 : lcrzo_etha a comparer avec etha2
     etha2 : lcrzo_etha a comparer avec etha1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     0 : si etha1 et etha2 sont differents
     1 : si etha1 et etha2 sont egaux
*/
lcrzo_bool lcrzo_etha_equal(lcrzo_constetha etha1, lcrzo_constetha etha2);
/* Nom : lcrzo_etha_cmp
   Description :
     Compare deux lcrzo_etha
   Parametre(s) d'entree :
     etha1 : lcrzo_etha a comparer avec etha2
     etha2 : lcrzo_etha a comparer avec etha1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     -1 : etha1<etha2
      0 : si etha1 et etha2 sont egaux
     +1 : etha1>etha2
*/
lcrzo_int8 lcrzo_etha_cmp(lcrzo_constetha etha1, lcrzo_constetha etha2);
/* Nom : lcrzo_etha_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaulteths : lcrzo_eths par defaut a utiliser si l'utilisateur
                   n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     etha : lcrzo_etha affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_etha_init_stdin(lcrzo_conststring message,
		     lcrzo_consteths defaulteths,
		     lcrzo_etha etha);
/*-------------------------------------------------------------*/
/* definition d'une plage d'adresses Ethernet*/
#define LCRZO_ETHRANGE_MAXBYTES  35
typedef char lcrzo_ethrange[LCRZO_ETHRANGE_MAXBYTES+1]; /*+1 for/pour '\0'*/
typedef const lcrzo_ethrange lcrzo_constethrange;
/* exemples de lcrzo_ethrange :*/
/*  lcrzo_ethrange              :     ethinf        ethsup
  a:b:c:d:e:f                   :   a:b:c:d:e:f   a:b:c:d:e:f
  1:2:3:4:5:6-a:b:c:d:e:f       :   1:2:3:4:5:6   a:b:c:d:e:f
  1:2:3:4:5:0/FF:FF:FF:FF:FF:0  :   1:2:3:4:5:0   1:2:3:4:5:FF
  1:2:3:4:5:0/40                :   1:2:3:4:5:0   1:2:3:4:5:FF
  1:2:3:4:5/FF:FF:FF:FF:FF:0    :   1:2:3:4:5:0   1:2:3:4:5:FF
  1:2:3:4:5/40                  :   1:2:3:4:5:0   1:2:3:4:5:FF
  1:2:3:4:5:0%FF:FF:FF:FF:FF:0  :   1:2:3:4:5:1   1:2:3:4:5:FE
  1:2:3:4:5:0%40                :   1:2:3:4:5:1   1:2:3:4:5:FE
  1:2:3:4:5%FF:FF:FF:FF:FF:0    :   1:2:3:4:5:1   1:2:3:4:5:FE
  1:2:3:4:5%40                  :   1:2:3:4:5:1   1:2:3:4:5:FE
*/
/* note : '%' a la meme signification que '/', sauf que les adresses
  broadcast sont excluses de l'intervalle.*/
/* Nom : lcrzo_etha_init_ethrange
   Description :
     Conversion de plage d'adresses ethernet en deux
     adresses ethernet
   Parametre(s) d'entree :
     range : lcrzo_ethrange a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ethainf : valeur inferieure de la plage
     ethasup : valeur superieure de la plage
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_etha_init_ethrange(lcrzo_constethrange range,
			     lcrzo_etha ethainf,
			     lcrzo_etha ethasup);
/* Nom : lcrzo_ethrange_init_etha
   Description :
     Conversion de deux adresses ethernet en plage
     d'adresses ethernet
   Parametre(s) d'entree :
     ethainf : valeur inferieure de la plage
     ethasup : valeur superieure de la plage
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     range : lcrzo_ethrange ethainf-ethasup
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ethrange_init_etha(lcrzo_etha ethainf,
			     lcrzo_etha ethasup,
			     lcrzo_ethrange range);
/* Nom : lcrzo_ethrange_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaultrange : lcrzo_ethrange par defaut a utiliser si l'utilisateur
                    n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ethrange : lcrzo_ethrange affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ethrange_init_stdin(lcrzo_conststring message,
			      lcrzo_conststring defaultrange,
			      lcrzo_ethrange ethrange);
/*-------------------------------------------------------------*/
/* definition d'une plage d'adresses IP */
#define LCRZO_IPRANGE_MAXBYTES   31
typedef char  lcrzo_iprange[LCRZO_IPRANGE_MAXBYTES+1]; /* +1 for/pour '\0' */
typedef const lcrzo_iprange lcrzo_constiprange;
/* exemples de lcrzo_iprange : */
/*  lcrzo_iprange               :     iplinf     iplsup
  1.2.3.4                       :     1.2.3.4     1.2.3.4
  1.2.3.4-5.6.7.8               :     1.2.3.4     5.6.7.8
  1.2.3.0/255.255.255.0         :     1.2.3.0   1.2.3.255
  1.2.3.0/24                    :     1.2.3.0   1.2.3.255
  1.2.3/255.255.255.0           :     1.2.3.0   1.2.3.255
  1.2.3/24                      :     1.2.3.0   1.2.3.255
  1.2.3.0%255.255.255.O         :     1.2.3.1   1.2.3.254
  1.2.3.0%24                    :     1.2.3.1   1.2.3.254
  1.2.3%255.255.255.O           :     1.2.3.1   1.2.3.254
  1.2.3%24                      :     1.2.3.1   1.2.3.254
*/
/* note : '%' a la meme signification que '/', sauf que les adresses
  broadcast sont excluses de l'intervalle.*/
/* Nom : lcrzo_ipl_init_iprange
   Description :
     Conversion de plage d'adresses IP en deux adresses IP
   Parametre(s) d'entree :
     range : lcrzo_iprange a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *piplinf : valeur inferieure de la plage
     *piplsup : valeur superieure de la plage
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
/*
  Il est possible d'employer un intervalle de nom de machines comme
  entree. Dans ce cas, le separateur est '=' (car '-' est un
  separateur valide de hostname). Par exemple : */
/*  www.server.com
    hostname1=hostname2
    1.2.3.4=hostname2
    hostname1=5.6.7.8
*/
int lcrzo_ipl_init_iprange(lcrzo_conststring range,
			   lcrzo_ipl *piplinf,
			   lcrzo_ipl *piplsup);
/* Nom : lcrzo_iprange_init_ipl
   Description :
     Conversion de deux adresses IP en plage
     d'adresses IP
   Parametre(s) d'entree :
     iplinf : valeur inferieure de la plage
     iplsup : valeur superieure de la plage
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     range : lcrzo_iprange iplinf-iplsup
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_iprange_init_ipl(lcrzo_ipl iplinf,
			   lcrzo_ipl iplsup,
			   lcrzo_iprange range);
/* Nom : lcrzo_iprange_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaultrange : lcrzo_iprange par defaut a utiliser si l'utilisateur
                    n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     iprange : lcrzo_iprange affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_iprange_init_stdin(lcrzo_conststring message,
			     lcrzo_conststring defaultrange,
			     lcrzo_iprange iprange);
/*-------------------------------------------------------------*/
/* definition d'une plage de ports */
#define LCRZO_PORTRANGE_MAXBYTES 11
typedef char  lcrzo_portrange[LCRZO_PORTRANGE_MAXBYTES+1]; /*+1for/pour'\0'*/
typedef const lcrzo_portrange lcrzo_constportrange;
/* exemples de lcrzo_iprange : */
/*lcrzo_portrange : portinf  portsup
  23              :    23        23
  23-25           :    23        25
  23-             :    23     65535
  0-21            :     0        21
  1-21            :     1        21
  -21             :     1        21
  -               :     1     65535
*/
/* note : le port inferieur par defaut est 1 et non 0. En effet,
  un port '0' n'a que peu d'interet.*/
/* Nom : lcrzo_port_init_portrange
   Description :
     Conversion de plage de ports  en deux ports
   Parametre(s) d'entree :
     range : lcrzo_portrange a convertir
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pportinf : valeur inferieure de la plage
     *pportsup : valeur superieure de la plage
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_port_init_portrange(lcrzo_constportrange range,
			      lcrzo_uint16 *pportinf,
			      lcrzo_uint16 *pportsup);
/* Nom : lcrzo_portrange_init_port
   Description :
     Conversion de deux ports en plage de ports
     d'adresses PORT
   Parametre(s) d'entree :
     portinf : valeur inferieure de la plage
     portsup : valeur superieure de la plage
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     range : lcrzo_portrange portinf-portsup
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_portrange_init_port(lcrzo_uint16 portinf,
			      lcrzo_uint16 portsup,
			      lcrzo_portrange range);
/* Nom : lcrzo_portrange_init_stdin
   Description :
     Initialise une adresse par une valeur entree au clavier
   Parametre(s) d'entree :
     message : message a afficher avant de demander a entrer
     defaultrange : lcrzo_portrange par defaut a utiliser si l'utilisateur
                    n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     portrange : lcrzo_portrange affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_portrange_init_stdin(lcrzo_conststring message,
			       lcrzo_conststring defaultrange,
			       lcrzo_portrange portrange);

VOIR AUSSI
lcrzo(3), lcrzo_types(3), lcrzo_data(3), lcrzo_string(3), lcrzo_time(3), lcrzo_file(3), lcrzo_address(3), lcrzo_device(3), lcrzo_list(3), lcrzo_process(3), lcrzo_ipc(3), lcrzo_header(3), lcrzo_ipopt(3), lcrzo_tcpopt(3), lcrzo_packet(3), lcrzo_icmp(3), lcrzo_print(3), lcrzo_record(3), lcrzo_conf(3), lcrzo_spoof(3), lcrzo_sniff(3), lcrzo_sock(3), lcrzo_wait(3), lcrzo_global(3), lcrzo_error(3) lcrzo_misc(3),