procd: mdns: Support txt values with spaces
authorKarl Palsson <karlp@etactica.com>
Wed, 30 Aug 2017 17:44:00 +0000 (17:44 +0000)
committerJohn Crispin <john@phrozen.org>
Fri, 1 Sep 2017 06:58:09 +0000 (08:58 +0200)
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>
package/system/procd/files/procd.sh

index 00d754d16ff0321ab46519a5f566fd966f69b508..c23c37b83f00d790a97d38c53ea9a39e0cfcc504 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
 }