summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'savevm.c')
-rw-r--r--savevm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/savevm.c b/savevm.c
index b7abf43ce..fd98ccd12 100644
--- a/savevm.c
+++ b/savevm.c
@@ -126,6 +126,8 @@ static int announce_self_create(uint8_t *buf,
static void qemu_announce_self_once(void *opaque)
{
int i, len;
+ VLANState *vlan;
+ VLANClientState *vc;
uint8_t buf[60];
static int count = SELF_ANNOUNCE_ROUNDS;
QEMUTimer *timer = *(QEMUTimer **)opaque;
@@ -134,7 +136,10 @@ static void qemu_announce_self_once(void *opaque)
if (!nd_table[i].used)
continue;
len = announce_self_create(buf, nd_table[i].macaddr);
- qemu_send_packet_raw(nd_table[i].vc, buf, len);
+ vlan = nd_table[i].vlan;
+ QTAILQ_FOREACH(vc, &vlan->clients, next) {
+ qemu_send_packet_raw(vc, buf, len);
+ }
}
if (--count) {
/* delay 50ms, 150ms, 250ms, ... */