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
|
// 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 {
|
if err != nil {
|
||||||
restoreTerminal(oldTermState)
|
restoreTerminal(oldTermState)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -60,7 +60,10 @@ func (i *LibpodAPI) Attach(call iopodman.VarlinkCall, name string, detachKeys st
|
||||||
if !start && state != libpod.ContainerStateRunning {
|
if !start && state != libpod.ContainerStateRunning {
|
||||||
return call.ReplyErrorOccurred("container must be running to attach")
|
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)
|
reader, writer, _, pw, streams := setupStreams(call)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
|
|
|
@ -29,6 +29,12 @@ func (i *LibpodAPI) SendFile(call iopodman.VarlinkCall, ftype string, length int
|
||||||
return call.ReplyErrorOccurred(err.Error())
|
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)
|
writer := bufio.NewWriter(outputFile)
|
||||||
defer writer.Flush()
|
defer writer.Flush()
|
||||||
|
|
||||||
|
@ -60,9 +66,10 @@ func (i *LibpodAPI) ReceiveFile(call iopodman.VarlinkCall, filepath string, dele
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send the file length down to client
|
// Send the file length down to client
|
||||||
// Varlink connection upraded
|
// Varlink connection upgraded
|
||||||
if err = call.ReplyReceiveFile(fileInfo.Size()); err != nil {
|
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)
|
reader := bufio.NewReader(fs)
|
||||||
|
|
Loading…
Reference in New Issue