mirror of
https://github.com/yoboujon/tsock.git
synced 2025-06-08 05:50:50 +02:00
112 lines
No EOL
3.3 KiB
C
112 lines
No EOL
3.3 KiB
C
#ifndef HEADER_IPTABLE
|
|
#define HEADER_IPTABLE
|
|
|
|
#include "tsock.h"
|
|
|
|
/**
|
|
* @brief Test la liste ipTable
|
|
*
|
|
* @return int 0-> si réussite.
|
|
*/
|
|
int iptableTest();
|
|
|
|
/**
|
|
* @struct ipTable
|
|
* @brief definition de la structure d'une table d'IP
|
|
*
|
|
* @var ipTable::ipAddress
|
|
* Adresse IP sous forme de char*
|
|
* @var ipTable::idEmetteur
|
|
* Numéro de l'émetteur associé à l'ip
|
|
*/
|
|
typedef struct{
|
|
char *ipAddress;
|
|
int tailleipAddress;
|
|
int idEmetteur;
|
|
}ipTable;
|
|
|
|
/**
|
|
* @struct elementipTable
|
|
* @brief Element dans une liste de table d'IP
|
|
*
|
|
* @var elementipTable::actualIpTable
|
|
* Pointeur vers la table d'IP de l'élément
|
|
* @var elementipTable::suiv
|
|
* Pointeur vers le prochain élément
|
|
*/
|
|
struct elementIpTable{
|
|
ipTable * actualIpTable;
|
|
struct elementIpTable * suiv;
|
|
};
|
|
|
|
/**
|
|
* @struct listeIpTable
|
|
* @brief Liste d'éléments table d'IP
|
|
*
|
|
* @var listeIpTable::debut
|
|
* Pointeur vers le premier élément
|
|
* @var listeIpTable::courant
|
|
* Pointeur vers l'élément sélectionné
|
|
* @var listeIpTable::fin
|
|
* Pointeur vers l'élément final
|
|
*/
|
|
struct listeIpTable{
|
|
struct elementIpTable * debut;
|
|
struct elementIpTable * courant;
|
|
struct elementIpTable * fin;
|
|
int taille;
|
|
};
|
|
|
|
/**
|
|
* @brief Permet l'initialisation d'une struture ipTable avec une IP et un idEmetteur donné.
|
|
*
|
|
* @param ipAddress char*, Adresse IP associée à l'émétteur.
|
|
* @param idEmetteur int, numéro de l'émetteur du message.
|
|
* @return ipTable* table d'IP initialisé avec les paramètres donnés.
|
|
*/
|
|
ipTable * creeIpTable(char *ipAddress,int idEmetteur);
|
|
|
|
/**
|
|
* @brief Initialise la structure elementIpTable avec un malloc.
|
|
* L'élément crée renvoi vers une adresse NULL.
|
|
*
|
|
* @return struct elementIpTable* element initialisé
|
|
*/
|
|
struct elementIpTable * initElementIpTable(void);
|
|
|
|
/**
|
|
* @brief Initialise plusieurs éléments (debut,courant et fin) avec initElementIpTable().
|
|
*
|
|
* @return struct listeIpTable* liste de tables d'IP NULL mais alloué.
|
|
*/
|
|
struct listeIpTable * initListeIpTable(void);
|
|
|
|
/**
|
|
* @brief Ajoute un tableau d'IP dans la liste de des tableaux d'IP :
|
|
* Mets à jour le pointeur courant ainsi que debut.
|
|
*
|
|
* @param listeActuel struct listeIpTable *,la liste à modifier.
|
|
* @param lipTable ipTable*, pointeur sur le tableau d'IP à ajouter à la liste.
|
|
*/
|
|
void ajoutListeIpTable(struct listeIpTable * listeActuel,ipTable * lipTable);
|
|
|
|
/**
|
|
* @brief Affiche l'intégralité des IP/Id Emetteurs.
|
|
*
|
|
* @param listeActuel struct listeIpTable, liste à afficher.
|
|
*/
|
|
void afficheListeIpTable(struct listeIpTable listeActuel);
|
|
|
|
/**
|
|
* @brief Permet de vérifier si une Adresse IP existe déjà dans une liste d'IP donnée
|
|
* Ne modifie pas le pointeur courant mais parcours toute la liste. Modifie le boolRetour pour savoir si c'est vrai ou non.
|
|
* Renvoi l'élément correspondant si c'est le cas. Renvoi un élément vide sinon.
|
|
*
|
|
* @param listeActuel struct listeBAL, la liste à vérifier
|
|
* @param idEmetteur char*, Adresse IP à vérifier.
|
|
* @param boolRetour bool*, 1->Element retourné trouvé dans la liste, 0->Element NULL, non trouvé dans la liste
|
|
* @return struct elementIpTable*, element trouvé si dans la liste, NULL sinon.
|
|
*/
|
|
struct elementIpTable * existInListIP(struct listeIpTable listeActuel, char* ipAdress, bool * boolRetour);
|
|
|
|
#endif |