Setsourcefilter, getsourcefilter, setipv4sourcefilter, Sous-routine getipv4sourcefilter

Objectif

Gestion des filtres de source de multidiffusion IP.

Bibliothèque

Bibliothèque (libc.a)

Syntaxe

#include <netinet/in.h> 
int setsourcefilter(int socket, uint32_t interface,
                        struct sockaddr *group, socklen_t grouplen,
                        uint32_t fmode, uint_t numsrc,
                        struct sockaddr_storage *slist);

   int getsourcefilter(int socket, uint32_t interface,
                        struct sockaddr *group, socklen_t grouplen,
                        uint32_t *fmode, uint_t *numsrc,
                        struct sockaddr_storage *slist);

    int setipv4sourcefilter(int socket, struct in_addr interface,
                            struct in_addr group, uint32_t fmode,
                            uint32_t numsrc, struct in_addr *slist);

    int getipv4sourcefilter(int socket, struct in_addr interface,
                            struct in_addr group, uint32_t *fmode,
                            uint32_t *numsrc, struct in_addr *slist);

Descriptif

Les sous-programmes Setsourcefilter et setipv4sourcefilter permettent à un socket de rejoindre un groupe de multidiffusion sur une interface tout en excluant les messages (fmode = MCAST_EXCLUDE) ou en acceptant les messages (fmode = MCAST_INCLUDE) d'un certain nombre d'expéditeurs répertoriés dans la table slist. Le nombre d'éléments dans la liste est spécifié par numsrc.

Les sous-routines Filtre getsourcefilter et getipv4sourcefilter fournissent des informations sur le filtre source existant pour un socket sur une interface donnée et pour un groupe de multidiffusion donné. Fmode, numsrc et slist sont des pointeurs vers des paramètres qui contiennent les informations renvoyées par le sous-programme. Fmode pointe vers le type de filtre renvoyé: MCAST_EXCLUDE ou MCAST_INCLUDE. En entrée, numsrc pointe vers le nombre maximal d'expéditeurs que l'application attend. S'il y a plus de sources que demandé, le sous-programme renvoie uniquement les premières sources numsrc dans slist et numsrc est défini pour indiquer le nombre total de sources. Slist contient la table des expéditeurs exclus ou inclus en fonction du type de filtre. La mémoire pointé par fmode, numsrc et slist doit être allouée par l'application. En particulier, slist doit pointer vers une zone de mémoire capable de contenir des éléments numsrc.

setipv4sourcefilter et getipv4sourcefilter ne peuvent être utilisés que pour les sockets AF_INET.

Setsourcefilter et Filtre getsourcefilter peuvent être utilisés pour les sockets AF_INET et AF_INET6 .

Paramètres

Pour setsourcefilter et setipv4sourcefilter:
Article Descriptif
socket Indique le nom de socket unique
interface Indique l'interface locale. Pour setipv4sourcefilter et getipv4sourcefilter , une adresse configurée sur l'interface doit être spécifiée. Pour Setsourcefilter et Filtre getsourcefilter, l'interface doit être spécifiée par son index d'interface.
group Indique le groupe de multidiffusion
fmode Indique si les éléments contenus dans la liste doivent être exclus (MCAST_EXCLUDE) ou inclus (MCAST_INCLUDE)
Numsrc Indique le nombre d'éléments dans la liste
Liste Indique la liste des éléments à exclure ou à inclure.
Pour getsourcefilter et getipv4sourcefilter:
Article Descriptif
socket Indique le nom de socket unique
interface Indique l'interface locale. Pour setipv4sourcefilter et getipv4sourcefilter , une adresse configurée sur l'interface doit être spécifiée. Pour Setsourcefilter et Filtre getsourcefilter , l'interface doit être spécifiée par son index d'interface.
group Indique le groupe de multidiffusion
fmode Spécifie un pointeur vers le type d'élément renvoyé dans slist. MCAST_EXCLUDE pour une liste d'éléments exclus MCAST_INCLUDE pour une liste d'éléments exclus.
Numsrc En entrée, indique le nombre d'éléments pouvant être renvoyés dans slist. Dans la sortie, contient le nombre total de sources pour ce filtre
Liste Contient la liste des éléments renvoyés.

Valeurs renvoyées

Une fois l'exécution terminée, le sous-programme renvoie 0.

En cas d'échec, la sous-routine renvoie -1 et errno est défini en conséquence.