Wed, Nov 13, 2013 at 09:25:03PM CET, [email protected] wrote: >Now that libteam 1.9 can return port configuration, use it. This >bumps the requirement to libteam 1.9.
Acked-by: Jiri Pirko <[email protected]> >--- > configure.ac | 2 +- > src/devices/nm-device-team.c | 25 ++++++++++++++++++------- > 2 files changed, 19 insertions(+), 8 deletions(-) > >diff --git a/configure.ac b/configure.ac >index be15f79..e59b8c2 100644 >--- a/configure.ac >+++ b/configure.ac >@@ -363,15 +363,15 @@ if (test "${enable_wimax}" = "yes"); then > AC_DEFINE(WITH_WIMAX, 1, [Define if you have WiMAX support]) > else > AC_DEFINE(WITH_WIMAX, 0, [Define if you have WiMAX support]) > fi > AM_CONDITIONAL(WITH_WIMAX, test "${enable_wimax}" = "yes") > > # Teamd control checks >-PKG_CHECK_MODULES(LIBTEAMDCTL, [libteamdctl], >[have_teamdctl=yes],[have_teamdctl=no]) >+PKG_CHECK_MODULES(LIBTEAMDCTL, [libteamdctl >= 1.9], >[have_teamdctl=yes],[have_teamdctl=no]) > AC_ARG_ENABLE(teamdctl, AS_HELP_STRING([--enable-teamdctl], [enable Teamd > control support]), > [enable_teamdctl=${enableval}], > [enable_teamdctl=${have_teamdctl}]) > if (test "${enable_teamdctl}" = "yes"); then > if test x"$have_teamdctl" = x"no"; then > AC_MSG_ERROR(Teamd control is required) > fi > >diff --git a/src/devices/nm-device-team.c b/src/devices/nm-device-team.c >index 8f119dd..b918a7f 100644 >--- a/src/devices/nm-device-team.c >+++ b/src/devices/nm-device-team.c >@@ -272,35 +272,46 @@ nm_team_update_slave_connection (NMDevice *slave, >NMConnection *connection) > > tdc = teamdctl_alloc (); > g_assert (tdc); > err = teamdctl_connect (tdc, master_iface, NULL, NULL); > if (err) { > nm_log_err (LOGD_TEAM, "(%s): failed to connect to teamd for > master %s", > iface, master_iface); >- teamdctl_free (tdc); >- return FALSE; >+ goto done; > } >- /* FIXME: wait for libteamd to implement getting port config */ >-/* port_config = teamdctl_port_config_get_raw (tdc, iface); */ >- teamdctl_free (tdc); >+ >+ /* Read port configuration from master teamd instance */ >+ err = teamdctl_port_config_get_raw_direct (tdc, iface, &port_config); >+ if (err) { >+ g_assert (port_config == NULL); >+ nm_log_err (LOGD_TEAM, "(%s): failed to read teamd port >configuration (%d)", >+ iface, err); >+ goto done; >+ } >+ g_warn_if_fail (port_config != NULL); >+#else >+ nm_log_err (LOGD_TEAM, "(%s): failed to read teamd port configuration", >iface); > #endif > > s_port = nm_connection_get_setting_team_port (connection); > if (!s_port) { > s_port = (NMSettingTeamPort *) nm_setting_team_port_new (); > nm_connection_add_setting (connection, NM_SETTING (s_port)); > } > > if (port_config) { > g_object_set (G_OBJECT (s_port), NM_SETTING_TEAM_PORT_CONFIG, > port_config, NULL); > free (port_config); > success = TRUE; >- } else >- nm_log_err (LOGD_TEAM, "(%s): failed to read teamd port >configuration", iface); >+ } > >+#if WITH_TEAMDCTL >+done: >+ teamdctl_free (tdc); >+#endif > return success; > } > > /******************************************************************/ > > static gboolean > ensure_killed (gpointer data) >-- >1.8.3.1 > > >_______________________________________________ >networkmanager-list mailing list >[email protected] >https://mail.gnome.org/mailman/listinfo/networkmanager-list _______________________________________________ networkmanager-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/networkmanager-list
