あたらしものずきっ!

試してみたものとか、遊んでみたものを色々記してみます。

moxyがエラーで転けてた

最新のmoxyを実行すると転けるのでソース辿ってみたら、最後のcommitが原因だった。

diff --git a/lib/Moxy.pm b/lib/Moxy.pm
index e788ffa..adc1fb6 100644
--- a/lib/Moxy.pm
+++ b/lib/Moxy.pm
@@ -276,6 +276,7 @@ sub _make_response {
      (my $url = $req->uri->path_query) =~ s!^/!!;
 -    $url = uf_uristr($url);
 +    $url = uf_uristr( uri_unescape $url);

      if ($url) {
          # do proxy
          my $res = $self->_do_request(

URIuri_escapeされた文字列を使うと、正規表現に当てはまらずURIオブジェクトがうまく作成されないらしい。

今回の$req->uri->path_queryに含まれるurlはuri_escapeされていたため、escapeされた文字列をベースにuf_uristrが実行されてescape状態でのURLとなり、結果正規表現から外れたためにURIオブジェクトがうまく作成されず、hostが取得できていなかったためエラーとなっていた模様。