Archive: 2021/02/06

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
*** 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$
というわけで、エラー-1を返すポイントが require の部分と判明。