CPPFLAGS=$CPPFLAGS_SAVED
fi
-# ASIO: we extensively use it as the C++ event management module.
-#
-# Use our 'coroutine' header from ext
+# Provide the ability to include our coroutine header or other headers from ext.
CPPFLAGS="$CPPFLAGS -I\$(top_srcdir) -I\$(top_builddir)"
# Doesn't seem to be required?
# than 0 to get more control over the balance between CPU load and processing
# speed. At this moment only the input processing can be done using multiple
# threads. Since this is still an experimental feature the default is set to 1,
-# which efficively disables parallel processing. Please report any issues you
+# which effectively disables parallel processing. Please report any issues you
# encounter. Generating dot graphs in parallel is controlled by the
# DOT_NUM_THREADS setting.
# Minimum value: 0, maximum value: 32, default value: 1.
"type": "binary"
} ],
- // We need to specify the the database used to store leases. As of
+ // We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of September
+// We need to specify the database used to store leases. As of September
// 2016, four database backends are supported: MySQL, PostgreSQL, Cassandra, and
// the in-memory database, Memfile. We'll use memfile because it doesn't
// require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces-config": {
"interfaces": ["ethX"]
},
-// We need to specify the the database used to store leases.
+// We need to specify the database used to store leases.
"lease-database": {
"type": "memfile"
},
"ethX"
]
},
-// We need to specify the the database used to store leases.
+// We need to specify the database used to store leases.
"lease-database": {
"type": "memfile"
},
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"re-detect": true
},
- // We need to specify the the database used to store leases. As of
+ // We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We will use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
"interfaces": [ "ethX" ]
},
-// We need to specify the the database used to store leases. As of
+// We need to specify the database used to store leases. As of
// September 2016, four database backends are supported: MySQL,
// PostgreSQL, Cassandra, and the in-memory database, Memfile.
// We'll use memfile because it doesn't require any prior set up.
Also, Kea comes with several example configuration files. Some of them showcase
how to configure the option 60 and 43. See ``doc/examples/kea4/vendor-specific.json``
-and ``doc/examples/kea6/vivso.json`` in the the Kea sources.
+and ``doc/examples/kea6/vivso.json`` in the Kea sources.
.. note::
ifstream f(file.c_str());
ASSERT_TRUE(f.good());
- // Now that's some rough check that the the config written really contains
+ // Now that's some rough check that the config written really contains
// something that looks like Control-agent configuration.
ConstElementPtr from_file = Element::fromJSONFile(file, true);
ASSERT_TRUE(from_file);
/// @brief Returns a string version of the current response status and rcode
///
- /// Renders a string containing the a text label current DNS update status
+ /// Renders a string containing the text label of current DNS update status
/// and RCODE (if status is DNSClient::SUCCESS)
///
/// @return std::string containing constructed text
/// The primary purpose of this function is to provide a consistent way
/// to identify requests for logging purposes.
///
- /// @return a string with the the request's request ID (currently DHCID)
+ /// @return a string with the request's request ID (currently DHCID)
std::string getRequestId() const;
/// @brief Fetches the NameChangeRequest status of the transaction.
checkQueueStatus();
// Verify that queue manager failed to start, (i.e. is in INITTED state),
- // and the the reconfigure flag is false.
+ // and the reconfigure flag is false.
ASSERT_EQ(D2QueueMgr::INITTED, queue_mgr->getMgrState());
ASSERT_FALSE(getReconfQueueFlag());
///
/// - If there is a Client FQDN but no reserved hostname then both the
/// FQDN and lease hostname will be equal to the name provided in the
- /// client FQDN adjusted according the the DhcpDdns configuration
+ /// client FQDN adjusted according the DhcpDdns configuration
/// parameters (e.g.replace-client-name, qualifying suffix...).
///
/// All the logic required to form appropriate answer to the client is
}
}
-// Goal of this test is to verify the a whole prefix can be delegated and that
+// Goal of this test is to verify that a whole prefix can be delegated and that
// a whole subnet can be delegated.
TEST_F(Dhcp6ParserTest, subnetAndPrefixDelegated) {
ASSERT_NE(override_preferred_, subnet_->getPreferred());
EXPECT_NE(override_valid_, subnet_->getValid());
- // Check that preferred, valid were overridden the the callout
+ // Check that preferred, valid were overridden the callout
EXPECT_EQ(override_preferred_, l->preferred_lft_);
EXPECT_EQ(override_valid_, l->valid_lft_);
/// @param backup Flag to set this server as backup server.
ConstElementPtr createValidJsonConfiguration(bool backup = false) const;
- /// @brief Run parters.
+ /// @brief Run partners.
///
- /// Simulate parters by accepting connections. The HA will send
+ /// Simulate partners by accepting connections. The HA will send
/// lease updates and waits for answers so will own the query.
void runPartners();
}
};
-// Verifies permuations of HA+MT configuration and start-up.
+// Verifies permutations of HA+MT configuration and start-up.
TEST_F(HAMtServiceTest, multiThreadingStartup) {
// Structure describing a test scenario.
HAConfigParser parser;
ASSERT_NO_THROW_LOG(parser.parse(ha_config, config_json));
- // Instanatiate the service.
+ // Instantiate the service.
TestHAServicePtr service;
ASSERT_NO_THROW_LOG(service.reset(new TestHAService(io_service_, network_state_,
ha_config)));
continue;
}
- // We sould have a listening listener with the expected number of threads.
+ // We should have a listening listener with the expected number of threads.
ASSERT_TRUE(service->listener_);
EXPECT_TRUE(service->listener_->isListening());
EXPECT_EQ(service->listener_->getThreadPoolSize(), scenario.exp_listener_threads_);
///
/// This is a wrapper class around @c HttpListener which simulates a
/// partner server. It provides convenient methods to start, stop the
-/// parter (its listener) and to transition the partner between various
+/// partner (its listener) and to transition the partner between various
/// HA states. Depending on the state and whether the partner is started
/// or stopped, different answers are returned in response to the
/// ha-heartbeat commands.
// As long as service runs at least one event handler, loop until
// we've hit our goals. It won't return zero unless is out of
- // work or the the service has been stopped by the test timer.
+ // work or the service has been stopped by the test timer.
int cnt = 0;
while (((cnt = io_service_.get_io_service().run_one()) > 0)
&& (repeater_count < 5)) {
// As long as service runs at least one event handler, loop until
// we've hit our goals. It won't return zero unless is out of
- // work or the the service has been stopped by the test timer.
+ // work or the service has been stopped by the test timer.
int cnt = 0;
while ((cnt = io_service_.get_io_service().run_one())
&& (one_shot_count < 4)) {
///
/// @return Reference to the internal map of keyword/value pairs
/// representing database access information. This is valid only
- /// for so long as the the parser remains in existence.
+ /// for so long as the parser remains in existence.
const DatabaseConnection::ParameterMap& getDbAccessParameters() const {
return (values_);
}
/// the received message and will be the first one to process
/// server's response). RELAY_GET_FIRST will try to get option from
/// the first relay only (closest to the client), RELAY_GET_LAST will
- /// try to get option form the the last relay (closest to the server).
+ /// try to get option form the last relay (closest to the server).
enum RelaySearchOrder {
RELAY_SEARCH_FROM_CLIENT = 1,
RELAY_SEARCH_FROM_SERVER = 2,
ASSERT_EQ(2, buf.size());
// Check that the first value has not changed.
EXPECT_EQ(buf[0], 1);
- // Check the the second value is correct.
+ // Check the second value is correct.
EXPECT_EQ(buf[1], 0);
}
/// - change-type - indicates whether this request is to add or update
/// DNS entries or to remove them. The value is an integer and is
/// 0 for add/update and 1 for remove.
- /// - forward-change - indicates whether the the forward (name to
+ /// - forward-change - indicates whether the forward (name to
/// address) DNS zone should be updated. The value is a string
/// representing a boolean. It is "true" if the zone should be updated
/// and "false" if not. (Unlike the keyword, the boolean value is
/// case-insensitive.)
- /// - reverse-change - indicates whether the the reverse (address to
+ /// - reverse-change - indicates whether the reverse (address to
/// name) DNS zone should be updated. The value is a string
/// representing a boolean. It is "true" if the zone should be updated
/// and "false" if not. (Unlike the keyword, the boolean value is
/// primary purpose of this function is to provide a consistent way to identify
/// requests for logging purposes.
///
- /// @return a string with the the request's request ID (currently DHCID)
+ /// @return a string with the request's request ID (currently DHCID)
std::string getRequestId() const {
return (dhcid_.toStr());
}
void
NameChangeUDPListener::open(isc::asiolink::IOService& io_service) {
- // create our endpoint and bind the the low level socket to it.
+ // create our endpoint and bind the low level socket to it.
isc::asiolink::UDPEndpoint endpoint(ip_address_, port_);
// Create the low level socket.
void
NameChangeUDPSender::open(isc::asiolink::IOService& io_service) {
- // create our endpoint and bind the the low level socket to it.
+ // create our endpoint and bind the low level socket to it.
isc::asiolink::UDPEndpoint endpoint(ip_address_, port_);
// Create the low level socket.
/// @brief Re-create the option in each descriptor based on given definitions
///
/// Invokes @c createDescriptorOption() on each option descriptor in
- /// each option space, passing in the the given dictionary of option
+ /// each option space, passing in the given dictionary of option
/// definitions. If the descriptor's option is re-created, then the
/// descriptor is updated by calling @c replace().
///
template<typename ValueType>
class ValueStorage {
public:
- /// @brief Stores the the parameter, its value and the position in the
+ /// @brief Stores the parameter, its value and the position in the
/// store.
///
/// If the parameter does not exist in the store, then it will be added,
ASSERT_TRUE(lease);
EXPECT_EQ("192.0.2.17", lease->addr_.toText());
- // Make sure the lease is not in the the lease mgr (this is only
+ // Make sure the lease is not in the lease mgr (this is only
// discover).
ASSERT_FALSE(LeaseMgrFactory::instance().getLease4(lease->addr_));
}
ASSERT_TRUE(lease);
EXPECT_EQ("192.0.2.17", lease->addr_.toText());
- // Make sure the lease is in the the lease mgr.
+ // Make sure the lease is in the lease mgr.
ASSERT_TRUE(LeaseMgrFactory::instance().getLease4(lease->addr_));
}
/// \brief Add an RDATA to the RRset (string version).
///
- /// This method constructs an Rdata object from the the given
+ /// This method constructs an Rdata object from the given
/// \c rdata_str in presentation format and adds it to the \c RRset.
///
/// \param rdata_str RDATA string in presentation format.
/// @brief De-Register a callout on a hook for the current library
///
- /// Searches through the functions registered by the the current library
+ /// Searches through the functions registered by the current library
/// with the named hook and removes all entries matching the
/// callout.
///
/// particular hook point only have access to the parking lots dedicated to
/// them.
///
-/// The parking lot object supports 5 actions: "park", "reference", "derefence",
-/// "unpark", and "drop".
+/// The parking lot object supports 5 actions: "park", "reference",
+/// "dereference", "unpark", and "drop".
///
/// In the typical case, the server parks the object and the callouts reference
/// and unpark the objects. Therefore, the @ref ParkingLot object is not passed
/// and "unpark" operations.
///
/// Parking an object is performed, proactively by the server, before callouts
-/// are invoked. Referencing (and derefencing) an object is performed by the
+/// are invoked. Referencing (and dereferencing) an object is performed by the
/// callouts before the @c CalloutHandle::NEXT_STEP_PARK is returned to the
/// server.
///
/// higher-level hooks classes (LibraryManager, LibraryManagerCollection and
/// HooksManager). It
///
-/// - sets the the ServerHooks object with three hooks and stores their
+/// - sets the ServerHooks object with three hooks and stores their
/// indexes.
/// - executes the callouts (which are assumed to perform a calculation)
/// and checks the results.
truncated by the logger if it is too large to be printed.
% HTTP_CLIENT_MT_STARTED HttpClient has been started in multi-threaded mode running %1 threads
-This debug message is issued when a multit-threaded HTTP client instance has
+This debug message is issued when a multi-threaded HTTP client instance has
been created. The argument specifies the maximum number of threads.
% HTTP_CLIENT_REQUEST_AUTHORIZED received HTTP request authorized for '%1'
<dt>DEBUG</dt>
<dd>Debug messages are output at this severity. Each message also
has a debug level associated with it, ranging from 0 (the default)
-for high-level messages and level 99 (the maximum) for the the lowest
+for high-level messages and level 99 (the maximum) for the lowest
level.</dd>
</dl>
/// \brief Finds the "trimmed" end of a buffer
///
-/// Works backward from the the end of the buffer, looking for the first
+/// Works backward from the end of the buffer, looking for the first
/// character not equal to the trim value, and returns an iterator
/// pointing that that position.
///
ASSERT_NO_THROW(csv->flush());
csv->close();
- // Check the the file contents are correct.
+ // Check the file contents are correct.
EXPECT_EQ("animal,age,color\n"
"cat,10,white\n"
"lion,15,yellow\n"
ASSERT_NO_THROW(csv->close());
- // Check the the file contents are correct.
+ // Check the file contents are correct.
EXPECT_EQ("animal\n"
"cat\n"
"lion\n"
case NEEDS_DOWNGRADE:
// The input header exceeded current schema so:
// Rows may be as long as input header but not shorter than
- // the the current schema
+ // the current schema
if (row.getValuesCount() < getColumnCount()) {
columnCountError(row, "too few columns to downgrade");
} else if (row.getValuesCount() > getInputHeaderCount()) {
/// @brief Move parameters from pools to the subnet.
///
- /// Move parameters from pool to its partent subnet. Currently the only
+ /// Move parameters from pool to its parent subnet. Currently the only
/// supported model is ietf-dhcpv6-server. The parameters moved are
/// valid-lifetime, preferred-lifetime, renew-timer, rebind-timer.
///