diff options
author | Paul Holzinger <pholzing@redhat.com> | 2022-04-28 13:56:45 +0200 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2022-04-29 14:06:54 +0200 |
commit | e6557bf0a291f4462081e50461b1b9b8715d1da3 (patch) | |
tree | ef2c4160a81d264ca0d1255715f9c668c853c581 /pkg/api/handlers/decoder.go | |
parent | a48c37df3765f42c779ac0674eb021f955ed9c07 (diff) | |
download | podman-e6557bf0a291f4462081e50461b1b9b8715d1da3.tar.gz podman-e6557bf0a291f4462081e50461b1b9b8715d1da3.tar.bz2 podman-e6557bf0a291f4462081e50461b1b9b8715d1da3.zip |
pkg/api: do not register decoder in endpoint handler
Since the decoder is shared registering the decoder inside a single
endpoint will also register it for all others. Also the problem with
that is the it will register it everytime this endpoint is called which
is wrong.
Instead we should register it once like the other custom decoder
functions.
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'pkg/api/handlers/decoder.go')
-rw-r--r-- | pkg/api/handlers/decoder.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/pkg/api/handlers/decoder.go b/pkg/api/handlers/decoder.go index 5e8f12960..fbe03d97b 100644 --- a/pkg/api/handlers/decoder.go +++ b/pkg/api/handlers/decoder.go @@ -21,6 +21,7 @@ func NewAPIDecoder() *schema.Decoder { d.RegisterConverter(map[string][]string{}, convertURLValuesString) d.RegisterConverter(time.Time{}, convertTimeString) d.RegisterConverter(define.ContainerStatus(0), convertContainerStatusString) + d.RegisterConverter(map[string]string{}, convertStringMap) var Signal syscall.Signal d.RegisterConverter(Signal, convertSignal) @@ -48,6 +49,15 @@ func convertURLValuesString(query string) reflect.Value { return reflect.ValueOf(f) } +func convertStringMap(query string) reflect.Value { + res := make(map[string]string) + err := json.Unmarshal([]byte(query), &res) + if err != nil { + logrus.Infof("convertStringMap: Failed to Unmarshal %s: %s", query, err.Error()) + } + return reflect.ValueOf(res) +} + func convertContainerStatusString(query string) reflect.Value { result, err := define.StringToContainerStatus(query) if err != nil { |