ONC+ 開発ガイド

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

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


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

/*
 * 著作権所有 (c) 1987 年、1991 年 サンマイクロシステムズ社
 */

/* 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;