KUROKI Masayuki
m_kurok****@mac*****
2003年 8月 12日 (火) 00:34:04 JST
黒木です。 >0 のリンクがある場合に落ちる問題への対応です。 原因は、上記のリンクがある場合に作成される NSURL は cmonar:0 なのですが これを2ch CGIアクセス可能なリンクかどうかを判定する時に、 handler_ = [CMRHostHandler hostHandlerForURL:link]; 中で、各ハンドラでhost名チェックをします。ところが、上記リンクではホスト名 が空なのでstrstr( host, ".2ch.net")などの比較をするときに、ぬるぽアクセスで 落ちてしまっています。 対応ですが、ちょっと原始的になってしまうのですが、各CMRHostHandlerの +canHandlerURL:にガードをかけることで対応可能です。 こんなことなら、takanori_isさんが帰省する前にcommitできるようにして もらえばよかったです。tsawada2さ〜ん。読んでますか? 修正してCVS版だけでも対応済みにしておいてもらえませんか? CMRHostHandler.m @implementation CMR2channelHandler : CMRHostHandler + (BOOL) canHandleURL : (NSURL *) anURL { char *hostName_ = [[anURL host] UTF8String]; if ( nil == hostName_ ) return NO; return can_readcgi( hostName_ ); } [略] @implementation CMRShitarabaHandler : CMRHostHandler + (BOOL) canHandleURL : (NSURL *) anURL { char *hostName_ = [[anURL host] UTF8String]; if ( nil == hostName_ ) return NO; return is_shitaraba( hostName_ ); } [略] @implementation CMRMachibbsaHandler : CMRHostHandler + (BOOL) canHandleURL : (NSURL *) anURL { char *hostName_ = [[anURL host] UTF8String]; if ( nil == hostName_ ) return NO; return is_machi( hostName_ ); } [略]