From 334ca21012e958a09e6d3407f55a4f0fee5d0bb5 Mon Sep 17 00:00:00 2001 From: Jonathan Bagg Date: Thu, 17 Feb 2022 20:41:07 -0500 Subject: [PATCH] AvahiClient - Fix parsing of TXT records if value contains '=' TXT record values can also contain equals signs. The current implementation would consider any record where the value contains an equals sign as an empty record. --- avahiclient.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/avahiclient.cpp b/avahiclient.cpp index 81d5436..4e20035 100644 --- a/avahiclient.cpp +++ b/avahiclient.cpp @@ -153,11 +153,11 @@ public: while (txt) // get txt records { QByteArray avahiText((const char *)txt->text, txt->size); - QList pair = avahiText.split('='); - if (pair.size() == 2) - zcs->m_txt[pair.at(0)] = pair.at(1); + const ssize_t pos = avahiText.indexOf('='); + if (pos < 0) + zcs->m_txt[avahiText] = ""; else - zcs->m_txt[pair.at(0)] = ""; + zcs->m_txt[avahiText.left(pos)] = avahiText.mid(pos + 1, -1); txt = txt->next; } ref->pub->services.insert(key, zcs);