mirror of https://github.com/containers/podman.git
Merge pull request #3224 from haraldh/varlink_upgrade
Fix for varlink upgrade connections
This commit is contained in:
commit
558ce8d141
|
@ -583,7 +583,15 @@ func (r *LocalRuntime) attach(ctx context.Context, stdin, stdout *os.File, cid s
|
|||
|
||||
}
|
||||
// TODO add detach keys support
|
||||
_, err = iopodman.Attach().Send(r.Conn, varlink.Upgrade, cid, detachKeys, start)
|
||||
reply, err := iopodman.Attach().Send(r.Conn, varlink.Upgrade, cid, detachKeys, start)
|
||||
if err != nil {
|
||||
restoreTerminal(oldTermState)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// See if the server accepts the upgraded connection or returns an error
|
||||
_, err = reply()
|
||||
|
||||
if err != nil {
|
||||
restoreTerminal(oldTermState)
|
||||
return nil, err
|
||||
|
|
|
@ -60,7 +60,10 @@ func (i *LibpodAPI) Attach(call iopodman.VarlinkCall, name string, detachKeys st
|
|||
if !start && state != libpod.ContainerStateRunning {
|
||||
return call.ReplyErrorOccurred("container must be running to attach")
|
||||
}
|
||||
call.Reply(nil)
|
||||
|
||||
// ACK the client upgrade request
|
||||
call.ReplyAttach()
|
||||
|
||||
reader, writer, _, pw, streams := setupStreams(call)
|
||||
|
||||
go func() {
|
||||
|
|
|
@ -29,6 +29,12 @@ func (i *LibpodAPI) SendFile(call iopodman.VarlinkCall, ftype string, length int
|
|||
return call.ReplyErrorOccurred(err.Error())
|
||||
}
|
||||
|
||||
// FIXME return parameter
|
||||
if err = call.ReplySendFile("FIXME_file_handle"); err != nil {
|
||||
// If an error occurs while sending the reply, return the error
|
||||
return err
|
||||
}
|
||||
|
||||
writer := bufio.NewWriter(outputFile)
|
||||
defer writer.Flush()
|
||||
|
||||
|
@ -60,9 +66,10 @@ func (i *LibpodAPI) ReceiveFile(call iopodman.VarlinkCall, filepath string, dele
|
|||
}
|
||||
|
||||
// Send the file length down to client
|
||||
// Varlink connection upraded
|
||||
// Varlink connection upgraded
|
||||
if err = call.ReplyReceiveFile(fileInfo.Size()); err != nil {
|
||||
return call.ReplyErrorOccurred(err.Error())
|
||||
// If an error occurs while sending the reply, return the error
|
||||
return err
|
||||
}
|
||||
|
||||
reader := bufio.NewReader(fs)
|
||||
|
|
Loading…
Reference in New Issue