From: Michal 'vorner' Vaner Date: Mon, 4 Feb 2013 16:06:22 +0000 (+0100) Subject: [1924] Use the constants in the process_command_send X-Git-Tag: bind10-1.1.0beta1-release~104^2~22^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8adef6491ebef3e81833f3d23b334c5b4fc1f72c;p=thirdparty%2Fkea.git [1924] Use the constants in the process_command_send --- diff --git a/src/bin/msgq/msgq.py.in b/src/bin/msgq/msgq.py.in index ea2e2d7c7e..8517877786 100755 --- a/src/bin/msgq/msgq.py.in +++ b/src/bin/msgq/msgq.py.in @@ -33,6 +33,7 @@ import threading import isc.config.ccsession from optparse import OptionParser, OptionValueError import isc.util.process +from isc.util.common_defs import * import isc.log from isc.log_messages.msgq_messages import * @@ -527,14 +528,14 @@ class MsgQ: self.sendmsg(sock, { "type" : "getlname" }, { "lname" : lname }) def process_command_send(self, sock, routing, data): - group = routing["group"] - instance = routing["instance"] - to = routing["to"] + group = routing[CC_HEADER_GROUP] + instance = routing[CC_HEADER_INSTANCE] + to = routing[CC_HEADER_TO] if group == None or instance == None: # FIXME: Should we log them instead? return # ignore invalid packets entirely - if to == "*": + if to == CC_TO_WILDCARD: sockets = self.subs.find(group, instance) else: if to in self.lnames: @@ -551,7 +552,8 @@ class MsgQ: if sockets: for socket in sockets: self.send_prepared_msg(socket, msg) - elif routing.get("wants_reply") and "reply" not in routing: + elif routing.get(CC_HEADER_WANT_ANSWER) and \ + CC_HEADER_REPLY not in routing: # We have no recipients. But the sender insists on a reply # (and the message isn't a reply itself). We need to send # an error to satisfy the senders hurger for response, since @@ -567,9 +569,9 @@ class MsgQ: # want to mangle it for the caller, so we get a copy. A shallow # one should be enough, we modify the dict only. header = routing.copy() - header["reply"] = routing["seq"] - header["from"] = 'msgq' # Dummy lname not assigned to clients - header["to"] = routing["from"] + header[CC_HEADER_REPLY] = routing[CC_HEADER_SEQ] + header[CC_HEADER_FROM] = "msgq" # Dummy lname not assigned to clients + header[CC_HEADER_TO] = routing[CC_HEADER_FROM] # We keep the seq as it is. We don't need to track the message # and provided the sender always uses a new one, it won't know # we're cheating, since we won't send it two same either. diff --git a/src/bin/msgq/tests/msgq_test.py b/src/bin/msgq/tests/msgq_test.py index 1748c176a1..f3ffcf97e6 100644 --- a/src/bin/msgq/tests/msgq_test.py +++ b/src/bin/msgq/tests/msgq_test.py @@ -192,11 +192,11 @@ class MsgQTest(unittest.TestCase): self.__msgq.process_command_send(sender, routing, data) self.assertEqual([], sent_messages) # It should act the same if we explicitly say we do not want replies. - routing["wants_reply"] = False + routing["want_answer"] = False self.__msgq.process_command_send(sender, routing, data) self.assertEqual([], sent_messages) # Ask for errors if it can't be delivered. - routing["wants_reply"] = True + routing["want_answer"] = True self.__msgq.process_command_send(sender, routing, data) self.assertEqual(1, len(sent_messages)) self.assertEqual(1, sent_messages[0][0]) @@ -207,14 +207,14 @@ class MsgQTest(unittest.TestCase): 'seq': 42, 'from': 'msgq', 'to': 'sender', - 'wants_reply': True + 'want_answer': True }, {'result': [-1, "No such recipient"]}), self.parse_msg(sent_messages[0][1])) # the reply header too. sent_messages = [] # If the message is a reply itself, we never generate the errors, even # if they can't be delivered. This is partly because the answer reuses - # the old header (which would then inherit the wants_reply flag) and + # the old header (which would then inherit the want_answer flag) and # partly we want to avoid loops of errors that can't be delivered. # If a reply can't be delivered, the sender can't do much anyway even # if notified. @@ -243,7 +243,7 @@ class MsgQTest(unittest.TestCase): 'seq': 42, 'from': 'msgq', 'to': 'sender', - 'wants_reply': True + 'want_answer': True }, {'result': [-1, "No such recipient"]}), self.parse_msg(sent_messages[0][1])) sent_messages = [] diff --git a/src/lib/util/common_defs.cc b/src/lib/util/common_defs.cc index 3e9b16f71f..b8f952931c 100644 --- a/src/lib/util/common_defs.cc +++ b/src/lib/util/common_defs.cc @@ -31,8 +31,12 @@ const char* CC_HEADER_GROUP = "group"; const char* CC_HEADER_INSTANCE = "instance"; const char* CC_HEADER_SEQ = "seq"; const char* CC_HEADER_WANT_ANSWER = "want_answer"; +const char* CC_HEADER_REPLY = "reply"; // The commands in the "type" header const char* CC_COMMAND_SEND = "send"; +// The wildcards of some headers +const char* CC_TO_WILDCARD = "*"; +const char* CC_INSTANCE_WILDCARD = "*"; } }