Hello community,

here is the log from the commit of package libteam for openSUSE:Factory checked 
in at 2015-03-29 20:18:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libteam (Old)
 and      /work/SRC/openSUSE:Factory/.libteam.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libteam"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libteam/libteam.changes  2015-01-10 
23:05:25.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libteam.new/libteam.changes     2015-03-29 
20:18:19.000000000 +0200
@@ -1,0 +2,7 @@
+Sun Mar 29 12:36:28 UTC 2015 - [email protected]
+
+- Update to new upstream release 1.16
+* teamdctl: show port link down count in state output
+* teamd: lw: count how many times has been the port down
+
+-------------------------------------------------------------------

Old:
----
  libteam-1.15.tar.gz

New:
----
  libteam-1.16.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libteam.spec ++++++
--- /var/tmp/diff_new_pack.2cRmNw/_old  2015-03-29 20:18:19.000000000 +0200
+++ /var/tmp/diff_new_pack.2cRmNw/_new  2015-03-29 20:18:19.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           libteam
-Version:        1.15
+Version:        1.16
 Release:        0
 Summary:        Utilities for controlling 802.1AX team network device
 License:        LGPL-2.1+

++++++ libteam-1.15.tar.gz -> libteam-1.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/configure new/libteam-1.16/configure
--- old/libteam-1.15/configure  2014-12-17 11:47:09.000000000 +0100
+++ new/libteam-1.16/configure  2015-03-24 15:58:10.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libteam 1.15.
+# Generated by GNU Autoconf 2.69 for libteam 1.16.
 #
 # Report bugs to <[email protected]>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='libteam'
 PACKAGE_TARNAME='libteam'
