lcrzo_device(3)

NAME
lcrzo_device - bibliotheque lcrzo : devices (cartes reseau)

CONTENU
/*    Bibliotheque reseau de Laurent Constantin (lcrzo)
                 Module lcrzo_device
  Les fonctions presentes dans ce module permettent de gerer des
  devices.
*/
/* nom de device ethernet (ex. eth0, le0) */
#define LCRZO_DEVICE_MAXBYTES 128
typedef lcrzo_int8 lcrzo_device[LCRZO_DEVICE_MAXBYTES+1]; /*+1 for/pour '\0'*/
typedef const lcrzo_device lcrzo_constdevice;
/*-------------------------------------------------------------*/
/* ce define permet de verifier qu'il n'y ait pas
   de buffer overflow dans une chaine lcrzo_device*/
#define lcrzo_device_verifbof(device) if(strlen(device)>LCRZO_DEVICE_MAXBYTES)return(LCRZO_ERR_PAOVERFLOW)
/*-------------------------------------------------------------*/
/* Nom : lcrzo_device_init
   Description :
     Initialise une adresse sous la forme lcrzo_device
   Parametre(s) d'entree :
     indevice : chaine contenant un nom de machine
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     outdevice : lcrzo_device affecte par indevice
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKDATATRUNCATED : toutes les donnees entrees n'ont pas
                                 ete mises dans deviceout
*/
int lcrzo_device_init(lcrzo_constdevice indevice,
		      lcrzo_device outdevice);
/* idem, mais convertit " eth0:1 " en "eth0" */
int lcrzo_device_init_noalias(lcrzo_constdevice indevice,
			      lcrzo_device outdevice);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_device_equal
   Description :
     Verifie l'egalite de deux lcrzo_device
   Parametre(s) d'entree :
     device1 : lcrzo_device a comparer avec device2
     device2 : lcrzo_device a comparer avec device1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     0 : si device1 et device2 sont differents
     1 : si device1 et device2 sont egaux
*/
lcrzo_bool lcrzo_device_equal(lcrzo_constdevice device1,
		       lcrzo_constdevice device2);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_device_cmp
   Description :
     Compare deux lcrzo_device
   Parametre(s) d'entree :
     device1 : lcrzo_device a comparer avec device2
     device2 : lcrzo_device a comparer avec device1
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     -1 : device1<device2
      0 : si device1 et device2 sont egaux
     +1 : device1>device2
*/
lcrzo_int8 lcrzo_device_cmp(lcrzo_constdevice device1,
		     lcrzo_constdevice device2);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_device_initdefault
   Description :
     Initialise une adresse lcrzo_device avec la valeur par defaut
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     device : lcrzo_device affecte par "" (valeur par defaut)
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_initdefault(lcrzo_device device);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_mtu_init_device
   Description :
     Fournit le mtu associe au device
   Parametre(s) d'entree :
     device : device dont on veut connaitre le MTU
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pmtu : MTU de device
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_mtu_init_device(lcrzo_constdevice device,
			  lcrzo_uint32 *pmtu);
/* Nom : lcrzo_etha_init_device
   Description :
     Fournit l'adresse Ethernet associee au device
   Parametre(s) d'entree :
     device : device dont on veut connaitre l'adresse Ethernet
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     etha : lcrzo_etha de device
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_etha_init_device(lcrzo_constdevice device,
			   lcrzo_etha etha);
/* Nom : lcrzo_ipl_init_device
   Description :
     Fournit l'adresse IP associee au device
   Parametre(s) d'entree :
     device : device dont on veut connaitre l'adresse IP
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipl : lcrzo_ipl de device
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipl_init_device(lcrzo_constdevice device,
			  lcrzo_ipl *pipl,
			  lcrzo_ipl *pmask);
/* Nom : lcrzo_hs_init_device
   Description :
     Fournit le nom de machine associee au device
   Parametre(s) d'entree :
     device : device dont on veut connaitre le nom de machine
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     hs : lcrzo_hs de device
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hs_init_device(lcrzo_constdevice device,
			 lcrzo_hs hs);
/*-------------------------------------------------------------*/
/* on definit 3 types de devices : */
/* loopback, interfaces montees ou non, alias montes ou non */
#define LCRZO_DEVICE_TYPE_ALL         1
/* interfaces montees, alias montes*/
#define LCRZO_DEVICE_TYPE_ONLYVALIDIP 2
/* interfaces montees (une seule par carte reseau) */
#define LCRZO_DEVICE_TYPE_ONLYBOARDS  3
/* loopback */
#define LCRZO_DEVICE_TYPE_LOOPBACK    4
/* interfaces up */
#define LCRZO_DEVICE_TYPE_UP          5
/* alias */
#define LCRZO_DEVICE_TYPE_ALIAS       6
/* Nom : lcrzo_device_istype
   Description :
     Verifie si un device est d'un type donne
   Parametre(s) d'entree :
     device : device a verifier
     type : type a verifier (LCRZO_DEVICE_TYPE_ALL, ONLYVALIDIP, etc.)
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pyesitistype : 1 si device est de type 'type'
                     0 si device n'est pas de type 'type'
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_istype(lcrzo_constdevice device,
			lcrzo_int16 type,
			lcrzo_bool *pyesitistype);
/* Nom : lcrzo_device_count
   Description :
     Compte le nombre de devices d'un type donne
   Parametre(s) d'entree :
     type : type a compter (LCRZO_DEVICE_TYPE_ALL, ONLYVALIDIP, etc.)
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pcount : nombre de devices de type 'type'
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_count(lcrzo_int16 type,
		       lcrzo_int32 *pcount);
/**********************************************
 * Note sur les positions :                   *
 * Attention : 0 n'est pas une valeur valide  *
 * Voici des valeurs de position possibles :  *
 *  +1 : premier element                      *
 *  +2 : deuxieme element                     *
 *  ...                                       *
 * De plus, on peut partir de la fin :        *
 *  -1 : dernier element                      *
 *  -2 : avant dernier element                *
 *  ...                                       *
 **********************************************/
