pngcntr改修
Ubuntu 20.04 (Focal Fossa)アップデートの残課題、「CGIでも使えるPNG式画像カウンタ」(pngcntr)が動かない問題にようやく立ち向かうことに。
まずはコマンドライン実行でもどこでコケているのかわかるように $err を X-PNGCNT-Error: で出力するようにしてみたところ、エラー -1を返すポイントが3箇所あった…orz
yano@vps:/usr/lib/cgi-bin/pngcnt$ diff -bc ct_20161115.cgi ct_20210206.cgiというわけで、エラー-1を返すポイントが require の部分と判明。
*** ct_20161115.cgi 2016-11-15 10:53:50.382253440 +0900
--- ct_20210206.cgi 2021-02-06 11:01:00.000000000 +0900
***************
*** 233,238 ****
--- 233,239 ----
{
my($err) = @_;
+ print "X-PNGCNT-Error: $err \n";
$err = 4 if($err >= 100);
print "Content-Type: image/png\n\n";
***************
*** 558,569 ****
}
else
{
! return &Error(-1);
}
}
else
{
! return &Error(-1);
}
}
else # ログファイルが読み込めず。
--- 559,570 ----
}
else
{
! return &Error(-3);
}
}
else
{
! return &Error(-2);
}
}
else # ログファイルが読み込めず。
yano@vps:/usr/lib/cgi-bin/pngcnt$ ./ct_20210206.cgi
Set-Cookie: =1; expires=Sat, 06 Feb 2021 02:10:12 GMT;
X-PNGCNT-Error: -1
Content-Type: image/png
PNG
~~
yano@vps:/usr/lib/cgi-bin/pngcnt$