From 99508c9af75cf6317c84e2bce795ae8af78cec8e Mon Sep 17 00:00:00 2001 From: tidwall Date: Tue, 12 Feb 2019 06:58:43 -0700 Subject: [PATCH] Allow slashes for MQTT topic, fixes #410 --- internal/endpoint/endpoint.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/internal/endpoint/endpoint.go b/internal/endpoint/endpoint.go index d612ccfb..195d0e92 100644 --- a/internal/endpoint/endpoint.go +++ b/internal/endpoint/endpoint.go @@ -404,10 +404,15 @@ func parseEndpoint(s string) (Endpoint, error) { // Parsing MQTT queue name if len(sp) > 1 { var err error - endpoint.MQTT.QueueName, err = url.QueryUnescape(sp[1]) - if err != nil { - return endpoint, errors.New("invalid MQTT topic name") + var parts []string + for _, part := range sp[1:] { + part, err = url.QueryUnescape(part) + if err != nil { + return endpoint, errors.New("invalid MQTT topic name") + } + parts = append(parts, part) } + endpoint.MQTT.QueueName = strings.Join(parts, "/") } // Parsing additional params