Article delegate-ja/61 of [1-178] on the server localhost:7119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A60@delegate-ja.ML_>]
Newsgroups: mail-lists.delegate-ja

[DeleGate-Ja] Re: CFIスクリプトのMIME-Filterの動作
25 May 2007 01:40:07 GMT ysato@delegate.org (Yutaka Sato)
The DeleGate Project

In message <_A60@delegate-ja.ML_> on 05/25/07(02:44:44)
you Katsuaki Shimadera <pe4aabrv6-mxhgu4zjih3w.ml@delegate.org> wrote:
 |今回のこととは別件で、以前気になっていた現象を思い出しましたのでこの機会
 |にお聞きしておこうと思いました。
 |
 |CFIスクリプトの動作なのですが、「MIME-Filter」ではなく「Mime-Filter」と
 |書かないと動作しないという現象がありました。

おっと。たしかに。同じように、HTTPでの "CGI: ..." も使えなくなってますね。
これは、9.2.4-pre14 で「環境変数によるフィルタの選択」を可能にした際の
手抜き実装のせいでした。先頭2文字が大文字だと、環境変数としてマッチング
しようとしています(--;
同封のパッチのように修正します。
来週早々にリリース予定の 9.6.1 に適用します。


 |DeleGateとSpamAssassinを連携して、スパムフィルタ付きのPOP3 Proxyを構築し
 |ています。
 |設定は以下のような感じです。
 |spamc(SpamAssasssinのクライアント)に受信メールのヘッダとボディを通すよう
 |にCFIスクリプトを書いています。

なるほど。

 |ドキュメントの誤植かと思ったのですが、cfi.cを見ても「MIME-Filter」という
 |記述があったのでそこから調査していませんでした。
 |「Mime-Filter」と書けば動作するので放置していたのですがドキュメントと動
 |作が違うように思いますのでご確認いただけないでしょうか。
 |この現象は、SolarisでもWindowsでも同様でした。

異常がありましたら、その事実だけでもなるべく早く知らせていただけると
助かります。


 |なので、MacOSXはMacOS9の後継ということではなく新手のUnixということで注目
 |してます。

もうデビューからだいぶ立つので新手ということもないかとは思いますがw
あとはWindowsの遺産を抱えてる人達をどうやって救出するかだと思うのですが、
MacOSX上でVMWareで(ベータ版がとりあえず使えますし)Windowsが動かせますので、
いよいよ終りの始まりかなと期待しているのですがw

 |Cコンパイラ、ターミナル、エディタといったUnix的環境を整えてしまえばかな
 |り快適そうですね。
 |Mac Miniなら家計にも環境にも優しそうなので検討してみましょうかね。

MacMiniも3箱持ってます(^^) スペースにも優しいです。
昨年はじめにIntel版のを導入したのですが、秋ごろまで月イチでpanicで
おちてたりして不安だったのですが、その後の各種ファームウェアなどの更新
のおかげか、その問題もなくなりました。

                   9 9  
┌─┐┬┌──┬┐ //\^^ ( e ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_<   >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)

*** ../dist/src/delegate9.6.0/filters/cfi.c	Sat Feb 17 19:53:47 2007
--- filters/cfi.c	Fri May 25 10:16:16 2007
***************
*** 216,238 ****
--- 216,250 ----
  /*
   * matching with CGI environment as:
   *   REQUEST_METHOD: POST
   *   SERVER_NAME: xxx.yyy
   *   PATH_INFO: /path/of/dir/
   */
+ static int isCGIENV(PCStr(name)){
+ 	const char *np;
+ 	char ch;
+ 	int nus = 0;
+ 	for( np = name; ch = *np; np++ ){
+ 		if( ch == '_' ) nus++; else
+ 		if( !isupper(ch) )
+ 			return 0;
+ 	}
+ 	return nus;
+ }
  static int matchEnviron(PCStr(spec)){
  	const char *sp;
  	char sc;
  	const char *env;
  	CStr(name,128);
  	CStr(body,1024);
  
  	for( sp = spec; sc = *sp; ){
  		fieldScan(sp,name,body);
  		if( 'A' <= name[0] && name[0] <= 'Z' )
  		if( 'A' <= name[1] && name[1] <= 'Z' )
+ 		if( isCGIENV(name) )
  		{
  			env = getenv(name);
  			if( env == 0 )
  				env = "";
  			if( matchFields(spec,name,env) == 0 )
  				return 0;

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V