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]
