From 9cd6012cc5d141592efd546708f90f4754b1b7e1 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Fri, 1 Mar 2019 14:46:16 +0100 Subject: [PATCH] [481-remote-subnet4-set-inconsistent-work-when-id-subnet-is-duplicated] Applied Marcin's proposal --- src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc index d4042262b2..88966bcb12 100644 --- a/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc +++ b/src/hooks/dhcp/mysql_cb/mysql_cb_dhcp4.cc @@ -819,7 +819,7 @@ public: try { - // Try to insert subnet. If this duplicates primary key, i.e. this + // Try to insert subnet. If this duplicates unique key, i.e. this // subnet already exists it will throw DuplicateEntry exception in // which case we'll try an update. conn_.insertQuery(MySqlConfigBackendDHCPv4Impl::INSERT_SUBNET4, @@ -842,8 +842,9 @@ public: deletePools4(subnet); deleteOptions4(server_selector, subnet); - // Need to add one more binding for WHERE clause. + // Need to add two more bindings for WHERE clause. in_bindings.push_back(MySqlBinding::createInteger(subnet->getID())); + in_bindings.push_back(MySqlBinding::createString(subnet->toText())); conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl::UPDATE_SUBNET4, in_bindings); } @@ -2193,7 +2194,7 @@ TaggedStatementArray tagged_statements = { { " t1_percent = ?," " t2_percent = ?," " authoritative = ? " - "WHERE subnet_id = ?" }, + "WHERE subnet_id = ? OR subnet_prefix = ?" }, // Update existing shared network. { MySqlConfigBackendDHCPv4Impl::UPDATE_SHARED_NETWORK4, -- 2.47.2