Hello Giannis, On Thu, Jul 06, 2023 at 01:54:36PM +0300, Kapetanakis Giannis wrote: </snip> > > Hi sashan, > > Your logic seems fine to me. Indeed it acts like they are persistent. They > don't have the p flag. > > # pfctl -a 'relayd/dir-imap' -sT -vg > --a-r-- dir-imap?????????????? relayd/dir-imap > # pfctl -a 'relayd/dir-sieve' -sT -vg > --a-r-- dir-sieve???????????? relayd/dir-sieve > # pfctl -a 'relayd/dir-lmtp' -sT -vg > --a-r-- dir-lmtp?????????????? relayd/dir-lmtp > > note that in pfe_filter.c in init_tables() is see > > 73: tables[i].pfrt_flags |= PFR_TFLAG_PERSIST; > > Giannis > ps. I've send a diff about statistics in tech@ > It does more than just checking table->up status, but your approach is much > better. >
thanks for checking. so this needs fix. the persistent flag (PFR_TFLAG_PERSIST) gets lost if ioctl() loads rules before table. pfctl(8) also sets PFR_TFLAG_PERSIST on all tables it creates/loads. But the flag gets lost if table is created by rule beforehand. See my earlier email. this will need some more though. I'm not sure if it is a bug in pf(4) itself or feature of pf(4). If it is pf(4) feature, then fix needs to go to relayd. thank you for all your help here. regards sashan