Viktor Dukhovni: > On Wed, Dec 10, 2014 at 01:26:42PM -0500, Wietse Venema wrote: > > > The anvil service stores information under a key of service:client. > > Apparently, your master.cf service is [2001:1470:ff80::25]:10088, > > and in this case the client is 2001:1470:ff80:88::80:c. > > What if Mark also had a service entry with no port?
That is not possible with TCP services. In the ``service:client'' counter ID, the service is the name in the master.cf first column. The anvil service does not require that this has a port (but TCP does). > Appending a raw IPv6 address to that would be ambiguous. Indeed > with "::" The smtpd(8) daemon knows nothing about how the anvil server administers its information. It just provides endpoint information to the anvil client. This is a good thing; the fewer assumptions the smtpd(8) daemon makes about the anvil(8) service, the better. The anvil client and server intentionally know nothing about protocols or ports. The client just combines some endpoint information into a hopefully-useful counter ID, and the server maintains counters. Again, the fewer assumptions the anvil client and server make about the endpoints, the better. Anvil has hard-coded counters for different SMTP protocol states but those counters could be replaced with named counters, where names are supplied by the smtpd(8) daemon. I am pretty religous about keeping different parts of Postfix dumb. If the syntax of the counter ID needs to change, then it must not become specific to IP addressess or ports. It should work with all supported client-server protocols (there is no standard API to identify the peer of a FIFO request). Wietse