procd: mdns: Support txt values with spaces

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>
This commit is contained in:
Karl Palsson 2017-08-30 17:44:00 +00:00 committed by John Crispin
parent 12930fc045
commit 7a423c389a

View 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
}