Re: [PATCH] team: read team port configuration when generating connections
- From: Jiri Pirko <jiri resnulli us>
- To: Dan Williams <dcbw redhat com>
- Cc: networkmanager-list gnome org
- Subject: Re: [PATCH] team: read team port configuration when generating connections
- Date: Thu, 14 Nov 2013 13:47:42 +0100
Wed, Nov 13, 2013 at 09:25:03PM CET, dcbw redhat com wrote:
Now that libteam 1.9 can return port configuration, use it. This
bumps the requirement to libteam 1.9.
Acked-by: Jiri Pirko <jiri resnulli us>
---
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
networkmanager-list gnome org
https://mail.gnome.org/mailman/listinfo/networkmanager-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]