summaryrefslogtreecommitdiff
path: root/pkg/varlinkapi/util.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/varlinkapi/util.go')
-rw-r--r--pkg/varlinkapi/util.go15
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
+ }
+}