Revision 62112d18 net.c

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);

Also available in: Unified diff