On Wed, Jul 29, 2009 at 10:56:48PM -0400, Aron Griffis wrote:
Matthias Bolte wrote: [Wed Jul 29 2009, 08:58:18PM EDT]
> 2009/7/29 Daniel Veillard <veillard(a)redhat.com>:
> > On Wed, Jul 29, 2009 at 08:05:37PM +0200, Daniel Veillard wrote:
> >> On Wed, Jul 29, 2009 at 12:52:30PM -0400, Aron Griffis wrote:
> >> > This is a resend of take 2 to fix formatting problems in the
> >> > patch. No other changes.
> >> >
> >> > As far as I can tell, there's no reason to format the device
> >> > string in brAddTap(). Delegate the job to TUNSETIFF, thereby
> >> > removing the loop and the MAX_TAP_ID artificial limit. This
> >> > patch allows me to get 421 guests running before hitting other
> >> > limits.
> >>
> >> haha ! that one worked :-)
> >>
> >> I will review and apply, thanks !
> >
> > Actually just looking at brAddTap() after patching makes it clear,
> > and based on Mark and Dan feedback great !
> > Applied and commited to git, thanks !
> >
> > Daniel
>
> This patch breaks -Werror, because GCC is unhappy with the initializer
> for ifreq.
Sorry I should have caught that
Maybe instead of the nested curlies, we should revert to memset
as it was doing previously:
diff --git a/src/bridge.c b/src/bridge.c
index ec37192..58e480e 100644
--- a/src/bridge.c
+++ b/src/bridge.c
@@ -465,7 +465,7 @@ brAddTap(brControl *ctl,
int *tapfd)
{
int fd, len;
- struct ifreq ifr = {0};
+ struct ifreq ifr;
if (!ctl || !ctl->fd || !bridge || !ifname)
return EINVAL;
@@ -473,6 +473,8 @@ brAddTap(brControl *ctl,
if ((fd = open("/dev/net/tun", O_RDWR)) < 0)
return errno;
+ memset(&ifr, 0, sizeof(ifr));
+
ifr.ifr_flags = IFF_TAP|IFF_NO_PI;
yeah the memset was the status quo before, let's go back to using
this. Applied and commited, thanks !
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/