g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(time_t, uint32_t)>("setQueryTime", [](DNSDistProtoBufMessage& message, time_t sec, uint32_t usec) { message.setQueryTime(sec, usec); });
g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(uint8_t)>("setResponseCode", [](DNSDistProtoBufMessage& message, uint8_t rcode) { message.setResponseCode(rcode); });
g_lua.registerFunction<std::string(DNSDistProtoBufMessage::*)()>("toDebugString", [](const DNSDistProtoBufMessage& message) { return message.toDebugString(); });
- g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const ComboAddress&)>("setRequestor", [](DNSDistProtoBufMessage& message, const ComboAddress& addr) {
+ g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const ComboAddress&, boost::optional<uint16_t>)>("setRequestor", [](DNSDistProtoBufMessage& message, const ComboAddress& addr, boost::optional<uint16_t> port) {
message.setRequestor(addr);
+ if (port) {
+ message.setRequestorPort(*port);
+ }
});
- g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const std::string&)>("setRequestorFromString", [](DNSDistProtoBufMessage& message, const std::string& str) {
+ g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const std::string&, boost::optional<uint16_t>)>("setRequestorFromString", [](DNSDistProtoBufMessage& message, const std::string& str, boost::optional<uint16_t> port) {
message.setRequestor(str);
+ if (port) {
+ message.setRequestorPort(*port);
+ }
});
- g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const ComboAddress&)>("setResponder", [](DNSDistProtoBufMessage& message, const ComboAddress& addr) {
+ g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const ComboAddress&, boost::optional<uint16_t>)>("setResponder", [](DNSDistProtoBufMessage& message, const ComboAddress& addr, boost::optional<uint16_t> port) {
message.setResponder(addr);
+ if (port) {
+ message.setResponderPort(*port);
+ }
});
- g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const std::string&)>("setResponderFromString", [](DNSDistProtoBufMessage& message, const std::string& str) {
+ g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const std::string&, boost::optional<uint16_t>)>("setResponderFromString", [](DNSDistProtoBufMessage& message, const std::string& str, boost::optional<uint16_t> port) {
message.setResponder(str);
+ if (port) {
+ message.setResponderPort(*port);
+ }
});
g_lua.registerFunction<void(DNSDistProtoBufMessage::*)(const std::string&)>("setServerIdentity", [](DNSDistProtoBufMessage& message, const std::string& str) {
message.setServerIdentity(str);
:param int sec: Optional query time in seconds.
:param int usec: Optional query time in additional micro-seconds.
- .. method:: DNSDistProtoBufMessage:setRequestor(address)
+ .. method:: DNSDistProtoBufMessage:setRequestor(address [, port])
+
+ .. versionchanged:: 1.5.0
+ ``port`` optional parameter added.
Set the requestor's address.
:param ComboAddress address: The address to set to
+ :param int port: The requestor source port
+
+ .. method:: DNSDistProtoBufMessage:setRequestorFromString(address [, port])
- .. method:: DNSDistProtoBufMessage:setRequestorFromString(address)
+ .. versionchanged:: 1.5.0
+ ``port`` optional parameter added.
Set the requestor's address from a string.
:param string address: The address to set to
+ :param int port: The requestor source port
- .. method:: DNSDistProtoBufMessage:setResponder(address)
+ .. method:: DNSDistProtoBufMessage:setResponder(address [, port])
+
+ .. versionchanged:: 1.5.0
+ ``port`` optional parameter added.
Set the responder's address.
:param ComboAddress address: The address to set to
+ :param int port: The responder port
+
+ .. method:: DNSDistProtoBufMessage:setResponderFromString(address [, port])
- .. method:: DNSDistProtoBufMessage:setResponderFromString(address)
+ .. versionchanged:: 1.5.0
+ ``port`` optional parameter added.
Set the responder's address.
:param string address: The address to set to
+ :param int port: The responder port
.. method:: DNSDistProtoBufMessage:setResponseCode(rcode)
optional bytes deviceId = 17; // Device ID of the requestor (could be mac address IP address or e.g. IMEI)
optional bool newlyObservedDomain = 18; // True if the domain has not been seen before
optional string deviceName = 19; // Device name of the requestor
+ optional uint32 fromPort = 20; // Source port of the DNS query (client)
+ optional uint32 toPort = 21; // Destination port of the DNS query (server)
}
#endif /* HAVE_PROTOBUF */
}
+void DNSProtoBufMessage::setRequestorPort(uint16_t port)
+{
+#ifdef HAVE_PROTOBUF
+ d_message.set_fromport(port);
+#endif /* HAVE_PROTOBUF */
+}
+
void DNSProtoBufMessage::setRequestorId(const std::string& requestorId)
{
#ifdef HAVE_PROTOBUF
#endif /* HAVE_PROTOBUF */
}
+void DNSProtoBufMessage::setResponderPort(uint16_t port)
+{
+#ifdef HAVE_PROTOBUF
+ d_message.set_toport(port);
+#endif /* HAVE_PROTOBUF */
+}
+
void DNSProtoBufMessage::serialize(std::string& data) const
{
#ifdef HAVE_PROTOBUF
if (responder) {
setResponder(*responder);
+ setResponderPort(responder->getPort());
}
if (requestor) {
setRequestor(*requestor);
+ setRequestorPort(requestor->getPort());
}
}
void serialize(std::string& data) const;
void setRequestor(const std::string& requestor);
void setRequestor(const ComboAddress& requestor);
+ void setRequestorPort(uint16_t port);
void setResponder(const std::string& responder);
void setResponder(const ComboAddress& responder);
+ void setResponderPort(uint16_t port);
void setRequestorId(const std::string& requestorId);
void setDeviceId(const std::string& deviceId);
void setDeviceName(const std::string& deviceName);