qwik QuickHack 2
バグ発見。
すでにetoさんには改修案も含めて報告済みですが、同様の事象で悩む人がいたら、こういうこともありえますということで。
qwik-0.5.0のqwik-0.5.0/lib/qwik/site.rbにおいて、ML名を作成するメソッドmlを定義してたりします(site.rbの85行目あたりから)が、これ、このままだと
- サブドメインつきのMLを作った際にMLのアドレスが正しく作成されない
という問題があったりします。
例えば、
def ml
return "info@"+@sitename if external_site?
return @sitename+"@"+@hostname
end
- QuickMLサーバは mlwiki.example.com
- QuickMLサーバ上には、ML名@mlwiki.example.com という形式のMLを作成可能。具体的には、userml@mlwiki.example.com というMLを普通に作成可能。
- QuickMLサーバ上にはサブドメインつきのMLは作成可能。たとえばtalk@wikiwiki.mlwiki.example.comというアドレスを持つMLは作成OK。
という状態であるとして、QuickMLが認識するML名はそれぞれ
- userml
- talk@wikiwiki
というようになります。
ところが、メソッドmlがこういうつくりだと、このメソッドを使って作ったメールアドレスは
- userml@mlwiki.example.com
- talk@wikiwiki@mlwiki.example.com
というように作られてしまいます。
根本対処はよくわからんですが、さしあたりmlメソッドを以下のようにして対処。
具体的には、ML名に "@" が含まれる場合とそうでない場合で処理を分けてます。
def ml()
return "info@"+@sitename if external_site?
return @sitename+"."+@hostname if /^([0-9a-zA-Z-]+)@([0-9a-zA-Z_.-]+)?$/ =
~ @sitename
return @sitename+"@"+@hostname
end