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
| 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. |
| 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.