Revision 8d6249a7 net.c

b/net.c
544 544
    slirp_input(buf, size);
545 545
}
546 546

  
547
static int slirp_in_use;
548

  
549
static void net_slirp_cleanup(VLANClientState *vc)
550
{
551
    slirp_in_use = 0;
552
}
553

  
547 554
static int net_slirp_init(VLANState *vlan, const char *model, const char *name)
548 555
{
556
    if (slirp_in_use) {
557
        /* slirp only supports a single instance so far */
558
        return -1;
559
    }
549 560
    if (!slirp_inited) {
550 561
        slirp_inited = 1;
551 562
        slirp_init(slirp_restrict, slirp_ip);
552 563
    }
553 564
    slirp_vc = qemu_new_vlan_client(vlan, model, name,
554
                                    slirp_receive, NULL, NULL, NULL);
565
                                    slirp_receive, NULL, net_slirp_cleanup, NULL);
555 566
    slirp_vc->info_str[0] = '\0';
567
    slirp_in_use = 1;
556 568
    return 0;
557 569
}
558 570

  

Also available in: Unified diff