The :isccmd:`ha-scopes` command can put Kea servers into conflicting states,
which can lead to unexpected behavior. Changing scopes does not automatically
change the state of the server or its relationship with a partner.
-
+
For example, when we add primary scopes to the standby server it will start
responding to DHCP traffic for those scopes. This can lead to a situation where
both servers are responding to the same traffic, which can lead to IP address
and ``reselect-subnet-pool`` parameters of the :ischooklib:`libdhcp_radius.so`. The High
Availability hook library uses an originally selected subnet for choosing an HA relationship
to process a packet. The subnet reselection may interfere with this choice. See the
- :ref:`radius-config` for details.
\ No newline at end of file
+ :ref:`radius-config` for details.
///
/// @param signo Signal number received.
void signalHandler(int signo) {
- try {
- // SIGHUP signals a request to reconfigure the server.
- if (signo == SIGHUP) {
- CommandMgr::instance().processCommand(createCommand("config-reload"));
- } else if ((signo == SIGTERM) || (signo == SIGINT)) {
- CommandMgr::instance().processCommand(createCommand("shutdown"));
- }
- } catch (const isc::Exception& ex) {
+ // SIGHUP signals a request to reconfigure the server.
+ if (signo == SIGHUP) {
+ CommandMgr::instance().processCommand(createCommand("config-reload"));
+ } else if ((signo == SIGTERM) || (signo == SIGINT)) {
+ CommandMgr::instance().processCommand(createCommand("shutdown"));
}
}
}
// Use parsed JSON structures to configure the server
- try {
- result = CommandMgr::instance().processCommand(createCommand("config-set", json));
- } catch (const isc::Exception& ex) {
- result = isc::config::createAnswer(CONTROL_RESULT_ERROR, string("Error while processing command "
- "'config-set': ") + ex.what() +
- ", params: '" + json->str() + "'");
- }
+ result = CommandMgr::instance().processCommand(createCommand("config-set", json));
if (!result) {
// Undetermined status of the configuration. This should never
// happen, but as the configureDhcp4Server returns a pointer, it is
///
/// @param signo Signal number received.
void signalHandler(int signo) {
- try {
- // SIGHUP signals a request to reconfigure the server.
- if (signo == SIGHUP) {
- CommandMgr::instance().processCommand(createCommand("config-reload"));
- } else if ((signo == SIGTERM) || (signo == SIGINT)) {
- CommandMgr::instance().processCommand(createCommand("shutdown"));
- }
- } catch (const isc::Exception& ex) {
+ // SIGHUP signals a request to reconfigure the server.
+ if (signo == SIGHUP) {
+ CommandMgr::instance().processCommand(createCommand("config-reload"));
+ } else if ((signo == SIGTERM) || (signo == SIGINT)) {
+ CommandMgr::instance().processCommand(createCommand("shutdown"));
}
}
}
// Use parsed JSON structures to configure the server
- try {
- result = CommandMgr::instance().processCommand(createCommand("config-set", json));
- } catch (const isc::Exception& ex) {
- result = isc::config::createAnswer(CONTROL_RESULT_ERROR, string("Error while processing command "
- "'config-set': ") + ex.what() +
- ", params: '" + json->str() + "'");
- }
+ result = CommandMgr::instance().processCommand(createCommand("config-set", json));
if (!result) {
// Undetermined status of the configuration. This should never
// happen, but as the configureDhcp6Server returns a pointer, it is