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 ソケットに使用できます。

パラメーター

setsourcefilter および setipv4sourcefilter: の場合
項目 説明
ソケット 固有のソケット名を指定します。
インターフェース ローカル・インターフェースを指定します。 setipv4sourcefilter および getipv4sourcefilter の場合、インターフェースで構成されたアドレスを指定する必要があります。 ソース・フィルターの設定 および getsourcefilterの場合、インターフェース・インデックスによってインターフェースを指定する必要があります。
group マルチキャスト・グループを指定します。
fmode slist に含まれるエレメントを除外する (MCAST_EXCLUDE) か組み込む (MCAST_INCLUDE) かを指定します。
numsrc slist 内のエレメントの数を指定します。
slist 除外または組み込むエレメントのリストを指定します。
getsourcefilter および getipv4sourcefilter: の場合
項目 説明
ソケット 固有のソケット名を指定します。
インターフェース ローカル・インターフェースを指定します。 setipv4sourcefilter および getipv4sourcefilter の場合、インターフェースで構成されたアドレスを指定する必要があります。 ソース・フィルターの設定 および getsourcefilter の場合、インターフェース・インデックスによってインターフェースを指定する必要があります。
group マルチキャスト・グループを指定します。
fmode slist に戻されるエレメントのタイプへのポインターを指定します。 除外されたエレメントのリストの場合は MCAST_EXCLUDE、除外されたエレメントのリストの場合は MCAST_INCLUDE。
numsrc 入力時に、slist で返すことができるエレメントの数を指定します。 出力時に、このフィルターのソースの総数が含まれます。
slist 返されるエレメントのリストが含まれます。

戻り値

正常終了すると、サブルーチンは 0 を戻します。

失敗した場合、サブルーチンは-1を返し、それに応じてerrnoが設定される。