[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Make net_client_init() consume slirp_configs even o
From: |
Mark McLoughlin |
Subject: |
[Qemu-devel] [PATCH] Make net_client_init() consume slirp_configs even on error |
Date: |
Tue, 6 Oct 2009 12:16:56 +0100 |
From: Markus Armbruster <address@hidden>
net_slirp_init() walks slirp_configs, and stops when it encounters one
that doesn't work. Instead of consuming slirp_configs members there,
consume them in the sole caller. This makes sure all are consumed.
Before, the tail starting with the non-working one was left in place,
where it made the next net_slirp_init() fail again.
Signed-off-by: Markus Armbruster <address@hidden>
Signed-off-by: Mark McLoughlin <address@hidden>
---
net.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/net.c b/net.c
index 0e5afa9..a2507f9 100644
--- a/net.c
+++ b/net.c
@@ -761,6 +761,7 @@ static int net_slirp_init(Monitor *mon, VLANState *vlan,
const char *model,
uint32_t addr;
int shift;
char *end;
+ struct slirp_config_str *config;
if (!tftp_export) {
tftp_export = legacy_tftp_prefix;
@@ -845,9 +846,7 @@ static int net_slirp_init(Monitor *mon, VLANState *vlan,
const char *model,
tftp_export, bootfile, dhcp, dns, s);
QTAILQ_INSERT_TAIL(&slirp_stacks, s, entry);
- while (slirp_configs) {
- struct slirp_config_str *config = slirp_configs;
-
+ for (config = slirp_configs; config; config = config->next) {
if (config->flags & SLIRP_CFG_HOSTFWD) {
slirp_hostfwd(s, mon, config->str,
config->flags & SLIRP_CFG_LEGACY);
@@ -855,8 +854,6 @@ static int net_slirp_init(Monitor *mon, VLANState *vlan,
const char *model,
slirp_guestfwd(s, mon, config->str,
config->flags & SLIRP_CFG_LEGACY);
}
- slirp_configs = config->next;
- qemu_free(config);
}
#ifndef _WIN32
if (!smb_export) {
@@ -2593,6 +2590,11 @@ int net_client_init(Monitor *mon, const char *device,
const char *p)
ret = net_slirp_init(mon, vlan, device, name, restricted, vnet, vhost,
vhostname, tftp_export, bootfile, vdhcp_start,
vnamesrv, smb_export, vsmbsrv);
+ while (slirp_configs) {
+ config = slirp_configs;
+ slirp_configs = config->next;
+ qemu_free(config);
+ }
qemu_free(vnet);
qemu_free(vhost);
qemu_free(vhostname);
--
1.6.2.5
- [Qemu-devel] [PATCH] Don't assign a static string to NICInfo::model, (continued)
- [Qemu-devel] [PATCH] Don't assign a static string to NICInfo::model, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Make NICInfo string fields non-const, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Register rtc options for -set, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Use qemu_strdup() for NICInfo string fields, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Use qemu_strdup() for VLANClientState string fields, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Make qemu_opts_parse() handle empty strings, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Move memset() from net_client_uninit() to net_client_init(), Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Don't exit() in config_error(), Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Add qemu_opts_validate() for post parsing validation, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Make net_client_init() consume slirp_configs even on error,
Mark McLoughlin <=
- [Qemu-devel] [PATCH] Remove bogus error message from qemu_opts_set(), Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Remove double error message in qemu_option_set(), Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Drop config_error(), use qemu_error() instead, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Final net cleanup after conversion to QemuOpts, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Remove double error message for -device option parsing, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Never overwrite a QemuOpt, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Port -net vde to QemuOpts, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Port -net tap to QemuOpts, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Port usb net to QemuOpts, Mark McLoughlin, 2009/10/06
- [Qemu-devel] [PATCH] Add qemu_net_opts, Mark McLoughlin, 2009/10/06