static void populate_ui (CEPageBond *self) { CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); NMSettingBond *setting = priv->setting; const char *mode, *primary, *frequency, *updelay, *downdelay, *raw_targets; char *targets; int mode_idx = MODE_BALANCE_RR; guint32 mtu_def, mtu_val; /* Mode */ mode = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_MODE); if (mode) { if (!strcmp (mode, "balance-rr")) mode_idx = MODE_BALANCE_RR; else if (!strcmp (mode, "active-backup")) mode_idx = MODE_ACTIVE_BACKUP; else if (!strcmp (mode, "balance-xor")) mode_idx = MODE_BALANCE_XOR; else if (!strcmp (mode, "broadcast")) mode_idx = MODE_BROADCAST; else if (!strcmp (mode, "802.3ad")) mode_idx = MODE_802_3AD; else if (!strcmp (mode, "balance-tlb")) mode_idx = MODE_BALANCE_TLB; else if (!strcmp (mode, "balance-alb")) mode_idx = MODE_BALANCE_ALB; } gtk_combo_box_set_active (priv->mode, mode_idx); g_signal_connect (priv->mode, "changed", G_CALLBACK (bonding_mode_changed), self); bonding_mode_changed (priv->mode, self); /* Primary */ primary = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_PRIMARY); gtk_entry_set_text (priv->primary, primary ? primary : ""); /* Monitoring mode/frequency */ frequency = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_ARP_INTERVAL); if (frequency) { gtk_combo_box_set_active (priv->monitoring, MONITORING_ARP); } else { gtk_combo_box_set_active (priv->monitoring, MONITORING_MII); frequency = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_MIIMON); } g_signal_connect (priv->monitoring, "changed", G_CALLBACK (monitoring_mode_changed), self); monitoring_mode_changed (priv->monitoring, self); if (frequency) gtk_spin_button_set_value (priv->frequency, (gdouble) atoi (frequency)); else gtk_spin_button_set_value (priv->frequency, 0.0); g_signal_connect (priv->frequency, "value-changed", G_CALLBACK (frequency_changed), self); updelay = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_UPDELAY); if (updelay) gtk_spin_button_set_value (priv->updelay, (gdouble) atoi (updelay)); else gtk_spin_button_set_value (priv->updelay, 0.0); g_signal_connect (priv->updelay, "value-changed", G_CALLBACK (delay_changed), self); downdelay = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_DOWNDELAY); if (downdelay) gtk_spin_button_set_value (priv->downdelay, (gdouble) atoi (downdelay)); else gtk_spin_button_set_value (priv->downdelay, 0.0); g_signal_connect (priv->downdelay, "value-changed", G_CALLBACK (delay_changed), self); /* ARP targets */ raw_targets = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); targets = prettify_targets (raw_targets); if (targets) { gtk_entry_set_text (priv->arp_targets, targets); g_free (targets); } /* MTU */ if (priv->wired) { mtu_def = ce_get_property_default (NM_SETTING (priv->wired), NM_SETTING_WIRED_MTU); mtu_val = nm_setting_wired_get_mtu (priv->wired); } else { mtu_def = mtu_val = 0; } g_signal_connect (priv->mtu, "output", G_CALLBACK (ce_spin_output_with_automatic), GINT_TO_POINTER (mtu_def)); gtk_spin_button_set_value (priv->mtu, (gdouble) mtu_val); }
static void populate_ui (CEPageBond *self) { CEPageBondPrivate *priv = CE_PAGE_BOND_GET_PRIVATE (self); NMSettingBond *setting = priv->setting; const char *mode, *frequency, *updelay, *downdelay, *raw_targets; char *targets; int mode_idx = MODE_BALANCE_RR; /* Mode */ mode = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_MODE); if (mode) { if (!strcmp (mode, "balance-rr")) mode_idx = MODE_BALANCE_RR; else if (!strcmp (mode, "active-backup")) mode_idx = MODE_ACTIVE_BACKUP; else if (!strcmp (mode, "balance-xor")) mode_idx = MODE_BALANCE_XOR; else if (!strcmp (mode, "broadcast")) mode_idx = MODE_BROADCAST; else if (!strcmp (mode, "802.3ad")) mode_idx = MODE_802_3AD; else if (!strcmp (mode, "balance-tlb")) mode_idx = MODE_BALANCE_TLB; else if (!strcmp (mode, "balance-alb")) mode_idx = MODE_BALANCE_ALB; } gtk_combo_box_set_active (priv->mode, mode_idx); g_signal_connect (priv->mode, "changed", G_CALLBACK (bonding_mode_changed), self); bonding_mode_changed (priv->mode, self); /* Monitoring mode/frequency */ frequency = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_ARP_INTERVAL); if (frequency) { gtk_combo_box_set_active (priv->monitoring, MONITORING_ARP); } else { gtk_combo_box_set_active (priv->monitoring, MONITORING_MII); frequency = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_MIIMON); } g_signal_connect (priv->monitoring, "changed", G_CALLBACK (monitoring_mode_changed), self); monitoring_mode_changed (priv->monitoring, self); if (frequency) gtk_spin_button_set_value (priv->frequency, (gdouble) atoi (frequency)); else gtk_spin_button_set_value (priv->frequency, 0.0); g_signal_connect (priv->frequency, "value-changed", G_CALLBACK (frequency_changed), self); updelay = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_UPDELAY); if (updelay) gtk_spin_button_set_value (priv->updelay, (gdouble) atoi (updelay)); else gtk_spin_button_set_value (priv->updelay, 0.0); g_signal_connect (priv->updelay, "value-changed", G_CALLBACK (delay_changed), self); downdelay = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_DOWNDELAY); if (downdelay) gtk_spin_button_set_value (priv->downdelay, (gdouble) atoi (downdelay)); else gtk_spin_button_set_value (priv->downdelay, 0.0); g_signal_connect (priv->downdelay, "value-changed", G_CALLBACK (delay_changed), self); /* ARP targets */ raw_targets = nm_setting_bond_get_option_by_name (setting, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); targets = prettify_targets (raw_targets); if (targets) { gtk_entry_set_text (priv->arp_targets, targets); g_free (targets); } }