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