createInputContextBinding(option),
MySqlBinding::createNull(),
MySqlBinding::createNull(),
- MySqlBinding::createTimestamp(option->getModificationTime())
+ MySqlBinding::createTimestamp(option->getModificationTime()),
+ MySqlBinding::createString(tag),
+ MySqlBinding::createInteger<uint32_t>(static_cast<uint32_t>(subnet_id)),
+ MySqlBinding::createInteger<uint8_t>(option->option_->getType()),
+ MySqlBinding::condCreateString(option->space_name_)
};
boost::scoped_ptr<MySqlTransaction> transaction;
server_selector, "subnet specific option set",
cascade_update);
- if (existing_option) {
- in_bindings.push_back(MySqlBinding::createString(tag));
- in_bindings.push_back(MySqlBinding::createInteger<uint32_t>(static_cast<uint32_t>(subnet_id)));
- in_bindings.push_back(MySqlBinding::createInteger<uint8_t>(option->option_->getType()));
- in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
- conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl::UPDATE_OPTION4_SUBNET_ID,
- in_bindings);
-
- } else {
+ if (conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl::UPDATE_OPTION4_SUBNET_ID,
+ in_bindings) == 0) {
+ // Remove the 4 bindings used only in case of update.
+ in_bindings.resize(in_bindings.size() - 4);
insertOption4(server_selector, in_bindings);
}
createInputContextBinding(option),
MySqlBinding::createNull(),
MySqlBinding::createInteger<uint64_t>(pool_id),
- MySqlBinding::createTimestamp(option->getModificationTime())
+ MySqlBinding::createTimestamp(option->getModificationTime()),
+ MySqlBinding::createString(tag),
+ MySqlBinding::createInteger<uint64_t>(pool_id),
+ MySqlBinding::createInteger<uint8_t>(option->option_->getType()),
+ MySqlBinding::condCreateString(option->space_name_)
};
MySqlTransaction transaction(conn_);
server_selector, "pool specific option set",
cascade_update);
- if (existing_option) {
- in_bindings.push_back(MySqlBinding::createString(tag));
- in_bindings.push_back(MySqlBinding::createInteger<uint64_t>(pool_id));
- in_bindings.push_back(MySqlBinding::createInteger<uint8_t>(option->option_->getType()));
- in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
- conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl::UPDATE_OPTION4_POOL_ID,
- in_bindings);
-
- } else {
+ if (conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl::UPDATE_OPTION4_POOL_ID,
+ in_bindings) == 0) {
+ // Remove the 4 bindings used only in case of update.
+ in_bindings.resize(in_bindings.size() - 4);
insertOption4(server_selector, in_bindings);
}
createInputContextBinding(option),
MySqlBinding::createString(shared_network_name),
MySqlBinding::createNull(),
- MySqlBinding::createTimestamp(option->getModificationTime())
+ MySqlBinding::createTimestamp(option->getModificationTime()),
+ MySqlBinding::createString(tag),
+ MySqlBinding::createString(shared_network_name),
+ MySqlBinding::createInteger<uint8_t>(option->option_->getType()),
+ MySqlBinding::condCreateString(option->space_name_)
};
boost::scoped_ptr<MySqlTransaction> transaction;
server_selector, "shared network specific option set",
cascade_update);
- if (existing_option) {
- in_bindings.push_back(MySqlBinding::createString(tag));
- in_bindings.push_back(MySqlBinding::createString(shared_network_name));
- in_bindings.push_back(MySqlBinding::createInteger<uint8_t>(option->option_->getType()));
- in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
- conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl::
+ if (conn_.updateDeleteQuery(MySqlConfigBackendDHCPv4Impl::
UPDATE_OPTION4_SHARED_NETWORK,
- in_bindings);
- } else {
+ in_bindings) == 0) {
+ // Remove the 4 bindings used only in case of update.
+ in_bindings.resize(in_bindings.size() - 4);
insertOption4(server_selector, in_bindings);
}
MySqlBinding::createNull(),
MySqlBinding::createNull(),
MySqlBinding::createTimestamp(option->getModificationTime()),
- MySqlBinding::createNull()
+ MySqlBinding::createNull(),
+ MySqlBinding::createString(tag),
+ MySqlBinding::createInteger<uint32_t>(static_cast<uint32_t>(subnet_id)),
+ MySqlBinding::createInteger<uint16_t>(option->option_->getType()),
+ MySqlBinding::condCreateString(option->space_name_)
};
boost::scoped_ptr<MySqlTransaction> transaction;
server_selector, "subnet specific option set",
cascade_update);
- if (existing_option) {
- in_bindings.push_back(MySqlBinding::createString(tag));
- in_bindings.push_back(MySqlBinding::createInteger<uint32_t>(static_cast<uint32_t>(subnet_id)));
- in_bindings.push_back(MySqlBinding::createInteger<uint16_t>(option->option_->getType()));
- in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
- conn_.updateDeleteQuery(MySqlConfigBackendDHCPv6Impl::UPDATE_OPTION6_SUBNET_ID,
- in_bindings);
-
- } else {
+ if (conn_.updateDeleteQuery(MySqlConfigBackendDHCPv6Impl::UPDATE_OPTION6_SUBNET_ID,
+ in_bindings) == 0) {
+ // Remove the 4 bindings used only in case of update.
+ in_bindings.resize(in_bindings.size() - 4);
insertOption6(server_selector, in_bindings);
}
in_bindings.push_back(MySqlBinding::createNull());
}
+ // Insert bindings used only during the update.
+ in_bindings.push_back(MySqlBinding::createString(tag));
+ in_bindings.push_back(MySqlBinding::createInteger<uint64_t>(pool_id));
+ in_bindings.push_back(MySqlBinding::createInteger<uint16_t>(option->option_->getType()));
+ in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
+
+
MySqlTransaction transaction(conn_);
- const int index = (pool_type == Lease::TYPE_NA ?
- GET_OPTION6_POOL_ID_CODE_SPACE :
- GET_OPTION6_PD_POOL_ID_CODE_SPACE);
+ int index = (pool_type == Lease::TYPE_NA ?
+ GET_OPTION6_POOL_ID_CODE_SPACE :
+ GET_OPTION6_PD_POOL_ID_CODE_SPACE);
OptionDescriptorPtr existing_option =
getOption(index, server_selector, pool_type, pool_id,
option->option_->getType(), option->space_name_);
MySqlConfigBackendDHCPv6Impl::CREATE_AUDIT_REVISION,
server_selector, msg, cascade_update);
- if (existing_option) {
- in_bindings.push_back(MySqlBinding::createString(tag));
- in_bindings.push_back(MySqlBinding::createInteger<uint64_t>(pool_id));
- in_bindings.push_back(MySqlBinding::createInteger<uint16_t>(option->option_->getType()));
- in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
- const int index = (pool_type == Lease::TYPE_NA ?
+ index = (pool_type == Lease::TYPE_NA ?
MySqlConfigBackendDHCPv6Impl::UPDATE_OPTION6_POOL_ID :
MySqlConfigBackendDHCPv6Impl::UPDATE_OPTION6_PD_POOL_ID);
- conn_.updateDeleteQuery(index, in_bindings);
-
- } else {
+ if (conn_.updateDeleteQuery(index, in_bindings) == 0) {
+ // Remove the 4 bindings used only in case of update.
+ in_bindings.resize(in_bindings.size() - 4);
insertOption6(server_selector, in_bindings);
}
MySqlBinding::createString(shared_network_name),
MySqlBinding::createNull(),
MySqlBinding::createTimestamp(option->getModificationTime()),
- MySqlBinding::createNull()
+ MySqlBinding::createNull(),
+ MySqlBinding::createString(tag),
+ MySqlBinding::createString(shared_network_name),
+ MySqlBinding::createInteger<uint16_t>(option->option_->getType()),
+ MySqlBinding::condCreateString(option->space_name_)
};
boost::scoped_ptr<MySqlTransaction> transaction;
server_selector, "shared network specific option set",
cascade_update);
- if (existing_option) {
- in_bindings.push_back(MySqlBinding::createString(tag));
- in_bindings.push_back(MySqlBinding::createString(shared_network_name));
- in_bindings.push_back(MySqlBinding::createInteger<uint16_t>(option->option_->getType()));
- in_bindings.push_back(MySqlBinding::condCreateString(option->space_name_));
- conn_.updateDeleteQuery(MySqlConfigBackendDHCPv6Impl::
+ if (conn_.updateDeleteQuery(MySqlConfigBackendDHCPv6Impl::
UPDATE_OPTION6_SHARED_NETWORK,
- in_bindings);
- } else {
+ in_bindings) == 0) {
+ // Remove the 4 bindings used only in case of update.
+ in_bindings.resize(in_bindings.size() - 4);
insertOption6(server_selector, in_bindings);
}