Ralf Hildebrandt:
> * [email protected] <[email protected]>:
> > Hi all,
> >
> > Im having a strange issue on a new postfix setup, when I run the command
> > "postfix check" I receive the following error:
> >
> > postfix: fatal: /etc/postfix/main.cf, line 30: missing '=' after attribute
> > name: "This file lists only a subset"
>
> Line 30 seems to contain "This file lists only a subset"
This is an easy-to-fix mis-feature in the way line numbers are
reported in error messages.
postconf reports the last line number of multi-line text, for
example:
% cat -n /tmp/main.cf
1 some random free text
2 other free text
3 name = value
% postconf -c /tmp
postconf: fatal: /tmp/main.cf, line 2: missing '=' after attribute
name: "some random free text other free text"
The fix is easy: report both the first and last line number.
% postconf -c /tmp
postconf: fatal: /tmp/main.cf, line 1:2: missing '=' after
attribute name: "some random free text"
The error message is similar with commented text between bad and
good text:
% cat -n /tmp/main.cf
1 some random free text
2 # some commented-out text
3 name = value
% postconf -c /tmp
postconf: fatal: /tmp/main.cf, line 2: missing '=' after attribute
name: "some random free text"
To reproduce the original problem (postconf reports a line number for
an apparently "good" parameter setting) I have to indent the "good"
setting.
% cat -n /tmp/main.cf
1 some random text
2 # some comment text
3 name = value
% postconf -c /tmp
postconf: fatal: /tmp/main.cf, line 3: missing '=' after attribute
With the fix to show the first AND last line number in the error
message, this would be:
% bin/postconf -c /tmp
bin/postconf: fatal: /tmp/main.cf, line 1:3: missing '=' after
attribute name: "some random text name = value"
This points out where the problem begins (line 1) and also helps
the user figure out that line 3 is not what they intended.
Wietse