BIND 10 #805: Client side code to request new sockets (C++)
BIND 10 Development
do-not-reply at isc.org
Fri Dec 2 16:26:11 UTC 2011
#805: Client side code to request new sockets (C++)
-------------------------------------+-------------------------------------
Reporter: | Owner: vorner
stephen | Status: accepted
Type: | Milestone:
enhancement | Sprint-20111206
Priority: major | Resolution:
Component: | Sensitive: 0
Unclassified | Sub-Project: DNS
Keywords: | Estimated Difficulty: 5
Defect Severity: N/A | Total Hours: 0
Feature Depending on Ticket: |
Socket creator |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by vorner):
Some notes from some thinking & reading of docs (mostly so I don't forget
over the weekend).
We'll need to split this into two parts. One part will be responsible for
getting the socket from the boss. It'll need a ccsession and a socket to
ask for. It'll send the request over the ccsession, wait for answer,
connect to the unix socket there and pick up the file descriptor. The unix
socket must be kept open (an, hopefully, reused). This should be
relatively easy to write, but hard to test (no idea how to test this). The
ccsession has group_sendmsg and group_recvmsg for this. We may want to use
a batched mode, to send out all the requests at once and then pick them
all at once, to minimise the RTTs, but probably not now.
The other part is the dns service. It'd probably get the file descriptor
and protocol and will put it inside. It'll need the assign method most of
the asio sockets have.
Then the installAddresses function will connect these two together.
Also, we need a place to store the old sockets to drop them once they are
changed. Maybe we can first request all the new ones, then clean them from
the dns service, then put the new ones inside and last of all release the
old ones, as it is safer and we will get just dups of the original ones if
they are the same (with using the SAMEAPP share).
--
Ticket URL: <http://bind10.isc.org/ticket/805#comment:5>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list