BIND 10 #1986: b10-auth shouldn't try to forward update requests without ddns running

BIND 10 Development do-not-reply at isc.org
Mon Jul 9 19:47:33 UTC 2012


#1986: b10-auth shouldn't try to forward update requests without ddns running
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  UnAssigned
  jinmei                             |                Status:  reviewing
                       Type:         |             Milestone:
  defect                             |  Sprint-20120717
                   Priority:         |            Resolution:
  medium                             |             Sensitive:  0
                  Component:         |           Sub-Project:  DNS
  b10-auth                           |  Estimated Difficulty:  5
                   Keywords:         |           Total Hours:  7
            Defect Severity:  N/A    |
Feature Depending on Ticket:  DDNS   |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by jelte):

 * owner:  jelte => UnAssigned
 * status:  assigned => reviewing
 * totalhours:  0 => 7


Comment:

 Ready for review.

 I went for the messaging approach:

 !AuthSrv[Impl] now has a few methods to initialize/reset, and unset the
 !SocketSessionForwarderHolder object, which are controlled through
 messages;

 - If b10-ddns starts, it sends a command to auth to create the forwarder
 object.
 - When b10-ddns stops (cleanly), it sends a command to stop.
 - both of these expect a success response; b10-ddns would currently be
 useless without auth to pass it messages anyway, and this way it can
 report a problem if setup fails for some reason.

 I left the initial construction of !AuthSrv intact; i.e. you still need to
 pass it the !SocketSessionForwarder; auth will delay creation that
 specialized holder class until it receives the first message there.

 Additionally, when b10-auth starts, it sends a message to b10-ddns as well
 ('auth_started'). It does *not* expect a response here. This is simply a
 hint that if b10-ddns exists, it should resend its request to forward
 updates. In this way, if b10-auth is restarted, the connection is
 automatically restored. (we may want to generalize this construct, but
 going all yagni I just made it to ddns directly for now).

 I did not include any arguments in these commands; the initialization and
 fixed locations are the same to keep the diff reasonable (it's still a bit
 big, but largely due to class fluff)


 Note: I don't think we have a ticket for it, but with this change the
 problem that the first UPDATE after b10-ddns is restarted fails is also
 fixed. And of course b10-auth now responds with NOTIMP if b10-ddns is not
 running (Subnote: if b10-ddns crashes uncleanly, during the restart or if
 it is not restarted at all, auth will still respond with SERVFAIL, but I
 think this is ok, since this really is an internal server failure
 scenario).

-- 
Ticket URL: <http://bind10.isc.org/ticket/1986#comment:10>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list