Allow the server to listen on multiple TCP sockets
--------------------------------------------------
Key: CORE-5219
URL: http://tracker.firebirdsql.org/browse/CORE-5219
Project: Firebird Core
Issue Type: Improvement
Affects Versions: 4.0 Initial
Environment: any
Reporter: Michal Kubeček
Priority: Minor
Currently, Firebird server can use only one listening TCP socket which can
listen either on zero address (and accept connections to any of host's
addresses) or on address specified by RemoteBindAddress directive. It cannot
listen on a subset of addresses which becomes restricting with IPv6 support as
we cannot let the server listen on e.g. :: and 127.0.0.1 without letting it
accept connections to any address. I played with it a bit while working on IPv6
support and I came with two approaches:
1. Create a separate thread for each listening socket. The advantage is that it
doesn't require many changes to the code; I had better overall feeling about
the diff. However, I wasn't able to make it work; there were some conflicts
which I didn't have time to fully debug at the time, I suspect the AsyncPacket
handling but there might be more.
2. Put multiple sockets (or socket chains) into the same poll()/select() in one
thread. I was able to work this one out to a patch that passed my tests but the
code is a bit ugly and I'm not quite sure about its efficiency.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel