Fixed syscall.Signal not convertable by decoder

Signed-off-by: Andreas Schubert <schubter@gmail.com>
This commit is contained in:
Andreas Schubert
2020-02-19 15:04:24 +01:00
parent 1bed53b02c
commit 3aa32dff1d

View File

@ -3,8 +3,10 @@ package handlers
import (
"encoding/json"
"reflect"
"syscall"
"time"
"github.com/containers/libpod/pkg/util"
"github.com/gorilla/schema"
"github.com/sirupsen/logrus"
)
@ -17,6 +19,9 @@ func NewAPIDecoder() *schema.Decoder {
d.IgnoreUnknownKeys(true)
d.RegisterConverter(map[string][]string{}, convertUrlValuesString)
d.RegisterConverter(time.Time{}, convertTimeString)
var Signal syscall.Signal
d.RegisterConverter(Signal, convertSignal)
return d
}
@ -89,3 +94,11 @@ func convertTimeString(query string) reflect.Value {
func ParseDateTime(query string) time.Time {
return convertTimeString(query).Interface().(time.Time)
}
func convertSignal(query string) reflect.Value {
signal, err := util.ParseSignal(query)
if err != nil {
logrus.Infof("convertSignal: Failed to parse %s: %s", query, err.Error())
}
return reflect.ValueOf(signal)
}