[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [RFC][PATCH v1 10/12] guest agent: qemu-ga daemon
From: |
Jes Sorensen |
Subject: |
[Qemu-devel] Re: [RFC][PATCH v1 10/12] guest agent: qemu-ga daemon |
Date: |
Fri, 01 Apr 2011 11:45:09 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110307 Fedora/3.1.9-0.39.b3pre.fc14 Thunderbird/3.1.9 |
On 03/25/11 20:47, Michael Roth wrote:
> This is the actual guest daemon, it listens for requests over a
> virtio-serial/isa-serial/unix socket channel and routes them through
> to dispatch routines, and writes the results back to the channel in
> a manner similar to Qmp.
>
> This is currently horribly broken, only the unix-listen channel method
> is working at the moment (likely due to mis-use of gio channel
> interfaces), and the code is in overall rough shape.
>
> Signed-off-by: Michael Roth <address@hidden>
> ---
> qemu-ga.c | 522
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 522 insertions(+), 0 deletions(-)
> create mode 100644 qemu-ga.c
>
> diff --git a/qemu-ga.c b/qemu-ga.c
> new file mode 100644
> index 0000000..435a1fc
> --- /dev/null
> +++ b/qemu-ga.c
> @@ -0,0 +1,522 @@
> +/*
> + * QEMU Guest Agent
> + *
> + * Copyright IBM Corp. 2011
> + *
> + * Authors:
> + * Adam Litke <address@hidden>
> + * Michael Roth <address@hidden>
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or later.
> + * See the COPYING file in the top-level directory.
> + */
> +#include <stdlib.h>
> +#include <stdio.h>
> +#include <stdbool.h>
> +#include <glib.h>
> +#include <gio/gio.h>
> +#include <getopt.h>
> +#include <termios.h>
> +#include "qemu_socket.h"
> +#include "json-streamer.h"
> +#include "json-parser.h"
> +#include "guest-agent.h"
> +
> +#define QGA_VERSION "1.0"
> +#define QGA_GUEST_PATH_VIRTIO_DEFAULT "/dev/virtio-ports/va"
> +#define QGA_PIDFILE_DEFAULT "/var/run/qemu-va.pid"
> +#define QGA_BAUDRATE_DEFAULT B38400 /* for isa-serial channels */
> +
> +bool verbose_enabled = false;
> +
> +typedef struct GAState {
> + bool active;
> + int session_id;
> + const char *proxy_path;
> + JSONMessageParser parser;
> + GMainLoop *main_loop;
> + guint conn_id;
> + GSocket *conn_sock;
> + GIOChannel *conn_channel;
> + guint listen_id;
> + GSocket *listen_sock;
> + GIOChannel *listen_channel;
> + const char *path;
> + const char *method;
> +} GAState;
> +
> +static void usage(const char *cmd)
> +{
> + printf(
> +"Usage: %s -c <channel_opts>\n"
> +"QEMU virtagent guest agent %s\n"
> +"\n"
> +" -c, --channel channel method: one of unix-connect, virtio-serial,
> or\n"
> +" isa-serial\n"
> +" -p, --path channel path\n"
> +" -v, --verbose display extra debugging information\n"
> +" -d, --daemonize become a daemon\n"
> +" -h, --help display this help and exit\n"
> +"\n"
> +"Report bugs to <address@hidden>\n"
> + , cmd, QGA_VERSION);
> +}
> +
> +static void conn_channel_close(GAState *s);
> +
> +static void become_daemon(void)
> +{
> + pid_t pid, sid;
> + int pidfd;
> + char *pidstr;
> +
> + pid = fork();
> + if (pid < 0)
> + exit(EXIT_FAILURE);
There's a pile of missing braces in this file - please go through it and
fix them before the next version.
Cheers,
Jes
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] Re: [RFC][PATCH v1 10/12] guest agent: qemu-ga daemon,
Jes Sorensen <=