diff options
Diffstat (limited to 'vendor/github.com/hashicorp/vault/api/logical.go')
-rw-r--r-- | vendor/github.com/hashicorp/vault/api/logical.go | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/vendor/github.com/hashicorp/vault/api/logical.go b/vendor/github.com/hashicorp/vault/api/logical.go index 9753e96..0d5e7d4 100644 --- a/vendor/github.com/hashicorp/vault/api/logical.go +++ b/vendor/github.com/hashicorp/vault/api/logical.go @@ -119,9 +119,13 @@ func (c *Logical) Delete(path string) (*Secret, error) { func (c *Logical) Unwrap(wrappingToken string) (*Secret, error) { var data map[string]interface{} - if wrappingToken != "" && wrappingToken != c.c.Token() { - data = map[string]interface{}{ - "token": wrappingToken, + if wrappingToken != "" { + if c.c.Token() == "" { + c.c.SetToken(wrappingToken) + } else if wrappingToken != c.c.Token() { + data = map[string]interface{}{ + "token": wrappingToken, + } } } @@ -134,8 +138,13 @@ func (c *Logical) Unwrap(wrappingToken string) (*Secret, error) { if resp != nil { defer resp.Body.Close() } - if err != nil && resp.StatusCode != 404 { - return nil, err + if err != nil { + if resp != nil && resp.StatusCode != 404 { + return nil, err + } + } + if resp == nil { + return nil, nil } switch resp.StatusCode { |