Revision 62112d18

b/net.c
812 812
    }
813 813

  
814 814
    nd->used = 1;
815
    if (vlan) {
816
        nd->vlan->nb_guest_devs++;
817
    }
818 815
    nb_nics++;
819 816

  
820 817
    return idx;
......
1278 1275
void net_check_clients(void)
1279 1276
{
1280 1277
    VLANState *vlan;
1278
    VLANClientState *vc;
1279
    int has_nic, has_host_dev;
1281 1280

  
1282 1281
    QTAILQ_FOREACH(vlan, &vlans, next) {
1283
        if (vlan->nb_guest_devs == 0 && vlan->nb_host_devs == 0)
1284
            continue;
1285
        if (vlan->nb_guest_devs == 0)
1282
        QTAILQ_FOREACH(vc, &vlan->clients, next) {
1283
            switch (vc->info->type) {
1284
            case NET_CLIENT_TYPE_NIC:
1285
                has_nic = 1;
1286
                break;
1287
            case NET_CLIENT_TYPE_SLIRP:
1288
            case NET_CLIENT_TYPE_TAP:
1289
            case NET_CLIENT_TYPE_SOCKET:
1290
            case NET_CLIENT_TYPE_VDE:
1291
                has_host_dev = 1;
1292
                break;
1293
            default: ;
1294
            }
1295
        }
1296
        if (has_host_dev && !has_nic)
1286 1297
            fprintf(stderr, "Warning: vlan %d with no nics\n", vlan->id);
1287
        if (vlan->nb_host_devs == 0)
1298
        if (has_nic && !has_host_dev)
1288 1299
            fprintf(stderr,
1289 1300
                    "Warning: vlan %d is not connected to host network\n",
1290 1301
                    vlan->id);
b/net.h
79 79
    int id;
80 80
    QTAILQ_HEAD(, VLANClientState) clients;
81 81
    QTAILQ_ENTRY(VLANState) next;
82
    unsigned int nb_guest_devs, nb_host_devs;
83 82
    NetQueue *send_queue;
84 83
};
85 84

  
b/net/slirp.c
738 738
        qemu_free(config);
739 739
    }
740 740

  
741
    if (ret != -1 && vlan) {
742
        vlan->nb_host_devs++;
743
    }
744

  
745 741
    qemu_free(vnet);
746 742

  
747 743
    return ret;
b/net/socket.c
569 569
        return -1;
570 570
    }
571 571

  
572
    if (vlan) {
573
        vlan->nb_host_devs++;
574
    }
575

  
576 572
    return 0;
577 573
}
b/net/tap-win32.c
714 714
        return -1;
715 715
    }
716 716

  
717
    if (vlan) {
718
        vlan->nb_host_devs++;
719
    }
720

  
721 717
    return 0;
722 718
}
723 719

  
b/net/tap.c
449 449
        }
450 450
    }
451 451

  
452
    if (vlan) {
453
        vlan->nb_host_devs++;
454
    }
455

  
456 452
    return 0;
457 453
}
b/net/vde.c
127 127
        return -1;
128 128
    }
129 129

  
130
    if (vlan) {
131
        vlan->nb_host_devs++;
132
    }
133

  
134 130
    return 0;
135 131
}

Also available in: Unified diff