private bool GetManagementInterfaceIPChanged(PIF oldManagement, PIF newManagement) { if (oldManagement == null || newManagement == null) throw new Failure(Failure.INTERNAL_ERROR, "Management interface is null."); if (oldManagement.ip_configuration_mode == ip_configuration_mode.DHCP) { if (newManagement.ip_configuration_mode == ip_configuration_mode.DHCP) return !oldManagement.Equals(newManagement); if (newManagement.ip_configuration_mode == ip_configuration_mode.Static) return IPAddressSettingsChanged(oldManagement, newManagement); } else if (oldManagement.ip_configuration_mode == ip_configuration_mode.Static) { if (newManagement.ip_configuration_mode == ip_configuration_mode.Static) return IPAddressSettingsChanged(oldManagement, newManagement); if (newManagement.ip_configuration_mode == ip_configuration_mode.DHCP) return true; } throw new Failure(Failure.INTERNAL_ERROR, "Unexpected IP configuration mode."); }