clamav-wrapper.app v5.0.0 for Mac OS X

clamav-wrapper.app v5.0.0 for Mac OS X 10.5.8, 10.6.4 and later
作者の人柄が反映されていない!?ビジネスレベルの確実性とルック&フィールを兼ね備えた逸品です
open source (GPL)のanti-virus toolkit:Clam AntiVirus を用いて手軽にウィルススキャンを実施するためのステータスメニューバー滞在型アプリです。アプリが使用するClamAVプロダクツ(事前に要インストール)はclamd, clamdscan, freshclamで、clamdはGroupName:_clamav, UserName:rootにてlaunchdデーモンとして運用します。アプリをインストールする場所は/Applications等ではなく、ClamAVのetcディレクトリ固定です。また、Finderツールバーの「情報を見る」ボタンを模倣した、本アプリをキックするためのAppleScriptもオマケで付いています。Servicesにも対応しています ("Scan in clamav-wrapper") 。あと、本アプリを使用するFirefox 用アドオン(for Mac OS X 10.5.8 Leopard, Mac OS X 10.6.4 Snow Leopard and later)とThunderbirdの添付ファイル用ヘルパーアプリ(for Mac OS X 10.6.4 Snow Leopard and later)も同封されてます。


2011.1.30

  • clamav-wrapper.app v5.0.0 for Mac OS X 10.5.8, 10.6.4 and later
    • 微調整。スキャン前のfreshclam実行時、フットポイントが爆増する局面において必死usleep()をかまして回避していたのですが、普通に!?AutoreleasePoolに捕まるようにしました。
	NSFileHandle *fh = [pOutput fileHandleForReading];
	NSData *theData;
	while ( (theData = [fh availableData]) && [theData length] ) {
		NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
		[self putResultString:theData];
		[pool drain];
	}

上記で使用メモリ爆増に襲われるような場合は、以下のようにCore Foundation的スマート!?なポインタ的なミュータブルにつっこめばきれいに回収される

	NSFileHandle *fh = [pOutput fileHandleForReading];
	NSMutableData *muData =[NSMutableData data];
	do {
		NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
		[muData setData:[fh availableData]];
		[self putResultString:muData];
		[pool drain];
	} while ([muData length] > 0);

ちなみに下記でもOKでした

	NSFileHandle *fh = [pOutput fileHandleForReading];
	BOOL ret;
	do {
		NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
		ret = [self putResultString:[fh availableData]];
		[pool drain];
	} while (ret);