diff options
Diffstat (limited to 'pkg/varlinkapi/util.go')
-rw-r--r-- | pkg/varlinkapi/util.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/pkg/varlinkapi/util.go b/pkg/varlinkapi/util.go index 8716c963a..a9f1e20a1 100644 --- a/pkg/varlinkapi/util.go +++ b/pkg/varlinkapi/util.go @@ -13,6 +13,11 @@ import ( "github.com/containers/libpod/cmd/podman/varlink" "github.com/containers/libpod/libpod" "github.com/containers/storage/pkg/archive" + "github.com/pkg/errors" +) + +var ( + ErrUpgradedConnectionRequired = errors.New("peer must use upgraded connection for operation") ) // getContext returns a non-nil, empty context @@ -195,3 +200,13 @@ func makePsOpts(inOpts iopodman.PsOpts) shared.PsOptions { Sync: derefBool(inOpts.Sync), } } + +// RequiresUpgrade tests if varlink connection has been marked for upgrade. +func (v *VarlinkCall) RequiresUpgrade() error { + if v.WantsUpgrade() { + // A nil is sent to the peer as required by the varlink protocol. + return v.Reply(nil) + } else { + return ErrUpgradedConnectionRequired + } +} |