Pngcntr

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 の部分と判明。