I just committed my changes to move the $transaction->relaying() flag to $connection->relay_client, as well as the split check_relay/rcpt_ok plugins. I decided to leave the plugins named as I originally discussed.

Thinking it over, I'd actually prefer to just go ahead and deprecate the $transaction->relaying() flag entirely, rather than try and paper over the issue. There is no core code (lib's or plugins) which reference the old flag any more.

What the code does now is that if $connection->relay_client is set when the transaction object is created, the the old relaying() flag is set. However, if there are any plugins which set that flag after the transaction has started, the matching relay_client() will not be set. Because of the way the objects are created, the transaction object doesn't have any way (that I could see) to retrieve the connection object that it is associated with. Only the parent Qpsmtpd object knows about both child objects (would it be worthwhile to have a reference to the connection object in the transaction object?).

Does anyone have a strong opinion?

John

Reply via email to