sysdis-project/sgca/lib/network/common.h

74 lines
1.9 KiB
C

/**************************
* Network Common Depend. *
***************************
* Designed & Developed by *
* Adrien Marquès *
* <xdrm-brackets> *
***************************
* doowap31@gmail.com *
**************************/
#ifndef _LIB_NETWORK_COMMON_H_
#define _LIB_NETWORK_COMMON_H_
#include "../header.h"
#include <ifaddrs.h>
/* Retourne l'adresse IP du serveur (première interface excepté "lo")
*
* @history
* [0] Initialisation des variables
* [1] On récupère la liste des interfaces
* [2] Parcourt des interfaces
* 1. Si "lo" -> suivant
* 2. Si pas IPV4 -> suivant
* 3. Si ok, on retourne l'ip
* [3] Cas échéant -> aucun résultat (NULL)
*
*/
struct in_addr* GET_LOCAL_IP();
#define TIMEOUT_RECV 0x01
#define TIMEOUT_SEND 0x02
/* Définit un timeout pour une socket données
*
* @in
* pSocket<int> Socket à modifier
* pSec<const time_t> Valeur en seconde du timeout
* pFlags<char> Si RECV et/ou SEND
*
* @out
* -1 en cas d'échec
* 0 sinon
*
* @history
* [1] Initialisation des variables
* [2] On applique le timeout à la socket
*
*/
int setTimeout(int pSocket, const time_t pSec, char pFlags);
/* Vérifie si un groupe multicast est déja utilisé
*
* @in
* pAddr<in_addr_t> Adresse du groupe multicast
*
* @out
* -1 en cas d'échec
* 0 sinon
*
* @history
* [1] Initialisation des variables
* [2] On Vérifie si le groupe a du traffic
*
*/
int checkMulticastGroup(in_addr_t pAddr);
#endif