aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2007-07-25 14:05:06 +0000
committerMartin Willi <martin@strongswan.org>2007-07-25 14:05:06 +0000
commit53b0f3c3b3a9ec5c3059d86657444700297e56ae (patch)
tree9347f0dc454020992d4a67f14ea6e78d706fadea
parentf85fdda83598cdfde287ee0acb5581d9cb2f261b (diff)
downloadstrongswan-53b0f3c3b3a9ec5c3059d86657444700297e56ae.tar.bz2
strongswan-53b0f3c3b3a9ec5c3059d86657444700297e56ae.tar.xz
fixed mconsole when using multiple guests
fixed interface enumeration bug
-rw-r--r--src/dumm/iface.c3
-rw-r--r--src/dumm/main.c1
-rw-r--r--src/dumm/mconsole.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/src/dumm/iface.c b/src/dumm/iface.c
index 9e690d488..2bc8a3ec8 100644
--- a/src/dumm/iface.c
+++ b/src/dumm/iface.c
@@ -89,7 +89,8 @@ static char* create_tap(private_iface_t *this)
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
if (ioctl(this->tap, TUNSETIFF, &ifr) < 0 ||
- ioctl(this->tap, TUNSETPERSIST, 1) < 0)
+ ioctl(this->tap, TUNSETPERSIST, 1) < 0 ||
+ ioctl(this->tap, TUNSETOWNER, 0))
{
DBG1("creating new tap device failed: %m");
return NULL;
diff --git a/src/dumm/main.c b/src/dumm/main.c
index 7e22ddfd6..5d3cbbd5f 100644
--- a/src/dumm/main.c
+++ b/src/dumm/main.c
@@ -225,6 +225,7 @@ static void guest(dumm_t *dumm, char *name)
if (streq(name, guest->get_name(guest)))
{
found = TRUE;
+ break;
}
}
iterator->destroy(iterator);
diff --git a/src/dumm/mconsole.c b/src/dumm/mconsole.c
index b782ebe81..7735e520c 100644
--- a/src/dumm/mconsole.c
+++ b/src/dumm/mconsole.c
@@ -154,7 +154,7 @@ mconsole_t *mconsole_create(char *sock)
}
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
- sprintf(&addr.sun_path[1], "%5d", getpid());
+ sprintf(&addr.sun_path[1], "%5d-%s", getpid(), sock);
if (bind(this->socket, (struct sockaddr*)&addr, sizeof(addr)) < 0)
{
DBG1("binding mconsole socket failed: %m");