Re: pf.conf macros not working - syntax error
- Reply: Stefan Haller : "Re: pf.conf macros not working - syntax error"
- In reply to: Stefan Haller : "Re: pf.conf macros not working - syntax error"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 26 May 2022 13:52:57 UTC
On Thu, May 26, 2022 at 4:40 PM Stefan Haller <stefan+freebsd@stha.de>
wrote:
> On Thu, May 26, 2022 at 04:32:01PM +0300, Odhiambo Washington wrote:
> > Why do you need so many " " ? Can you please remove the double quotes
> > inside the braces?
> > You already quoted the foo and bar so I see no need to re-quote them
> inside
> > the braces.
> >
> > [16:24 ~ ]$ pfctl -nvf file
> > foo = "10.0.0.0/24"
> > bar = "10.1.0.0/24"
> > baz = "{ $foo $bar }"
>
> Unfortunately, this does not work, because inside "..." macros are not
> expanded. The macro baz literally contains the string "{ $foo $bar }".
>
> If we later use the macro baz as in
>
> > baz = "$foo $bar"
> > block in from $baz to any
>
> We get the syntax error (rightfully) on the block line.
>
> This is also properly documented in pf.conf(5):
>
> > MACROS
> > Macros can be defined that will later be expanded in context. Macro
> > names must start with a letter, and may contain letters, digits and
> > underscores. Macro names may not be reserved words (for example
> pass,
> > in, out). Macros are not expanded inside quotes.
> >
> > For example,
> >
> > ext_if = "kue0"
> > all_ifs = "{" $ext_if lo0 "}"
> > pass out on $ext_if from any to any
> > pass in on $ext_if proto tcp from any to any port 25
>
In which case then it's a bug.
freebsd-pf@ would be the right platform to address that, I believe.
--
Best regards,
Odhiambo WASHINGTON,
Nairobi,KE
+254 7 3200 0004/+254 7 2274 3223
"Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-)