[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/7] net: Prevent multiple slirp instances
From: |
Mark McLoughlin |
Subject: |
Re: [Qemu-devel] [PATCH 4/7] net: Prevent multiple slirp instances |
Date: |
Wed, 15 Apr 2009 14:09:52 +0100 |
On Tue, 2009-04-14 at 19:29 +0200, Jan Kiszka wrote:
> The slirp stack is full of global variables which prevents instantiating
> it more than once. Catch this during net_slirp_init to prevent more harm
> later on.
>
> Signed-off-by: Jan Kiszka <address@hidden>
> ---
>
> net.c | 14 +++++++++++++-
> 1 files changed, 13 insertions(+), 1 deletions(-)
>
> diff --git a/net.c b/net.c
> index 787f249..0486f7c 100644
> --- a/net.c
> +++ b/net.c
> @@ -519,15 +519,27 @@ static void slirp_receive(void *opaque, const uint8_t
> *buf, int size)
> slirp_input(buf, size);
> }
>
> +static int slirp_in_use;
> +
> +static void net_slirp_cleanup(void *opaque)
> +{
> + slirp_in_use = 0;
> +}
> +
> static int net_slirp_init(VLANState *vlan, const char *model, const char
> *name)
> {
> + if (slirp_in_use) {
> + /* slirp only supports a single instance so far */
> + return -1;
> + }
> if (!slirp_inited) {
> slirp_inited = 1;
> slirp_init(slirp_restrict, slirp_ip);
> }
> slirp_vc = qemu_new_vlan_client(vlan, model, name,
> - slirp_receive, NULL, NULL, NULL);
> + slirp_receive, NULL, net_slirp_cleanup,
> NULL);
> slirp_vc->info_str[0] = '\0';
> + slirp_in_use = 1;
> return 0;
Yeah, it's ugly but probably the best we can do right now.
Acked-by: Mark McLoughlin <address@hidden>
Cheers,
Mark.
- [Qemu-devel] [PATCH 0/7] Various small networking improvements, Jan Kiszka, 2009/04/14
- [Qemu-devel] [PATCH 4/7] net: Prevent multiple slirp instances, Jan Kiszka, 2009/04/14
- Re: [Qemu-devel] [PATCH 4/7] net: Prevent multiple slirp instances,
Mark McLoughlin <=
- [Qemu-devel] [PATCH 1/7] net: Fix -net socket,listen, Jan Kiszka, 2009/04/14
- [Qemu-devel] [PATCH 2/7] net: Add VLAN client cleanup handler, Jan Kiszka, 2009/04/14
- [Qemu-devel] Re: [PATCH 2/7] net: Add VLAN client cleanup handler, Jan Kiszka, 2009/04/15
- [Qemu-devel] Re: [PATCH 2/7] net: Add VLAN client cleanup handler, Mark McLoughlin, 2009/04/15
- [Qemu-devel] Re: [PATCH 2/7] net: Add VLAN client cleanup handler, Jan Kiszka, 2009/04/15