I am in the process of adding Tom's users/assign code to vpopmail. Currently I have modified the vdominfo program to pass its domain parameter directly to get_domain_entries(). It works for "" and for a real domain name, but not an alias domain name.
Vdominfo returned the following, except that I have removed the lines for uid, gid, dir and users in all but the first entry.
-------------------------------------------------------------------
vdominfo
domain: developersdesk.com uid: 77 gid: 72 dir: /mail/domains/developersdesk.com users: 0 realdomain: developersdesk.com
domain: developersdesk.net ... developersdesk.com Note: developersdesk.net is an alias for developersdesk.com
domain: developersdesk.org ... realdomain: developersdesk.com Note: developersdesk.org is an alias for developersdesk.com
domain: test.com ... realdomain: test.com -------------------------------------------------------------------
-------------------------------------------------------------------
vdominfo developersdesk.com
domain: developersdesk.com ... realdomain: developersdesk.com
domain: developersdesk.net ... realdomain: developersdesk.com Note: developersdesk.net is an alias for developersdesk.com
domain: developersdesk.org ... realdomain: developersdesk.com Note: developersdesk.org is an alias for developersdesk.com -------------------------------------------------------------------
-------------------------------------------------------------------
vdominfo developersdesk.net
could not open assign file -------------------------------------------------------------------
The 'could not open assign file' error is triggered by the fact that the first call to get_domain_entries( "developersdesk.net" ) returned NULL. I see two possible ways to solve this problem:
1: Return just the information about the desired domain alias: -------------------------------------------------------------------
vdominfo developersdesk.net
domain: developersdesk.net ... realdomain: developersdesk.com Note: developersdesk.net is an alias for developersdesk.com -------------------------------------------------------------------
2: Return a data block for the parent domain: -------------------------------------------------------------------
vdominfo developersdesk.net
domain: developersdesk.com ... realdomain: developersdesk.com
domain: developersdesk.net ... realdomain: developersdesk.com Note: developersdesk.net is an alias for developersdesk.com
domain: developersdesk.org ... realdomain: developersdesk.com Note: developersdesk.org is an alias for developersdesk.com -------------------------------------------------------------------
At first glance, 1 looks to be the right answer. After sleeping on it, I think I like 2 better because it is the real answer to the question of "what developersdesk.net really is." It is also easier to implement. I can just use vget_assign() in vdominfo to retrieve the real domain name before passing it to get_domain_entries(). 1 requires changing the code in get_domain_entries().
I'm going out on a limb here because of things that might already rely on the output of the program, but I would be quite happy if vdominfo worked like this:
-------------------------------------------------------------------
vdominfo developersdesk.com
domain: developersdesk.com uid: 77 gid: 72 dir: /mail/domains/developersdesk.com users: 0 alias: developersdesk.net alias: developersdesk.org -------------------------------------------------------------------
-------------------------------------------------------------------
vdominfo developersdesk.net
domain: developersdesk.com uid: 77 gid: 72 dir: /mail/domains/developersdesk.com users: 0 alias: developersdesk.net alias: developersdesk.org -------------------------------------------------------------------
Comments?