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