setsourcefilter、getsourcefilter、 setipv4sourcefilter、 getipv4sourcefilter サブルーチン
目的
IP マルチキャスト・ソース・フィルターを管理します。
ライブラリー
ライブラリー (libc.a)
構文
#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); 説明
ソース・フィルターの設定 および setipv4sourcefilter サブルーチンを使用すると、ソケットは、slist 表にリストされている多数の送信側から (fmode = MCAST_EXCLUDE) メッセージを除外したり (fmode = MCAST_INCLUDE) メッセージを受け取ったりしながら、インターフェース上のマルチキャスト・グループに結合することができます。 slist 内のエレメントの数は、numsrc によって指定されます。
getsourcefilter および getipv4sourcefilter サブルーチンは、特定のインターフェース上のソケットおよび特定のマルチキャスト・グループの既存のソース・フィルターに関する情報を提供します。 fmode、numsrc、および slist は、サブルーチンによって戻される情報を含むパラメーターを指すポインターです。 fmode は、返されるフィルターのタイプ (MCAST_EXCLUDE または MCAST_INCLUDE) を指します。 入力では、numsrc はアプリケーションが予期している送信者の最大数を指します。 要求された数より多くのソースがある場合、サブルーチンは slist 内の最初の numsrc 個のソースのみを返し、ソースの総数を示すように numsrc 個が設定されます。 slist には、フィルターのタイプに応じて、除外された送信者または組み込まれた送信者のテーブルが含まれます。 fmode、numsrc、および slist によって示されるメモリーは、アプリケーションによって割り振られる必要があります。 特に、slist は、numsrc 要素を含むことができるメモリー・ゾーンを指す必要があります。
setipv4sourcefilter および getipv4sourcefilter は、AF_INET ソケットにのみ使用できます。
ソース・フィルターの設定 および getsourcefilter は、AF_INET および AF_INET6 ソケットに使用できます。
パラメーター
| 項目 | 説明 |
|---|---|
| ソケット | 固有のソケット名を指定します。 |
| インターフェース | ローカル・インターフェースを指定します。 setipv4sourcefilter および getipv4sourcefilter の場合、インターフェースで構成されたアドレスを指定する必要があります。 ソース・フィルターの設定 および getsourcefilterの場合、インターフェース・インデックスによってインターフェースを指定する必要があります。 |
| group | マルチキャスト・グループを指定します。 |
| fmode | slist に含まれるエレメントを除外する (MCAST_EXCLUDE) か組み込む (MCAST_INCLUDE) かを指定します。 |
| numsrc | slist 内のエレメントの数を指定します。 |
| slist | 除外または組み込むエレメントのリストを指定します。 |
| 項目 | 説明 |
|---|---|
| ソケット | 固有のソケット名を指定します。 |
| インターフェース | ローカル・インターフェースを指定します。 setipv4sourcefilter および getipv4sourcefilter の場合、インターフェースで構成されたアドレスを指定する必要があります。 ソース・フィルターの設定 および getsourcefilter の場合、インターフェース・インデックスによってインターフェースを指定する必要があります。 |
| group | マルチキャスト・グループを指定します。 |
| fmode | slist に戻されるエレメントのタイプへのポインターを指定します。 除外されたエレメントのリストの場合は MCAST_EXCLUDE、除外されたエレメントのリストの場合は MCAST_INCLUDE。 |
| numsrc | 入力時に、slist で返すことができるエレメントの数を指定します。 出力時に、このフィルターのソースの総数が含まれます。 |
| slist | 返されるエレメントのリストが含まれます。 |
戻り値
正常終了すると、サブルーチンは 0 を戻します。
失敗した場合、サブルーチンは-1を返し、それに応じてerrnoが設定される。