1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-20 02:21:48 +08:00

commands: Allow commands to output pointers to specified type

This commit is contained in:
Matt Bell
2015-01-06 11:35:19 -08:00
parent 77e5742ac7
commit 69999bd0a7

View File

@ -114,14 +114,17 @@ func (c *Command) Call(req Request) Response {
return res
}
actualType := reflect.ValueOf(output).Type()
actualType := reflect.TypeOf(output)
if actualType.Kind() == reflect.Ptr {
actualType = actualType.Elem()
}
// test if output is a channel
isChan := actualType.Kind() == reflect.Chan
// If the command specified an output type, ensure the actual value returned is of that type
if cmd.Type != nil && !isChan {
expectedType := reflect.ValueOf(cmd.Type).Type()
expectedType := reflect.TypeOf(cmd.Type)
if actualType != expectedType {
res.SetError(ErrIncorrectType, ErrNormal)