/* Nom : lcrzo_device_value_pos
   Description :
     Fournit le device d'un type donne, et situe a la position
     voulue
   Parametre(s) d'entree :
     type : type cherche (LCRZO_DEVICE_TYPE_ALL, ONLYVALIDIP, etc.)
     pos : position du device cherche (cf. le cadre ci-dessus pour
           connaitre les valeurs valides)
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     device : device numero 'pos' et de type 'type'
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_value_pos(lcrzo_int16 type,
			   lcrzo_int32 pos,
			   lcrzo_device device);
/* Nom : lcrzo_device_value_first
   Description :
     Fournit le premier device d'un type donne
   Parametre(s) d'entree :
     type : type cherche (LCRZO_DEVICE_TYPE_ALL, ONLYVALIDIP, etc.)
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     device : premier device de type 'type'
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_value_first(lcrzo_int16 type,
			     lcrzo_device device);
/* Nom : lcrzo_device_value_last
   Description :
     Fournit le dernier device d'un type donne
   Parametre(s) d'entree :
     type : type cherche (LCRZO_DEVICE_TYPE_ALL, ONLYVALIDIP, etc.)
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     device : dernier device de type 'type'
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_value_last(lcrzo_int16 type,
			    lcrzo_device device);
/* Nom : lcrzo_device_loop_range
   Description :
     Appelle une fonction pour les devices d'un type donne, et
     situe dans un intervalle donne.
   Parametre(s) d'entree :
     type : type cherche (LCRZO_DEVICE_TYPE_ALL, ONLYVALIDIP, etc.)
     startpos : position de debut de la boucle (cf. le cadre
                ci-dessus pour connaitre les valeurs valides)
     endpos : position de fin de la boucle (cf. le cadre
              ci-dessus pour connaitre les valeurs valides)
     pfunc : adresse memoire de la fonction appelee pour chaque
             device de l'intervalle [startpos->endpos]. Lors de
	     chaque appel, le premier parametre ('device') est
	     affecte avec le device courant, et le deuxieme
	     parametre ('pinfos') est affecte avec la valeur
	     de pinfos ci-dessous.
   Parametre(s) d'entree-sortie :
     pinfos : parametre optionnel (peut mettre NULL) qui sera
              passe en deuxieme parametre de pfunc. Il peut
	      servir a envoyer des informations a pfunc.
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_loop_range(lcrzo_int16 type,
			    lcrzo_int32 startpos,
			    lcrzo_int32 endpos,
			    int (*pfunc)(lcrzo_device device,
					 void *pinfos),
			    void *pinfos);
/* Nom : lcrzo_device_loop_all
   Description :
     Appelle une fonction pour tous les devices d'un type donne.
   Parametre(s) d'entree :
     type : type cherche (LCRZO_DEVICE_TYPE_ALL, ONLYVALIDIP, etc.)
     pfunc : adresse memoire de la fonction appelee pour chaque
             device. Lors de chaque appel, le premier parametre
	     ('device') est affecte avec le device courant, et
	     le deuxieme parametre ('pinfos') est affecte avec
	     la valeur de pinfos ci-dessous.
   Parametre(s) d'entree-sortie :
     pinfos : parametre optionnel (peut mettre NULL) qui sera
              passe en deuxieme parametre de pfunc. Il peut
	      servir a envoyer des informations a pfunc.
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_loop_all(lcrzo_int16 type,
			  int (*pfunc)(lcrzo_device device,
				       void *pinfos),
			  void *pinfos);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_device_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
     defaultdevice : lcrzo_device par defaut a utiliser si l'utilisateur
                     n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     device : lcrzo_device affecte par la valeur entree au clavier
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_init_stdin(lcrzo_conststring message,
			    lcrzo_constdevice defaultdevice,
			    lcrzo_device device);

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),