dothebart: I took a look at your patches and had a couple of thoughts:
1. config.c_allow_spoofing really doesn't have anything to do with what
you are building. That config setting is for inbound SMTP. You can
basically consider your new code to be "always active" -- if a site
doesn't want it configured, they just don't enter any domains.
2. I believe the industry standard terminology for what you're trying to
do is "masquerade", not "spoof". So the new category would be "Masquerade
Domains" and the description would be "Domains as which users are allowed
to masquerade".
3. The new "hostalias_spoof" return code you added looks good.
4. I think that in serv_vcard.c, line 218, you don't have to refer to
config.c_allow_spoofing at all. You should just be able to do
if ( (IsDirectory(addr, 0)) || (!local_addrs_only) ) {
because, as I mentioned above, if the site operator doesn't want users to
be able to masquerade as other domains, he simply won't define any of
those domains.
5. I would *prefer* if you flipped around the new option to IsDirectory
.. instead of it being "local_addrs_only" it should be
"include_masquerade_domains" and you'd set it to 1 for that single case
where you use that option.
If I'm reading your code correctly, you're basically only including the
masquerade domains while running extract_inet_email_addrs(), in order to
treat those domains as the equivalent of directory domains for outgoing
messages without recognizing them for incoming messages. Is that the
case? If so, I think it will work.
6. The WebCit patches look ok.