>>>The above is caught by: >>> >>>/[0-9]{1,3}(\.|\-)[0-9]{1,3}(\.|\-)[0-9]{1,3}(\.|\-)[0-9]{1,3}.*\[/ >>>client_filter.class >>remove the \[ part. >>and BTW, here is a shorter version: >>/(\d{1,3}[-\.]){3}\d{1,3}/ class_client_filter >> >> >>>... but is not going to the restriction class as actual SMTP client. > >After looking at my and mouss' advice, I realize the expressions we suggested >will match _all_ clients since it matchs an IP address.
I've wanted to match patterns in the PTR domain name, that's why I anchored the expr with \[, to make sure I didn't match the domain.name[ip.ad.re.ss] >Probably not what you intend. of course not >Here's what I use to match IP-containing hostnames, should work for you. >/(\d{1,3}[-\.]){3}\d{1,3}[^.]+\.[^.]/ class_client_filter >ie. there must be a dot somewhere after the IP-containing section. OK, same idea as mine, but I say "there must be a [ after the PTR domain name", because without the post-PTR-domain-name anchor, it was matching/shunting all connections into the (suspect) client_filter.class instead of staying in the non_suspect (main) branch. I'm really struggling with this because without your domain.name\. or my \[, not all domain.name[a.b.c.d] get matched into the client_filter.class. iow, with the trailing anchor, So what string does the restriction class matching look at? 1. label.domain.tld[ip.ad.re.ss] 2. label.domain.tld ip.ad.re.ss 3. label.domain.tld 4. ip.ad.re.ss btw, the policy service passes the client_name and client_address as two separate values. Len