+++ /dev/null
-commit 5eebb7f9288b7881ffb929b1fd494fe3ac3be27d
-Author: Russell Senior <russell@personaltelco.net>
-Date: Wed Mar 6 12:49:42 2013 -0800
-
- bridge-utils: Fix compile against linux-3.8.x
-
- Linux 3.8 has a header, include/uapi/linux/if_bridge.h that uses a
- struct in6_addr but doesn't define it. The trivial seeming fix of
- including the header that does define it causes more problems. The
- problem was discussed on mailing lists in January 2013. The final
- suggestion I found was here:
-
- http://www.redhat.com/archives/libvir-list/2013-January/msg01253.html
-
- This is intended to implement that suggestion.
-
- Signed-off-by: Russell Senior <russell@personaltelco.net>
-
-diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h
-index 39964f2..dd14bae 100644
---- a/libbridge/libbridge.h
-+++ b/libbridge/libbridge.h
-@@ -20,6 +20,7 @@
- #define _LIBBRIDGE_H
-
- #include <sys/socket.h>
-+#include <netinet/in.h>
- #include <linux/if.h>
- #include <linux/if_bridge.h>
-
+++ /dev/null
-commit bb9970a9df95837e39d680021b1f73d231e85406
-Author: Stephen Hemminger <shemminger@vyatta.com>
-Date: Tue May 3 09:52:43 2011 -0700
-
- Check error returns from write to sysfs
-
- Add helper function to check write to sysfs files.
-
- Fix incorrect sysfs path in br_set.
-
-[Thomas De Schampheleire: update commit message only]
-Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
-
-diff --git a/libbridge/libbridge_devif.c b/libbridge/libbridge_devif.c
-index aa8bc36..1e83925 100644
---- a/libbridge/libbridge_devif.c
-+++ b/libbridge/libbridge_devif.c
-@@ -280,25 +280,38 @@ fallback:
- return old_get_port_info(brname, port, info);
- }
-
-+static int set_sysfs(const char *path, unsigned long value)
-+{
-+ int fd, ret = 0, cc;
-+ char buf[32];
-+
-+ fd = open(path, O_WRONLY);
-+ if (fd < 0)
-+ return -1;
-+
-+ cc = snprintf(buf, sizeof(buf), "%lu\n", value);
-+ if (write(fd, buf, cc) < 0)
-+ ret = -1;
-+ close(fd);
-+
-+ return ret;
-+}
-+
-
- static int br_set(const char *bridge, const char *name,
- unsigned long value, unsigned long oldcode)
- {
- int ret;
- char path[SYSFS_PATH_MAX];
-- FILE *f;
-
-- snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/%s", bridge, name);
-+ snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/bridge/%s",
-+ bridge, name);
-
-- f = fopen(path, "w");
-- if (f) {
-- ret = fprintf(f, "%ld\n", value);
-- fclose(f);
-- } else {
-+ if ((ret = set_sysfs(path, value)) < 0) {
- /* fallback to old ioctl */
- struct ifreq ifr;
- unsigned long args[4] = { oldcode, value, 0, 0 };
--
-+
- strncpy(ifr.ifr_name, bridge, IFNAMSIZ);
- ifr.ifr_data = (char *) &args;
- ret = ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr);
-@@ -348,14 +361,10 @@ static int port_set(const char *bridge, const char *ifname,
- {
- int ret;
- char path[SYSFS_PATH_MAX];
-- FILE *f;
-
- snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/brport/%s", ifname, name);
-- f = fopen(path, "w");
-- if (f) {
-- ret = fprintf(f, "%ld\n", value);
-- fclose(f);
-- } else {
-+
-+ if ((ret = set_sysfs(path, value)) < 0) {
- int index = get_portno(bridge, ifname);
-
- if (index < 0)