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);