From: Marcin Siodelski Date: Wed, 3 Jul 2019 12:41:18 +0000 (+0200) Subject: [#714,!409] Only delete dangling global options when server deleted. X-Git-Tag: Kea-1.6.0-beta2~121 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=44b35d42426c2daddd08fbec377db5e50245cfc8;p=thirdparty%2Fkea.git [#714,!409] Only delete dangling global options when server deleted. --- diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc index 19c24ad8af..8693edb7c5 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc @@ -115,7 +115,7 @@ public: DELETE_OPTION_DEF4_CODE_NAME, DELETE_ALL_OPTION_DEFS4, DELETE_OPTION4, - DELETE_ALL_OPTIONS4_UNASSIGNED, + DELETE_ALL_GLOBAL_OPTIONS4_UNASSIGNED, DELETE_OPTION4_SUBNET_ID, DELETE_OPTION4_POOL_RANGE, DELETE_OPTION4_SHARED_NETWORK, @@ -1930,7 +1930,7 @@ public: MySqlBindingCollection()); conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl:: - DELETE_ALL_OPTIONS4_UNASSIGNED, + DELETE_ALL_GLOBAL_OPTIONS4_UNASSIGNED, MySqlBindingCollection()); /// @todo delete option definitions. } @@ -1970,7 +1970,7 @@ public: MySqlBindingCollection()); conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl:: - DELETE_ALL_OPTIONS4_UNASSIGNED, + DELETE_ALL_GLOBAL_OPTIONS4_UNASSIGNED, MySqlBindingCollection()); /// @todo delete dangling option definitions. @@ -2403,8 +2403,8 @@ TaggedStatementArray tagged_statements = { { }, // Delete all options which are unassigned to any servers. - { MySqlConfigBackendDHCPv4Impl::DELETE_ALL_OPTIONS4_UNASSIGNED, - MYSQL_DELETE_OPTION_UNASSIGNED(dhcp4) + { MySqlConfigBackendDHCPv4Impl::DELETE_ALL_GLOBAL_OPTIONS4_UNASSIGNED, + MYSQL_DELETE_OPTION_UNASSIGNED(dhcp4, AND o.scope_id = 0) }, // Delete single option from a subnet. diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc index ba617e4839..fa46affb10 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp6.cc @@ -121,7 +121,7 @@ public: DELETE_OPTION_DEF6_CODE_NAME, DELETE_ALL_OPTION_DEFS6, DELETE_OPTION6, - DELETE_ALL_OPTIONS6_UNASSIGNED, + DELETE_ALL_GLOBAL_OPTIONS6_UNASSIGNED, DELETE_OPTION6_SUBNET_ID, DELETE_OPTION6_POOL_RANGE, DELETE_OPTION6_PD_POOL, @@ -2247,7 +2247,7 @@ public: MySqlBindingCollection()); conn_.updateDeleteQuery(MySqlConfigBackendDHCPv6Impl:: - DELETE_ALL_OPTIONS6_UNASSIGNED, + DELETE_ALL_GLOBAL_OPTIONS6_UNASSIGNED, MySqlBindingCollection()); /// @todo delete dangling option definitions. } @@ -2287,7 +2287,7 @@ public: MySqlBindingCollection()); conn_.updateDeleteQuery(MySqlConfigBackendDHCPv6Impl:: - DELETE_ALL_OPTIONS6_UNASSIGNED, + DELETE_ALL_GLOBAL_OPTIONS6_UNASSIGNED, MySqlBindingCollection()); /// @todo delete dangling option definitions. } @@ -2761,9 +2761,9 @@ TaggedStatementArray tagged_statements = { { MYSQL_DELETE_OPTION(dhcp6, AND o.scope_id = 0 AND o.code = ? AND o.space = ?) }, - // Delete all options which are unassigned to any servers. - { MySqlConfigBackendDHCPv6Impl::DELETE_ALL_OPTIONS6_UNASSIGNED, - MYSQL_DELETE_OPTION_UNASSIGNED(dhcp6) + // Delete all global options which are unassigned to any servers. + { MySqlConfigBackendDHCPv6Impl::DELETE_ALL_GLOBAL_OPTIONS6_UNASSIGNED, + MYSQL_DELETE_OPTION_UNASSIGNED(dhcp6, AND o.scope_id = 0) }, // Delete single option from a subnet.