diff options
Diffstat (limited to 'vendor/github.com/rootless-containers/rootlesskit/pkg')
-rw-r--r-- | vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/child/child.go | 7 | ||||
-rw-r--r-- | vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/msg/msg.go | 11 |
2 files changed, 16 insertions, 2 deletions
diff --git a/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/child/child.go b/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/child/child.go index 5477dda51..7cce235a6 100644 --- a/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/child/child.go +++ b/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/child/child.go @@ -124,7 +124,12 @@ func (d *childDriver) handleConnectRequest(c *net.UnixConn, req *msg.Request) er if err != nil { return err } - err = unix.Sendmsg(int(f.Fd()), []byte("dummy"), oob, nil, 0) + for { + err = unix.Sendmsg(int(f.Fd()), []byte("dummy"), oob, nil, 0) + if err != unix.EINTR { + break + } + } return err } diff --git a/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/msg/msg.go b/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/msg/msg.go index c603f473a..e95b62191 100644 --- a/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/msg/msg.go +++ b/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/msg/msg.go @@ -62,7 +62,16 @@ func ConnectToChild(c *net.UnixConn, spec port.Spec) (int, error) { } oobSpace := unix.CmsgSpace(4) oob := make([]byte, oobSpace) - _, oobN, _, _, err := c.ReadMsgUnix(nil, oob) + var ( + oobN int + err error + ) + for { + _, oobN, _, _, err = c.ReadMsgUnix(nil, oob) + if err != unix.EINTR { + break + } + } if err != nil { return 0, err } |