procd: mdns: Support txt values with spaces
authorKarl Palsson <karlp@etactica.com>
Wed, 30 Aug 2017 17:44:00 +0000 (17:44 +0000)
committerJo-Philipp Wich <jo@mein.io>
Wed, 13 Dec 2017 15:29:22 +0000 (16:29 +0100)
Properly quote the arguments so that you can register a service with TXT
entries that contains spaces.

Example:
   procd_add_mdns myservice tcp 9999 "key=descriptive text field 1" \
         "another=something equally verbose"

Output before:
$ avahi-browse -r -v _myservice._tcp
_myservice._tcp      local
   hostname = [blah.local]
   address = [192.168.255.74]
   port = [9999]
   txt = ["verbose" "equally" "another=something" "1" "field" "text" "key=descriptive"]

Output now:
$ avahi-browse -r -v _myservice._tcp
_myservice._tcp      local
   hostname = [blah.local]
   address = [192.168.255.74]
   port = [9999]
   txt = ["another=something equally verbose" "key=descriptive text field 1"]

Signed-off-by: Karl Palsson <karlp@etactica.com>
(cherry picked from commit 7a423c389a162d2945901f0b5e7c604d36c64526)

package/system/procd/files/procd.sh

index 9fbf47e602af619007ec2b958f40b0b0ab29116f..e6ca8a6bc924fe65d8832f96a203d0a6edabf987 100644 (file)
@@ -423,7 +423,7 @@ procd_add_mdns_service() {
        json_add_int port "$port"
        [ -n "$1" ] && {
                json_add_array txt
-               for txt in $@; do json_add_string "" $txt; done
+               for txt in "$@"; do json_add_string "" "$txt"; done
                json_select ..
        }
        json_select ..
@@ -432,7 +432,7 @@ procd_add_mdns_service() {
 procd_add_mdns() {
        procd_open_data
        json_add_object "mdns"
-       procd_add_mdns_service $@
+       procd_add_mdns_service "$@"
        json_close_object
        procd_close_data
 }