BIND 10 #999: Integrate ACLs into b10-resolver
BIND 10 Development
do-not-reply at isc.org
Mon Jun 20 18:44:30 UTC 2011
#999: Integrate ACLs into b10-resolver
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
vorner | Status: accepted
Type: task | Milestone:
Priority: major | Sprint-20110628
Component: | Resolution:
Unclassified | Sensitive: 0
Keywords: | Sub-Project: DNS
Defect Severity: N/A | Estimated Difficulty: 4.0
Feature Depending on Ticket: | Total Hours: 0
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:5 vorner]:
> You might want to have a look at #769, it should contain the loader and
convenience typedefs and the Context. It is not reviewed yet, but might be
more useful than just guessing.
Thanks for the pointer. Some quick comments about the Packet structure:
I've been thinking about the same concept for #999 and tentatively
defined a class named "Client":
{{{
class Client {
public:
explicit Client(const isc::asiolink::IOMessage& request_message);
~Client();
const isc::asiolink::IOEndpoint& getRequestSourceEndpoint() const;
const isc::acl::IPAddress& getRequestSourceIPAddress() const;
...
};
}}}
It's not a very strong opinion, but I suspect "Packet" sounds a bit
too generic in that it could be either incoming/outgoing
request/response, while this class seems to focus on the incoming
side, e.g., from this:
{{{
/// \brief The local IP address (ours, of the interface where we
received).
asiolink::IOAddress local_address;
}}}
Being generic is not necessarily bad, especially if we also want to
use it in outgoing context, but in that case the entire interface
should be able to represent the concept reasonably.
I (again tentatively) define the "Client" class in lib/server_common.
I'm not sure how many things that depend on specific contexts would be
reasonably defined under the acl namespace. Also, the concept of
"Packet" itself is not necessarily tied to access control. By
defining Client, I'd envision we'll eventually use it as a higher
level interface between ASIO and actual (auth/resolver) server
classes, that is, instead of getting a set of io_message,
query_message, ... etc. in Resolver::processMessage(), we'd pass a
"Client" object that encloses these types of parameters.
--
Ticket URL: <http://bind10.isc.org/ticket/999#comment:6>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list