mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
qemu-char: Add reconnecting to client sockets
Adds a "reconnect" option to socket backends that gives a reconnect timeout. This only applies to client sockets. If the other end of a socket closes the connection, qemu will attempt to reconnect after the given number of seconds. Signed-off-by: Corey Minyard <cminyard@mvista.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
16cc4ffe34
commit
5dd1f02b4b
3 changed files with 96 additions and 17 deletions
|
@ -1930,9 +1930,9 @@ ETEXI
|
|||
|
||||
DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
|
||||
"-chardev null,id=id[,mux=on|off]\n"
|
||||
"-chardev socket,id=id[,host=host],port=port[,to=to][,ipv4][,ipv6][,nodelay]\n"
|
||||
" [,server][,nowait][,telnet][,mux=on|off] (tcp)\n"
|
||||
"-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix)\n"
|
||||
"-chardev socket,id=id[,host=host],port=port[,to=to][,ipv4][,ipv6][,nodelay][,reconnect=seconds]\n"
|
||||
" [,server][,nowait][,telnet][,reconnect=seconds][,mux=on|off] (tcp)\n"
|
||||
"-chardev socket,id=id,path=path[,server][,nowait][,telnet][,reconnect=seconds][,mux=on|off] (unix)\n"
|
||||
"-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
|
||||
" [,localport=localport][,ipv4][,ipv6][,mux=on|off]\n"
|
||||
"-chardev msmouse,id=id[,mux=on|off]\n"
|
||||
|
@ -2004,7 +2004,7 @@ Options to each backend are described below.
|
|||
A void device. This device will not emit any data, and will drop any data it
|
||||
receives. The null backend does not take any options.
|
||||
|
||||
@item -chardev socket ,id=@var{id} [@var{TCP options} or @var{unix options}] [,server] [,nowait] [,telnet]
|
||||
@item -chardev socket ,id=@var{id} [@var{TCP options} or @var{unix options}] [,server] [,nowait] [,telnet] [,reconnect=@var{seconds}]
|
||||
|
||||
Create a two-way stream socket, which can be either a TCP or a unix socket. A
|
||||
unix socket will be created if @option{path} is specified. Behaviour is
|
||||
|
@ -2018,6 +2018,10 @@ connect to a listening socket.
|
|||
@option{telnet} specifies that traffic on the socket should interpret telnet
|
||||
escape sequences.
|
||||
|
||||
@option{reconnect} sets the timeout for reconnecting on non-server sockets when
|
||||
the remote end goes away. qemu will delay this many seconds and then attempt
|
||||
to reconnect. Zero disables reconnecting, and is the default.
|
||||
|
||||
TCP and unix socket options are given below:
|
||||
|
||||
@table @option
|
||||
|
@ -2687,14 +2691,16 @@ telnet on port 5555 to access the QEMU port.
|
|||
localhost 5555
|
||||
@end table
|
||||
|
||||
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
|
||||
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay][,reconnect=@var{seconds}]
|
||||
The TCP Net Console has two modes of operation. It can send the serial
|
||||
I/O to a location or wait for a connection from a location. By default
|
||||
the TCP Net Console is sent to @var{host} at the @var{port}. If you use
|
||||
the @var{server} option QEMU will wait for a client socket application
|
||||
to connect to the port before continuing, unless the @code{nowait}
|
||||
option was specified. The @code{nodelay} option disables the Nagle buffering
|
||||
algorithm. If @var{host} is omitted, 0.0.0.0 is assumed. Only
|
||||
algorithm. The @code{reconnect} option only applies if @var{noserver} is
|
||||
set, if the connection goes down it will attempt to reconnect at the
|
||||
given interval. If @var{host} is omitted, 0.0.0.0 is assumed. Only
|
||||
one TCP connection at a time is accepted. You can use @code{telnet} to
|
||||
connect to the corresponding character device.
|
||||
@table @code
|
||||
|
@ -2715,7 +2721,7 @@ MAGIC_SYSRQ sequence if you use a telnet that supports sending the break
|
|||
sequence. Typically in unix telnet you do it with Control-] and then
|
||||
type "send break" followed by pressing the enter key.
|
||||
|
||||
@item unix:@var{path}[,server][,nowait]
|
||||
@item unix:@var{path}[,server][,nowait][,reconnect=@var{seconds}]
|
||||
A unix domain socket is used instead of a tcp socket. The option works the
|
||||
same as if you had specified @code{-serial tcp} except the unix domain socket
|
||||
@var{path} is used for connections.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue