From: Francis Dupont Date: Fri, 1 Mar 2019 13:46:16 +0000 (+0100) Subject: [481-remote-subnet4-set-inconsistent-work-when-id-subnet-is-duplicated] Applied Marci... X-Git-Tag: Kea-1.6.0-beta~389 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9cd6012cc5d141592efd546708f90f4754b1b7e1;p=thirdparty%2Fkea.git [481-remote-subnet4-set-inconsistent-work-when-id-subnet-is-duplicated] Applied Marcin's proposal --- 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,