ONC+ 開発ガイド

スプレイパケットプログラム (rpcgen)

このツールの使用方法については、spray(1M) のマニュアルページの注を参照してください。


例 D–6 rpcgen プログラム: spray.x

/*
 * 著作権 (c) 1987、1991 Sun Microsystems, Inc.
 */
/* spray.x より*/

#ifdef RPC_HDR
#pragma ident "@(#)spray.h  1.2  91/09/17 SMI"
#endif

/*
 * サーバーにパケットをスプレイする。
 * ネットワークインタフェースのもろさのテストに使用します。
 */

const SPRAYMAX = 8845;	/* スプレイ可能な最大量 */

/*
 * 1970 年 1 月 1 日 0:00 からの GMT
 */
struct spraytimeval {
	unsigned int sec;
	unsigned int usec;
};

/*
 * スプレイ統計情報
 */
struct spraycumul {
	unsigned int counter;
	spraytimeval clock;
};

/*
 * スプレイデータ
 */
typedef opaque sprayarr<SPRAYMAX>;

program SPRAYPROG {
	version SPRAYVERS {
		/*
		 * 単にデータをスローし、カウンタを増分します。
		 * この呼び出しは終了しないため、クライアントは必ず
		 * タイムアウトとなります。
		 */
		void
		SPRAYPROC_SPRAY(sprayarr) = 1;

		/*
		 * カウンタ値と最終にクリアしたときからの経過時間を取得
		 */
		spraycumul	
		SPRAYPROC_GET(void) = 2;

		/*
		 * カウンタをクリアし、経過時間をリセット
		 */
		void
		SPRAYPROC_CLEAR(void) = 3;
	} = 1;
} = 100012;