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