Hi,

> Allow a socket that connects to reconnect on a periodic basis if it
> fails to connect at startup or if the connection drops while in use.

> +    chr->backend = i;
> +    chr->recon_time = qemu_opt_get_number(opts, "reconnect", 0);
> +    if (chr->recon_time) {
> +        if (strcmp(qemu_opt_get(opts, "backend"), "socket") != 0) {
> +            g_free(chr);
> +            fprintf(stderr, "chardev: reconnect only supported on 
> sockets\n");
> +            return NULL;
> +        }

I think it would work *much* better to just add a "chr_reconnect"
function pointer to CharDriverState.  You don't need patch #1 then.
Also it avoids backend-specific bits in generic code.  Generic code just
checks if chr->chr_reconnect exists to figure whenever reconnect is
supported or not.  And the socket backend can set chr_reconnect for
client sockets only.

cheers,
  Gerd



Reply via email to