Merge pull request #206 from liubin/fix/205-fix-wait-parameter-for-client-socket

qemu: only set wait parameter for server mode socket based char device
This commit is contained in:
Julio Montes
2021-11-18 09:56:43 -06:00
committed by GitHub

View File

@@ -1518,20 +1518,26 @@ func (q *QMP) ExecuteGetFD(ctx context.Context, fdname string, fd *os.File) erro
// id is an identifier for the device, path specifies the local path of the unix socket,
// wait is to block waiting for a client to connect, server specifies that the socket is a listening socket.
func (q *QMP) ExecuteCharDevUnixSocketAdd(ctx context.Context, id, path string, wait, server bool) error {
data := map[string]interface{}{
"server": server,
"addr": map[string]interface{}{
"type": "unix",
"data": map[string]interface{}{
"path": path,
},
},
}
// wait is only valid for server mode
if server {
data["wait"] = wait
}
args := map[string]interface{}{
"id": id,
"backend": map[string]interface{}{
"type": "socket",
"data": map[string]interface{}{
"wait": wait,
"server": server,
"addr": map[string]interface{}{
"type": "unix",
"data": map[string]interface{}{
"path": path,
},
},
},
"data": data,
},
}
return q.executeCommand(ctx, "chardev-add", args, nil)