The following issue has been RESOLVED. 
====================================================================== 
http://www.dbmail.org/mantis/view.php?id=269 
====================================================================== 
Reported By:                robertcl
Assigned To:                aaron
====================================================================== 
Project:                    DBMail
Issue ID:                   269
Category:                   IMAP daemon
Reproducibility:            always
Severity:                   feature
Priority:                   normal
Status:                     resolved
target:                     2.1.8 
Resolution:                 fixed
Fixed in Version:           2.1.8
====================================================================== 
Date Submitted:             14-Sep-05 11:45 CEST
Last Modified:              04-Oct-06 20:49 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. 

---------------------------------------------------------------------- 
 aaron - 04-Oct-06 20:49  
---------------------------------------------------------------------- 
Changes can be found at svn diff -r 2295:2296 

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                          
04-Oct-06 09:58 aaron          File Added: dbmail-2.1-select-2006-10-03.diff    
               
04-Oct-06 09:59 aaron          Status                   acknowledged => assigned
04-Oct-06 09:59 aaron          Assigned To              paul => aaron       
04-Oct-06 20:49 aaron          target                    => 2.1.8           
04-Oct-06 20:49 aaron          Status                   assigned => resolved
04-Oct-06 20:49 aaron          Fixed in Version          => 2.1.8           
04-Oct-06 20:49 aaron          Resolution               open => fixed       
04-Oct-06 20:49 aaron          Note Added: 0001456                          
======================================================================

Reply via email to