const uint16_t messageLen = getDNSPacketLength(message, this->data.size());
this->data.resize(messageLen);
if (tail.size() > 0) {
+ if (!hasRoomFor(tail.size())) {
+ return false;
+ }
this->data.insert(this->data.end(), tail.begin(), tail.end());
}
return true;
addAction("added.trailing.tests.powerdns.com.", LuaAction(replaceTrailingData))
function fillBuffer(dq)
- local available = 4096
+ local available = 4096 - dq.len
+ if dq.tcp then
+ available = 65535 - dq.len
+ end
local tail = string.rep("A", available)
local success = dq:setTrailingData(tail)
if not success then
addAction("max.trailing.tests.powerdns.com.", LuaAction(fillBuffer))
function exceedBuffer(dq)
- local available = dq.size - dq.len
+ local available = 4096 - dq.len
+ if dq.tcp then
+ available = 65535 - dq.len
+ end
local tail = string.rep("A", available + 1)
local success = dq:setTrailingData(tail)
if not success then