A NOTE has been added to this issue.
======================================================================
http://www.dbmail.org/mantis/view.php?id=269
======================================================================
Reported By: robertcl
Assigned To: paul
======================================================================
Project: DBMail
Issue ID: 269
Category: IMAP daemon
Reproducibility: always
Severity: feature
Priority: normal
Status: acknowledged
======================================================================
Date Submitted: 14-Sep-05 11:45 CEST
Last Modified: 30-Apr-06 20:48 CEST
======================================================================
Summary: Bind to multiple IP addresses
Description:
The POP3, IMAP and LMTP daemons can be bound to all IP addresses ("*") or
to one. I have the need to bind them to more than one, but not all. For
example, both to localhost and to one (or two) external IP addresses. I
can't seem to be able to do so using dbmail 2.0.7. the BIND directive can
only take one IP address, and if several BIND directives are entered, only
the last one has any effect.
======================================================================
----------------------------------------------------------------------
paul - 01-Oct-05 11:00
----------------------------------------------------------------------
This should be trivial to do. I'll look into it.
----------------------------------------------------------------------
aaron - 30-Apr-06 01:42
----------------------------------------------------------------------
Requires a change to the 'ip' member of serverConfig_t in dbmailtypes.h,
and then the socket binding code to handle the new data type.
A GList of ip[IPLEN]'s could do the trick, rather uglily though. Together
with some code to split a comma separated list of IP's. A function to do
this for us would be good, because it has to be called from pop3d.c,
lmtpd.c, imapd.c, timsieved.c...
Better yet, why don't we share that repeated config code already!
This should be fun to do. I'll look into it ;-)
----------------------------------------------------------------------
paul - 30-Apr-06 08:49
----------------------------------------------------------------------
Aaron, afaik this is *not* a trivial thing to fix.
We now do a simple blocking listen on a single socket. This would have to
be replaced by binding and listening on a number of sockets using
something like select(2) in a non-blocking loop. That would be a very
interesting approach that will open the way for all kinds of new features
(and problems). Therefore, such a redesign of the server-core should be
done after we cut a 2_2_branch and re-open trunk for 2.3+
----------------------------------------------------------------------
aaron - 30-Apr-06 09:06
----------------------------------------------------------------------
Indeed, not trivial at all.
I'm about 1-2 hours away from a complete first pass, which I'll post as a
patch rather than committing directly. If it works without too much
trouble, let's run with it. If there's more than another day's work to
make it work, then we'll hold off till 2.3 development.
----------------------------------------------------------------------
aaron - 30-Apr-06 20:48
----------------------------------------------------------------------
The common server config portions are now in SVN. The patch implements the
config file reading of multiple IP's, binding to multiple sockets and
running select to see which one has received a connection.
Issue History
Date Modified Username Field Change
======================================================================
14-Sep-05 11:45 robertcl New Issue
01-Oct-05 11:00 paul Note Added: 0000932
01-Oct-05 11:01 paul Assigned To => paul
01-Oct-05 11:01 paul Status new => acknowledged
30-Apr-06 01:42 aaron Note Added: 0001128
30-Apr-06 08:49 paul Note Added: 0001130
30-Apr-06 09:06 aaron Note Added: 0001131
30-Apr-06 11:17 aaron File Added: dbmail-2.1-2006-04-30.diff
30-Apr-06 20:43 aaron File Added: dbmail-2.1-2006-04-30c.diff
30-Apr-06 20:44 aaron File Deleted: dbmail-2.1-2006-04-30.diff
30-Apr-06 20:48 aaron Note Added: 0001147
======================================================================