OpenWrt の Squid パッケージは、Squid コマンドを起動する前に UCI 設定を拒否することがあります。したがって、init スクリプトの一般的な “validation failed” だけでは squid.conf を編集する十分な理由になりません。

その前に出るフィールド単位のメッセージを読み、インストール済みパッケージの検証規則と照合します。たとえば起動実装は http_port をポート型として宣言します。数字が正しく見えても末尾の空白でその検査が失敗することがあります。検証結果が失敗すると、コマンド登録の前にコールバックが停止します。

実際に squid という名前のセクションでは、狭い値を調べます。

uci get squid.squid.http_port

インストールに存在するセクション名を使用します。パッケージのソースは通常 /etc/config/squid です。メッセージがない場合は、存在して読めることを確認します。別のリリースでは異なるフィールドが公開されることがあります。

UCI 検証の後は、Squid に渡されるネイティブファイルを追います。ラッパーは明示的なファイルを選ぶことも、対応する入力から生成することもあります。使われていないファイルを編集しても生成結果は変わりません。

ネイティブ構文、ヘルパー、権限、リスナーの検査はその後に来ます。「UCI が http_port を拒否した」か「Squid が選択されたネイティブ設定を拒否した」のどちらかを証拠とともに報告します。最初のエラーを黙らせるためだけにパッケージ設定を削除すると、ラッパーが役割を果たせなくなることがあります。

関連記事