-PACKAGE_VERSION='1.15'
-PACKAGE_STRING='libteam 1.15'
+PACKAGE_VERSION='1.16'
+PACKAGE_STRING='libteam 1.16'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1348,7 +1348,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libteam 1.15 to adapt to many kinds of systems.
+\`configure' configures libteam 1.16 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1418,7 +1418,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libteam 1.15:";;
+     short | recursive ) echo "Configuration of libteam 1.16:";;
    esac
   cat <<\_ACEOF
 
@@ -1547,7 +1547,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libteam configure 1.15
+libteam configure 1.16
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1916,7 +1916,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libteam $as_me 1.15, which was
+It was created by libteam $as_me 1.16, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2782,7 +2782,7 @@
 
 # Define the identity of the package.
  PACKAGE='libteam'
- VERSION='1.15'
+ VERSION='1.16'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4030,14 +4030,14 @@
 
 LIBTEAM_CURRENT=7
 
-LIBTEAM_REVISION=0
+LIBTEAM_REVISION=1
 
 LIBTEAM_AGE=2
 
 
 LIBTEAMDCTL_CURRENT=1
 
-LIBTEAMDCTL_REVISION=3
+LIBTEAMDCTL_REVISION=4
 
 LIBTEAMDCTL_AGE=1
 
@@ -13758,7 +13758,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libteam $as_me 1.15, which was
+This file was extended by libteam $as_me 1.16, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13824,7 +13824,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libteam config.status 1.15
+libteam config.status 1.16
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/configure.ac 
new/libteam-1.16/configure.ac
--- old/libteam-1.15/configure.ac       2014-12-17 11:45:57.000000000 +0100
+++ new/libteam-1.16/configure.ac       2015-03-24 15:56:13.000000000 +0100
@@ -1,7 +1,7 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([libteam], [1.15], [[email protected]])
+AC_INIT([libteam], [1.16], [[email protected]])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADERS([config.h])
@@ -24,11 +24,11 @@
 #    release, then set age to 0.
 
 AC_SUBST(LIBTEAM_CURRENT, 7)
-AC_SUBST(LIBTEAM_REVISION, 0)
+AC_SUBST(LIBTEAM_REVISION, 1)
 AC_SUBST(LIBTEAM_AGE, 2)
 
 AC_SUBST(LIBTEAMDCTL_CURRENT, 1)
-AC_SUBST(LIBTEAMDCTL_REVISION, 3)
+AC_SUBST(LIBTEAMDCTL_REVISION, 4)
 AC_SUBST(LIBTEAMDCTL_AGE, 1)
 
 CFLAGS="$CFLAGS -Wall"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/libteam/ifinfo.c 
new/libteam-1.16/libteam/ifinfo.c
--- old/libteam-1.15/libteam/ifinfo.c   2014-11-05 18:25:16.000000000 +0100
+++ new/libteam-1.16/libteam/ifinfo.c   2014-12-18 20:00:00.000000000 +0100
@@ -149,6 +149,8 @@
        nl_data = rtnl_link_get_phys_port_id(link);
        if (nl_data) {
                phys_port_id_len = nl_data_get_size(nl_data);
+               if (phys_port_id_len > MAX_PHYS_PORT_ID_LEN)
+                       phys_port_id_len = 0;
                phys_port_id = nl_data_get(nl_data);
        }
 
@@ -156,7 +158,8 @@
                ifinfo->phys_port_id_len = phys_port_id_len;
                set_changed(ifinfo, CHANGED_PHYS_PORT_ID_LEN);
        }
-       if (memcmp(ifinfo->phys_port_id, phys_port_id, phys_port_id_len)) {
+       if (phys_port_id_len &&
+           memcmp(ifinfo->phys_port_id, phys_port_id, phys_port_id_len)) {
                memcpy(ifinfo->phys_port_id, phys_port_id, phys_port_id_len);
                set_changed(ifinfo, CHANGED_PHYS_PORT_ID);
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/libteamdctl/cli_usock.c 
new/libteam-1.16/libteamdctl/cli_usock.c
--- old/libteam-1.15/libteamdctl/cli_usock.c    2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/libteamdctl/cli_usock.c    2014-12-19 16:13:22.000000000 
+0100
@@ -158,7 +158,7 @@
        struct cli_usock_priv *cli_usock = priv;
        char *str;
        char *msg = NULL;
-       char *recvmsg = recvmsg;
+       char *recv_message = NULL; /* gcc needs this initialized */
        char *replystr;
        int err;
 
@@ -198,25 +198,25 @@
                goto free_msg;
        }
 
-       err = teamd_usock_recv_msg(cli_usock->sock, &recvmsg);
+       err = teamd_usock_recv_msg(cli_usock->sock, &recv_message);
        if (err)
                goto free_msg;
 
-       err = cli_usock_process_msg(tdc, recvmsg, &replystr);
+       err = cli_usock_process_msg(tdc, recv_message, &replystr);
        if (err)
-               goto free_recvmsg;
+               goto free_recv_message;
 
        if (p_reply) {
                replystr = strdup(replystr);
                if (!replystr) {
                        err = -ENOMEM;
-                       goto free_recvmsg;
+                       goto free_recv_message;
                }
                *p_reply = replystr;
        }
 
-free_recvmsg:
-       free(recvmsg);
+free_recv_message:
+       free(recv_message);
 free_msg:
        free(msg);
        return err;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/libteamdctl/cli_zmq.c 
new/libteam-1.16/libteamdctl/cli_zmq.c
--- old/libteam-1.15/libteamdctl/cli_zmq.c      2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/libteamdctl/cli_zmq.c      2014-12-19 16:14:39.000000000 
+0100
@@ -101,7 +101,7 @@
        ret = zmq_msg_recv(&msg, sock, 0);
 
        if (ret == -1) {
-               warn(tdc, "zmq: send failed: %s", strerror(errno));
+               warn(tdc, "zmq: recv failed: %s", strerror(errno));
                return -errno;
        }
 
@@ -144,7 +144,7 @@
        struct cli_zmq_priv *cli_zmq = priv;
        char *str;
        char *msg = NULL;
-       char *recvmsg = recvmsg;
+       char *recv_message = NULL; /* gcc needs this initialized */
        char *replystr;
        int err;
 
@@ -172,25 +172,25 @@
        if (err)
                goto send_err;
 
-       err = cli_zmq_recv(tdc, cli_zmq->sock, &recvmsg);
+       err = cli_zmq_recv(tdc, cli_zmq->sock, &recv_message);
        if (err)
                goto send_err;
 
-       err = cli_zmq_process_msg(tdc, recvmsg, &replystr);
+       err = cli_zmq_process_msg(tdc, recv_message, &replystr);
        if (err)
-               goto free_recvmsg;
+               goto free_recv_message;
 
        if (p_reply) {
                replystr = strdup(replystr);
                if (!replystr) {
                        err = -ENOMEM;
-                       goto free_recvmsg;
+                       goto free_recv_message;
                }
                *p_reply = replystr;
        }
 
-free_recvmsg:
-       free(recvmsg);
+free_recv_message:
+       free(recv_message);
        goto send_err;
 free_msg:
        free(msg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd.c 
new/libteam-1.16/teamd/teamd.c
--- old/libteam-1.15/teamd/teamd.c      2014-12-16 15:40:24.000000000 +0100
+++ new/libteam-1.16/teamd/teamd.c      2015-03-19 09:39:34.000000000 +0100
@@ -565,7 +565,7 @@
                                      struct timespec *initial)
 {
        int err;
-       int fd = fd;
+       int fd;
 
        fd = timerfd_create(CLOCK_MONOTONIC, 0);
        if (fd < 0) {
@@ -855,7 +855,7 @@
 static int teamd_hwaddr_check_change(struct teamd_context *ctx,
                                     struct teamd_port *tdport)
 {
-       char *hwaddr;
+       const char *hwaddr;
        unsigned char hwaddr_len;
        int err;
 
@@ -873,7 +873,6 @@
                teamd_log_err("Failed to set team device hardware address.");
                return err;
        }
-       ctx->hwaddr = hwaddr;
        return 0;
 }
 
@@ -1541,7 +1540,7 @@
 {
        char buf[IFNAMSIZ];
        int i = 0;
-       uint32_t ifindex = ifindex;
+       uint32_t ifindex = 0; /* gcc needs this initialized */
        int ret;
        int err;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_config.c 
new/libteam-1.16/teamd/teamd_config.c
--- old/libteam-1.15/teamd/teamd_config.c       2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/teamd/teamd_config.c       2014-12-19 16:18:37.000000000 
+0100
@@ -252,7 +252,7 @@
 teamd_config_path_cookie_get(struct teamd_context *ctx, const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
 
        va_start(ap, fmt);
@@ -266,7 +266,7 @@
 bool teamd_config_path_exists(struct teamd_context *ctx, const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
 
        va_start(ap, fmt);
@@ -278,7 +278,7 @@
 bool teamd_config_path_is_arr(struct teamd_context *ctx, const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
 
        va_start(ap, fmt);
@@ -291,7 +291,7 @@
                            const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
 
        va_start(ap, fmt);
@@ -312,7 +312,7 @@
                            const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
        int ret;
 
@@ -332,7 +332,7 @@
                         const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
 
        va_start(ap, fmt);
@@ -353,7 +353,7 @@
                         const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
 
        va_start(ap, fmt);
@@ -370,7 +370,7 @@
                          const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
 
        va_start(ap, fmt);
@@ -391,7 +391,7 @@
                                  const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        void *iter;
        int err;
 
@@ -412,7 +412,7 @@
 size_t teamd_config_arr_size(struct teamd_context *ctx, const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_obj = json_obj;
+       json_t *json_obj = NULL; /* gcc needs this initialized */
        int err;
 
        va_start(ap, fmt);
@@ -428,7 +428,7 @@
                                      const char *fmt, ...)
 {
        va_list ap;
-       json_t *json_arr = json_arr;
+       json_t *json_arr = NULL; /* gcc needs this initialized */
        json_t *json_str;
        int err;
        int ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_dbus.c 
new/libteam-1.16/teamd/teamd_dbus.c
--- old/libteam-1.15/teamd/teamd_dbus.c 2014-11-05 18:25:16.000000000 +0100
+++ new/libteam-1.16/teamd/teamd_dbus.c 2014-12-19 16:19:43.000000000 +0100
@@ -456,7 +456,7 @@
 
 static int teamd_dbus_mainloop_init(struct teamd_context *ctx)
 {
-       struct dispatch_priv *dp = dp;
+       struct dispatch_priv *dp = NULL; /* gcc needs this initialized */
        int err;
 
        err = dispatch_init(&dp, ctx);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_events.c 
new/libteam-1.16/teamd/teamd_events.c
--- old/libteam-1.15/teamd/teamd_events.c       2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/teamd/teamd_events.c       2015-03-19 09:39:34.000000000 
+0100
@@ -124,6 +124,13 @@
 
        list_for_each_node_entry(watch, &ctx->event_watch_list, list) {
                if (watch->ops->hwaddr_changed && ctx->ifindex == ifindex) {
+                       /* ctx->hwaddr is previously set to
+                        * team_get_ifinfo_hwaddr(ctx->ifinfo) in teamd_init.
+                        * We set hwaddr_len there as well, but when it changes,
+                        * we need to set it again now.
+                        */
+                       ctx->hwaddr_len = team_get_ifinfo_hwaddr_len(ifinfo);
+
                        err = watch->ops->hwaddr_changed(ctx, watch->priv);
                        if (err)
                                return err;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_json.c 
new/libteam-1.16/teamd/teamd_json.c
--- old/libteam-1.15/teamd/teamd_json.c 2014-11-05 18:25:16.000000000 +0100
+++ new/libteam-1.16/teamd/teamd_json.c 2014-12-19 16:20:58.000000000 +0100
@@ -73,7 +73,7 @@
 
        while (ptr - path < pathlen) {
                if (*ptr == '.') {
-                       char tmp = tmp;
+                       char tmp = 0; /* gcc needs this initialized */
 
                        ptr++;
                        end = __strchrs(ptr, ".[");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_link_watch.c 
new/libteam-1.16/teamd/teamd_link_watch.c
--- old/libteam-1.15/teamd/teamd_link_watch.c   2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/teamd/teamd_link_watch.c   2015-03-16 11:50:25.000000000 
+0100
@@ -26,6 +26,7 @@
 #include <sys/types.h>
 #include <netdb.h>
 #include <time.h>
+#include <limits.h>
 #include <private/misc.h>
 #include <team.h>
 
@@ -55,6 +56,7 @@
        if (sa_len != result->ai_addrlen) {
                /* This should not happen, so just to be safe */
                teamd_log_err("Wrong address length in result.");
+               freeaddrinfo(result);
                return -EINVAL;
        }
        memcpy(sa, result->ai_addr, sa_len);
@@ -89,6 +91,8 @@
        common_ppriv->link_up = new_link_up;
        teamd_log_info("%s: %s-link went %s.", tdport->ifname, lw_name,
                       new_link_up ? "up" : "down");
+       if (!new_link_up && common_ppriv->link_down_count < INT_MAX)
+               common_ppriv->link_down_count++;
        return teamd_event_port_link_changed(ctx, tdport);
 }
 
@@ -180,6 +184,16 @@
        return 0;
 }
 
+static int link_watch_state_down_count_get(struct teamd_context *ctx,
+                                          struct team_state_gsc *gsc,
+                                          void *priv)
+{
+       struct lw_common_port_priv *common_ppriv = priv;
+
+       gsc->data.int_val = common_ppriv->link_down_count;
+       return 0;
+}
+
 static const struct teamd_state_val link_watch_state_vals[] = {
        {
                .subpath = "name",
@@ -191,6 +205,11 @@
                .type = TEAMD_STATE_ITEM_TYPE_BOOL,
                .getter = link_watch_state_up_get,
        },
+       {
+               .subpath = "down_count",
+               .type = TEAMD_STATE_ITEM_TYPE_INT,
+               .getter = link_watch_state_down_count_get,
+       },
 };
 
 static const struct teamd_state_val link_watch_state_vg = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_link_watch.h 
new/libteam-1.16/teamd/teamd_link_watch.h
--- old/libteam-1.15/teamd/teamd_link_watch.h   2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/teamd/teamd_link_watch.h   2015-03-16 11:50:25.000000000 
+0100
@@ -15,6 +15,7 @@
        struct teamd_context *ctx;
        struct teamd_port *tdport;
        bool link_up;
+       int link_down_count;
        bool forced_send;
        struct teamd_config_path_cookie *cpcookie;
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_lw_tipc.c 
new/libteam-1.16/teamd/teamd_lw_tipc.c
--- old/libteam-1.15/teamd/teamd_lw_tipc.c      2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/teamd/teamd_lw_tipc.c      2014-12-19 11:52:00.000000000 
+0100
@@ -102,6 +102,8 @@
        }
        teamd_log_dbg("tipc: established new link <%s>", lnr->linkname);
        link = malloc(sizeof(struct tipc_link));
+       if (!link)
+               return -ENOMEM;
        strcpy(link->name, lnr->linkname);
        link->up = link_up;
        link->peer = lnr->peer;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_runner_lacp.c 
new/libteam-1.16/teamd/teamd_runner_lacp.c
--- old/libteam-1.15/teamd/teamd_runner_lacp.c  2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/teamd/teamd_runner_lacp.c  2015-03-19 09:39:34.000000000 
+0100
@@ -1272,6 +1272,24 @@
        .priv_size = sizeof(struct lacp_port),
 };
 
+static int lacp_event_watch_hwaddr_changed(struct teamd_context *ctx,
+                                          void *priv)
+{
+       struct teamd_port *tdport;
+       int err;
+
+       teamd_for_each_tdport(tdport, ctx) {
+               err = team_hwaddr_set(ctx->th, tdport->ifindex, ctx->hwaddr,
+                                     ctx->hwaddr_len);
+               if (err) {
+                       teamd_log_err("%s: Failed to set port hardware 
address.",
+                                     tdport->ifname);
+                       return err;
+               }
+       }
+       return 0;
+}
+
 static int lacp_event_watch_port_added(struct teamd_context *ctx,
                                       struct teamd_port *tdport, void *priv)
 {
@@ -1302,6 +1320,7 @@
 }
 
 static const struct teamd_event_watch_ops lacp_port_watch_ops = {
+       .hwaddr_changed = lacp_event_watch_hwaddr_changed,
        .port_added = lacp_event_watch_port_added,
        .port_removed = lacp_event_watch_port_removed,
        .port_changed = lacp_event_watch_port_changed,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_state.c 
new/libteam-1.16/teamd/teamd_state.c
--- old/libteam-1.15/teamd/teamd_state.c        2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/teamd/teamd_state.c        2014-12-19 16:23:01.000000000 
+0100
@@ -219,8 +219,8 @@
        void *priv = item->priv;
        char *subpath_end;
        struct team_state_gsc gsc;
-       json_t *val_json_obj = val_json_obj;
-       json_t *vg_json_obj = vg_json_obj;
+       json_t *val_json_obj = NULL; /* gcc needs this initialized */
+       json_t *vg_json_obj = NULL; /* gcc needs this initialized */
        int err;
        int ret;
 
@@ -338,7 +338,7 @@
        void *priv;
        struct team_state_gsc gsc;
        int err;
-       int ret = ret;
+       int ret = 0; /* gcc needs this initialized */
 
        memset(&gsc, 0, sizeof(gsc));
        err = __find_by_item_path(&item, &gsc.info.tdport, ctx, item_path);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/teamd/teamd_usock.c 
new/libteam-1.16/teamd/teamd_usock.c
--- old/libteam-1.15/teamd/teamd_usock.c        2014-11-05 18:25:16.000000000 
+0100
+++ new/libteam-1.16/teamd/teamd_usock.c        2014-12-19 16:23:29.000000000 
+0100
@@ -205,7 +205,7 @@
                                   void *priv)
 {
        struct usock_acc_conn *acc_conn = priv;
-       char *msg = msg;
+       char *msg = NULL; /* gcc needs this initialized */
        int err;
 
        err = teamd_usock_recv_msg(acc_conn->sock, &msg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/utils/teamdctl.c 
new/libteam-1.16/utils/teamdctl.c
--- old/libteam-1.15/utils/teamdctl.c   2014-11-05 18:25:16.000000000 +0100
+++ new/libteam-1.16/utils/teamdctl.c   2015-03-16 11:50:25.000000000 +0100
@@ -276,6 +276,7 @@
 {
        int err;
        int up;
+       int down_count;
        json_t *lw_list_json;
        json_t *lw_json;
        char *lw_name;
@@ -285,8 +286,9 @@
        if (err)
                return 0;
        json_object_foreach(lw_list_json, key, lw_json) {
-               err = json_unpack(lw_json, "{s:b, s:s}",
-                                 "up", &up, "name", &lw_name);
+               err = json_unpack(lw_json, "{s:b, s:s, s:i}",
+                                 "up", &up, "name", &lw_name,
+                                 "down_count", &down_count);
                if (err) {
                        pr_err("Failed to parse JSON port link watch dump.\n");
                        return -EINVAL;
@@ -295,6 +297,7 @@
                pr_out_indent_inc();
                pr_out("name: %s\n", lw_name);
                pr_out("link: %s\n", boolupdown(up));
+               pr_out("down count: %d\n", down_count);
                err = stateview_json_link_watch_info_process(lw_name,
                                                             lw_json);
                if (err)
@@ -877,7 +880,7 @@
 static int check_team_devname(char *team_devname)
 {
        int err;
-       uint32_t ifindex = ifindex;
+       uint32_t ifindex = 0; /* gcc needs this initialized */
 
        err = ifname2ifindex(&ifindex, team_devname);
        if (err) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libteam-1.15/utils/teamnl.c 
new/libteam-1.16/utils/teamnl.c
--- old/libteam-1.15/utils/teamnl.c     2014-11-05 18:25:16.000000000 +0100
+++ new/libteam-1.16/utils/teamnl.c     2014-12-18 19:45:43.000000000 +0100
@@ -104,6 +104,7 @@
 {
        struct team_option *option;
        char *buf = NULL;
+       char *tmpbuf;
        size_t bufsiz = 0;
        bool trunc;
 
@@ -118,11 +119,12 @@
 
        do {
                bufsiz += BUFSIZSTEP;
-               buf = realloc(buf, bufsiz);
-               if (!buf) {
+               tmpbuf = realloc(buf, bufsiz);
+               if (!tmpbuf) {
                        free(buf);
                        return -ENOMEM;
                }
+               buf = tmpbuf;
                trunc = team_option_value_str(option, buf, bufsiz);
        } while(trunc);
 

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to