/* 1*/ /********************************************************************************* /* 2*/ * /* 3*/ * INTERFACE_HANDLE クラス /* 4*/ * /* 5*/ * パケットフィルタリング用インタフェースハンドル /* 6*/ * /* 7*/ * /* 8*/ * パケット通過の原則禁止(ホワイトリスト方式)か原則許可(ブラックリスト方式) /* 9*/ * を設定する /*10*/ * フィルタディスクリプタを追加する時、ホワイトリスト方式ならフィルタルールに /*11*/ * 適したパケットは通過し、ブラックリスト方式ならパケットを破棄する /*12*/ * ハンドルはインバウンドにセットされるとインバウンド方向のパケットを対象とし、 /*13*/ * アウトバウンドにセットされるとアウトバウンド方向のパケットを対象とする /*14*/ * /*15*/ ********************************************************************************/ /*16*/ /*17*/ package WinPacketFiltering; /*18*/ /*19*/ import java.util.ArrayList; /*20*/ /*21*/ public class INTERFACE_HANDLE /*22*/ { /*23*/ public static final boolean BLACK_LIST = false; /*24*/ public static final boolean WHITE_LIST = true; /*25*/ public static final boolean ALL_PASS = BLACK_LIST; /*26*/ public static final boolean ALL_STOP = WHITE_LIST; /*27*/ /*28*/ private ArrayList list = new ArrayList(); /*29*/ public boolean rule; /*30*/ /*31*/ public INTERFACE_HANDLE(boolean type) /*32*/ { /*33*/ rule = type; /*34*/ } /*35*/ /*36*/ public INTERFACE_HANDLE() /*37*/ { /*38*/ } /*39*/ /*40*/ public void addFilter(FILTER_DESCRIPTOR filter) /*41*/ { /*42*/ list.add(filter); /*43*/ } /*44*/ /*45*/ public void addFilter(int index, FILTER_DESCRIPTOR filter) /*46*/ { /*47*/ list.add(index, filter); /*48*/ } /*49*/ /*50*/ public void removeFilter(int index) /*51*/ { /*52*/ list.remove(index); /*53*/ } /*54*/ /*55*/ public void changeFilter(int index, FILTER_DESCRIPTOR filter) /*56*/ { /*57*/ list.set(index, filter); /*58*/ } /*59*/ /*60*/ public int getSize() /*61*/ { /*62*/ return list.size(); /*63*/ } /*64*/ /*65*/ public FILTER_DESCRIPTOR getFilter(int index) /*66*/ { /*67*/ return (FILTER_DESCRIPTOR)list.get(index); /*68*/ } /*69*/ /*70*/ public void clear() /*71*/ { /*72*/ list.clear(); /*73*/ } /*74*/ /*75*/ public static INTERFACE_HANDLE makeBLACK_LIST() /*76*/ { /*77*/ return new INTERFACE_HANDLE(BLACK_LIST); /*78*/ } /*79*/ /*80*/ public static INTERFACE_HANDLE makeWHITE_LIST() /*81*/ { /*82*/ return new INTERFACE_HANDLE(WHITE_LIST); /*83*/ } /*84*/ }