From 538cf8e75ca889f484ddb1b5658776cc9d938997 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 4 Oct 2019 18:27:40 -0700 Subject: [PATCH 1/9] [clang-tidy] Use auto for long iterators Found with modernize-use-auto. Signed-off-by: Rosen Penev --- dcw/controller.cxx | 6 +++--- dcw/simplenetwork.cxx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dcw/controller.cxx b/dcw/controller.cxx index 5859b9b..20a64d2 100644 --- a/dcw/controller.cxx +++ b/dcw/controller.cxx @@ -193,7 +193,7 @@ void Controller::OnStationUnjoin(const MacAddress& primaryMacAddr, const Message //remove any channel bondings matching the provided data channel mac addresses for (unsigned i = 0; i < m.data_macaddr_count; i++) { const ::dcw::MacAddress dcaddr(m.data_macaddrs[i]); - ::dcw::TrafficPolicy::DataChannelMap::iterator dcmEntry = state.policy.dataChannels.find(dcaddr); + auto dcmEntry = state.policy.dataChannels.find(dcaddr); if (dcmEntry == state.policy.dataChannels.end()) continue; if (dcmEntry->second == NULL) { dcwlogwarnf("Data channel MAC address %s on client %s is not currently bonded\n", dcaddr.ToString().c_str(), primaryMacAddr.ToString().c_str()); @@ -204,7 +204,7 @@ void Controller::OnStationUnjoin(const MacAddress& primaryMacAddr, const Message } //does this client have any more bonded channels? - for (::dcw::TrafficPolicy::DataChannelMap::iterator dcmIter = state.policy.dataChannels.begin(); + for (auto dcmIter = state.policy.dataChannels.begin(); dcmIter != state.policy.dataChannels.end(); dcmIter++) { if (dcmIter->second != NULL) { //yup... the client is still bonded to something... @@ -236,7 +236,7 @@ void Controller::OnStationAck(const MacAddress& primaryMacAddr, const Message& m dcwlogdbgf("Got a station ACK from %s\n", primaryMacAddr.ToString().c_str()); // first make sure this client has actually sent a join first... - ClientStateMap::iterator client = _clients.find(primaryMacAddr); + auto client = _clients.find(primaryMacAddr); if (client == _clients.end()) { dcwlogerrf("Got a client ACK without a station join from %s\n", primaryMacAddr.ToString().c_str()); Message reply(DCWMSG_AP_REJECT_STA); diff --git a/dcw/simplenetwork.cxx b/dcw/simplenetwork.cxx index 1f5bc92..fa8718f 100644 --- a/dcw/simplenetwork.cxx +++ b/dcw/simplenetwork.cxx @@ -48,7 +48,7 @@ const BasicChannel& SimpleNetwork::GetPrimaryChannel() const { } void SimpleNetwork::GetDataChannels(ChannelSet& output) const { - for (std::list::const_iterator i = _dataChannels.begin(); i != _dataChannels.end(); i++) { + for (auto i = _dataChannels.begin(); i != _dataChannels.end(); i++) { output.insert(&(*i)); } } From 2241eb6468d565d436711bbc14a9fc9c83b69f82 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 4 Oct 2019 18:29:50 -0700 Subject: [PATCH 2/9] [clang-tidy] Use noexcept instead of throw Found with modernize-use-noexcept Signed-off-by: Rosen Penev --- dcw/controller.cxx | 2 +- dcw/filetrafficfilterprofile.cxx | 4 ++-- dcw/macaddress.cxx | 2 +- dcw/message.cxx | 4 ++-- dcw/stringtrafficfilterprofile.cxx | 4 ++-- .../arrisxb3_datachan_provisioner.cxx | 2 +- dcwapd.arrisxb3/arrisxb3_dcw.cxx | 2 +- dcwlinux/ap_configuration.cxx | 4 ++-- dcwlinux/brctlnetwork.cxx | 2 +- dcwlinux/jsonparser.ixx | 4 ++-- dcwlinux/macremapper_driver.cxx | 18 +++++++++--------- dcwlinux/vap_manager.cxx | 6 +++--- dcwposix/filterdirscanner.cxx | 2 +- dcwposix/processsignalmanager.cxx | 2 +- dcwposix/selectablemessagesocket.cxx | 6 +++--- dcwposix/selecteventreactor.cxx | 2 +- 16 files changed, 33 insertions(+), 33 deletions(-) diff --git a/dcw/controller.cxx b/dcw/controller.cxx index 20a64d2..c2d4911 100644 --- a/dcw/controller.cxx +++ b/dcw/controller.cxx @@ -10,7 +10,7 @@ namespace { struct UnhandledMessageTypeException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Unhandled message type"; } }; diff --git a/dcw/filetrafficfilterprofile.cxx b/dcw/filetrafficfilterprofile.cxx index d842752..5bdc26e 100644 --- a/dcw/filetrafficfilterprofile.cxx +++ b/dcw/filetrafficfilterprofile.cxx @@ -22,8 +22,8 @@ struct FOpenFailedException : public std::exception { _msg(GenMsg(filename)) { // } - virtual ~FOpenFailedException() throw() {} - virtual const char* what() const throw() { + virtual ~FOpenFailedException() noexcept {} + virtual const char* what() const noexcept { return _msg.c_str(); } }; diff --git a/dcw/macaddress.cxx b/dcw/macaddress.cxx index fbc6e07..d910732 100644 --- a/dcw/macaddress.cxx +++ b/dcw/macaddress.cxx @@ -10,7 +10,7 @@ namespace { struct MacAddressParseException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "MAC Address Parse Exception"; } }; diff --git a/dcw/message.cxx b/dcw/message.cxx index 086fc64..d4d5741 100644 --- a/dcw/message.cxx +++ b/dcw/message.cxx @@ -8,12 +8,12 @@ namespace { struct MessageMarshallException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to marshall DCW message from buffer!"; } }; struct MessageSerializeException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to serialize DCW message from buffer!"; } }; diff --git a/dcw/stringtrafficfilterprofile.cxx b/dcw/stringtrafficfilterprofile.cxx index d008dae..6d17102 100644 --- a/dcw/stringtrafficfilterprofile.cxx +++ b/dcw/stringtrafficfilterprofile.cxx @@ -20,8 +20,8 @@ struct FMemOpenFailedException : public std::exception { _msg(GenMsg()) { // } - virtual ~FMemOpenFailedException() throw() {} - virtual const char* what() const throw() { + virtual ~FMemOpenFailedException() noexcept {} + virtual const char* what() const noexcept { return _msg.c_str(); } }; diff --git a/dcwapd.arrisxb3/arrisxb3_datachan_provisioner.cxx b/dcwapd.arrisxb3/arrisxb3_datachan_provisioner.cxx index d84f43f..2d2b527 100644 --- a/dcwapd.arrisxb3/arrisxb3_datachan_provisioner.cxx +++ b/dcwapd.arrisxb3/arrisxb3_datachan_provisioner.cxx @@ -9,7 +9,7 @@ namespace { struct ActivateDataChannelFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to activate data channel"; } }; diff --git a/dcwapd.arrisxb3/arrisxb3_dcw.cxx b/dcwapd.arrisxb3/arrisxb3_dcw.cxx index 552a030..9c188c3 100644 --- a/dcwapd.arrisxb3/arrisxb3_dcw.cxx +++ b/dcwapd.arrisxb3/arrisxb3_dcw.cxx @@ -8,7 +8,7 @@ namespace { struct BridgeResoveFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to resolv bridge interface name"; } }; diff --git a/dcwlinux/ap_configuration.cxx b/dcwlinux/ap_configuration.cxx index 2a30fda..383f84a 100644 --- a/dcwlinux/ap_configuration.cxx +++ b/dcwlinux/ap_configuration.cxx @@ -11,12 +11,12 @@ namespace { struct ReloadRunningConfigurationNotImplementedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "ReloadRunningConfiguration() Not Yet Implemented"; } }; struct ValidationFailureException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to validate configuration!"; } }; diff --git a/dcwlinux/brctlnetwork.cxx b/dcwlinux/brctlnetwork.cxx index 70a8e0c..1567b95 100644 --- a/dcwlinux/brctlnetwork.cxx +++ b/dcwlinux/brctlnetwork.cxx @@ -14,7 +14,7 @@ namespace { struct BadWiFiChannelInterfaceException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Bad WiFi Channel Interface Exception"; } }; diff --git a/dcwlinux/jsonparser.ixx b/dcwlinux/jsonparser.ixx index f49abfc..a5b1289 100644 --- a/dcwlinux/jsonparser.ixx +++ b/dcwlinux/jsonparser.ixx @@ -22,8 +22,8 @@ class JSONParserException : public std::exception { public: JSONParserException(const char * const msg) : _msg(msg) { } - virtual ~JSONParserException() throw() { } - virtual const char* what() const throw() { + virtual ~JSONParserException() noexcept { } + virtual const char* what() const noexcept { return _msg.c_str(); } }; diff --git a/dcwlinux/macremapper_driver.cxx b/dcwlinux/macremapper_driver.cxx index 27a9dd9..45b1e18 100644 --- a/dcwlinux/macremapper_driver.cxx +++ b/dcwlinux/macremapper_driver.cxx @@ -25,47 +25,47 @@ using namespace dcwlinux; namespace { struct DriverOpenFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to Open The Driver"; } }; struct DriverWipeFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to Wipe the Driver"; } }; struct FilterNameTooLongException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Filter Name Too Long"; } }; struct FilterFileLoadFailException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to Load Filter File"; } }; struct DriverSetFilterFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to Load the Filter Into the Driver"; } }; struct TooManyDataChannelDestinationsException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Too Many Data Channels for Replacement Destination Provided!"; } }; struct RemapFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Device Filter Remap Failed!"; } }; struct RemapDeleteFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Device Filter Remap Delete Failed!"; } }; struct DumpFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to Dump Driver!"; } }; diff --git a/dcwlinux/vap_manager.cxx b/dcwlinux/vap_manager.cxx index 3d248df..d8c6ae7 100644 --- a/dcwlinux/vap_manager.cxx +++ b/dcwlinux/vap_manager.cxx @@ -12,17 +12,17 @@ namespace { struct VAPNotFoundException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "VAP Not Found"; } }; struct VAPAlreadyExistsException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "VAP Already Exists"; } }; struct VAPAllocationFailedException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "VAP Allocation Failed"; } }; diff --git a/dcwposix/filterdirscanner.cxx b/dcwposix/filterdirscanner.cxx index 0e429a0..98b7b09 100644 --- a/dcwposix/filterdirscanner.cxx +++ b/dcwposix/filterdirscanner.cxx @@ -12,7 +12,7 @@ namespace { struct FilterDirScanFailed : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to scan for filter files!"; } }; diff --git a/dcwposix/processsignalmanager.cxx b/dcwposix/processsignalmanager.cxx index fb20238..cb46a22 100644 --- a/dcwposix/processsignalmanager.cxx +++ b/dcwposix/processsignalmanager.cxx @@ -10,7 +10,7 @@ namespace { struct DuplicateManagerException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Only one process signal manager may be created!"; } }; diff --git a/dcwposix/selectablemessagesocket.cxx b/dcwposix/selectablemessagesocket.cxx index 20271b9..1c81348 100644 --- a/dcwposix/selectablemessagesocket.cxx +++ b/dcwposix/selectablemessagesocket.cxx @@ -13,17 +13,17 @@ namespace { struct SelectableMessageSocketOpenException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to open selectable DCW message socket"; } }; struct MessageSocketRecvException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to recv on socket messag socket"; } }; struct MessageSocketSendException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Failed to send on socket messag socket"; } }; diff --git a/dcwposix/selecteventreactor.cxx b/dcwposix/selecteventreactor.cxx index be11b44..d555052 100644 --- a/dcwposix/selecteventreactor.cxx +++ b/dcwposix/selecteventreactor.cxx @@ -17,7 +17,7 @@ namespace { struct IncompatiblePublisherException : public std::exception { - virtual const char* what() const throw() { + virtual const char* what() const noexcept { return "Publisher not compatible with this event reactor"; } }; From 62a8e924cbf5918f8515a98a9139b019cf88c2e3 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 4 Oct 2019 18:31:27 -0700 Subject: [PATCH 3/9] [clang-tidy] Use = default Found with modernize-use-equals-default Signed-off-by: Rosen Penev --- dcw/filetrafficfilterprofile.cxx | 2 +- dcw/stringtrafficfilterprofile.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dcw/filetrafficfilterprofile.cxx b/dcw/filetrafficfilterprofile.cxx index 5bdc26e..a3dc17b 100644 --- a/dcw/filetrafficfilterprofile.cxx +++ b/dcw/filetrafficfilterprofile.cxx @@ -22,7 +22,7 @@ struct FOpenFailedException : public std::exception { _msg(GenMsg(filename)) { // } - virtual ~FOpenFailedException() noexcept {} + virtual ~FOpenFailedException() noexcept = default; virtual const char* what() const noexcept { return _msg.c_str(); } diff --git a/dcw/stringtrafficfilterprofile.cxx b/dcw/stringtrafficfilterprofile.cxx index 6d17102..d138c83 100644 --- a/dcw/stringtrafficfilterprofile.cxx +++ b/dcw/stringtrafficfilterprofile.cxx @@ -20,7 +20,7 @@ struct FMemOpenFailedException : public std::exception { _msg(GenMsg()) { // } - virtual ~FMemOpenFailedException() noexcept {} + virtual ~FMemOpenFailedException() noexcept = default; virtual const char* what() const noexcept { return _msg.c_str(); } From 454bf066e7aa4dba0bfc5b70f5132637da7c77a3 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 4 Oct 2019 18:33:49 -0700 Subject: [PATCH 4/9] [clang-tidy] Use override Found with modernize-use-override Signed-off-by: Rosen Penev --- dcw/controller.cxx | 2 +- dcw/controller.h | 4 ++-- dcw/filetrafficfilterprofile.cxx | 4 ++-- dcw/filetrafficfilterprofile.h | 4 ++-- dcw/macaddress.cxx | 2 +- dcw/message.cxx | 4 ++-- dcw/simplenetwork.h | 10 +++++----- dcw/stringtrafficfilterprofile.cxx | 4 ++-- dcw/stringtrafficfilterprofile.h | 4 ++-- dcwapd.arrisxb3/arrisxb3_dcw.cxx | 2 +- dcwlinux/ap_configuration.cxx | 4 ++-- dcwlinux/ap_configuration.h | 6 +++--- dcwlinux/brctlnetwork.cxx | 2 +- dcwlinux/brctlnetwork.h | 12 ++++++------ dcwlinux/json_configuration_provider.cxx | 12 ++++++------ dcwlinux/json_configuration_provider.h | 12 ++++++------ dcwlinux/jsonparser.ixx | 4 ++-- dcwlinux/macremapper_driver.cxx | 18 +++++++++--------- dcwlinux/macremapper_driver.h | 6 +++--- dcwlinux/vap_manager.cxx | 6 +++--- dcwposix/eventreactorexitsignaler.h | 4 ++-- dcwposix/filterdirscanner.cxx | 2 +- dcwposix/processsignalmanager.cxx | 2 +- dcwposix/selectablemessagesocket.cxx | 6 +++--- dcwposix/selectablemessagesocket.h | 10 +++++----- dcwposix/selecteventreactor.cxx | 2 +- dcwposix/selecteventreactor.h | 20 ++++++++++---------- 27 files changed, 84 insertions(+), 84 deletions(-) diff --git a/dcw/controller.cxx b/dcw/controller.cxx index c2d4911..aa2cf68 100644 --- a/dcw/controller.cxx +++ b/dcw/controller.cxx @@ -10,7 +10,7 @@ namespace { struct UnhandledMessageTypeException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Unhandled message type"; } }; diff --git a/dcw/controller.h b/dcw/controller.h index 919a42b..acb4530 100644 --- a/dcw/controller.h +++ b/dcw/controller.h @@ -25,7 +25,7 @@ class Controller : private EventReactor::IOSubscriber { public: Controller(const DevicePolicy& devicePolicy, TrafficSorter& trafficSorter, const BasicNetwork& network, EventReactor& eventReactor, MessageSocket& msgSocket); - virtual ~Controller(); + ~Controller() override; void SetTelemetryCollector(TelemetryCollector * const telemetryCollector); @@ -40,7 +40,7 @@ class Controller : private EventReactor::IOSubscriber { ClientStateMap _clients; TelemetryCollector * _telemetryCollector; - virtual void OnIOReady(EventReactor::IOProvider& iop); + void OnIOReady(EventReactor::IOProvider& iop) override; void OnMessage(const MacAddress& source, const Message& msg); void OnStationJoin(const MacAddress& primaryMacAddr, const Message& msg); void OnStationUnjoin(const MacAddress& primaryMacAddr, const Message& msg); diff --git a/dcw/filetrafficfilterprofile.cxx b/dcw/filetrafficfilterprofile.cxx index a3dc17b..d872f86 100644 --- a/dcw/filetrafficfilterprofile.cxx +++ b/dcw/filetrafficfilterprofile.cxx @@ -22,8 +22,8 @@ struct FOpenFailedException : public std::exception { _msg(GenMsg(filename)) { // } - virtual ~FOpenFailedException() noexcept = default; - virtual const char* what() const noexcept { + ~FOpenFailedException() noexcept override = default; + const char* what() const noexcept override { return _msg.c_str(); } }; diff --git a/dcw/filetrafficfilterprofile.h b/dcw/filetrafficfilterprofile.h index 389fd80..4e9b1dc 100644 --- a/dcw/filetrafficfilterprofile.h +++ b/dcw/filetrafficfilterprofile.h @@ -9,11 +9,11 @@ namespace dcw { class FileTrafficFilterProfile : public CFileTrafficFilterProfile { public: FileTrafficFilterProfile(const char * const name, const char * const filename); - virtual ~FileTrafficFilterProfile(); + ~FileTrafficFilterProfile() override; FileTrafficFilterProfile(const FileTrafficFilterProfile& rhv); //no reason this cant be copied const char *GetFilename() const; - virtual FILE *fopen() const; + FILE *fopen() const override; private: const std::string _filename; diff --git a/dcw/macaddress.cxx b/dcw/macaddress.cxx index d910732..49af745 100644 --- a/dcw/macaddress.cxx +++ b/dcw/macaddress.cxx @@ -10,7 +10,7 @@ namespace { struct MacAddressParseException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "MAC Address Parse Exception"; } }; diff --git a/dcw/message.cxx b/dcw/message.cxx index d4d5741..3b82fc7 100644 --- a/dcw/message.cxx +++ b/dcw/message.cxx @@ -8,12 +8,12 @@ namespace { struct MessageMarshallException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to marshall DCW message from buffer!"; } }; struct MessageSerializeException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to serialize DCW message from buffer!"; } }; diff --git a/dcw/simplenetwork.h b/dcw/simplenetwork.h index 47640a7..c191c16 100644 --- a/dcw/simplenetwork.h +++ b/dcw/simplenetwork.h @@ -18,9 +18,9 @@ class SimpleChannel : public BasicChannel { SimpleChannel(const char * const ssidName); SimpleChannel(const SimpleChannel& rhv); explicit SimpleChannel(const BasicChannel& bc); - virtual ~SimpleChannel(); + ~SimpleChannel() override; - virtual const char *GetSsidName() const; + const char *GetSsidName() const override; }; //SimpleNetwork -- Simple text-only (ssid) implementation of a network @@ -30,9 +30,9 @@ class SimpleNetwork : public BasicNetwork { public: explicit SimpleNetwork(const char * const primarySsidName); - virtual ~SimpleNetwork(); - virtual const BasicChannel& GetPrimaryChannel() const; - virtual void GetDataChannels(ChannelSet& output) const; + ~SimpleNetwork() override; + const BasicChannel& GetPrimaryChannel() const override; + void GetDataChannels(ChannelSet& output) const override; void InsertDataChannel(const char * const ssidName); }; diff --git a/dcw/stringtrafficfilterprofile.cxx b/dcw/stringtrafficfilterprofile.cxx index d138c83..b0ae1fd 100644 --- a/dcw/stringtrafficfilterprofile.cxx +++ b/dcw/stringtrafficfilterprofile.cxx @@ -20,8 +20,8 @@ struct FMemOpenFailedException : public std::exception { _msg(GenMsg()) { // } - virtual ~FMemOpenFailedException() noexcept = default; - virtual const char* what() const noexcept { + ~FMemOpenFailedException() noexcept override = default; + const char* what() const noexcept override { return _msg.c_str(); } }; diff --git a/dcw/stringtrafficfilterprofile.h b/dcw/stringtrafficfilterprofile.h index 021f04f..a0cfdb3 100644 --- a/dcw/stringtrafficfilterprofile.h +++ b/dcw/stringtrafficfilterprofile.h @@ -9,11 +9,11 @@ namespace dcw { class StringTrafficFilterProfile : public CFileTrafficFilterProfile { public: StringTrafficFilterProfile(const char * const name, const char * const contents); - virtual ~StringTrafficFilterProfile(); + ~StringTrafficFilterProfile() override; StringTrafficFilterProfile(const StringTrafficFilterProfile& rhv); //no reason this cant be copied const char *GetContents() const; - virtual FILE *fopen() const; + FILE *fopen() const override; private: const std::string _contents; diff --git a/dcwapd.arrisxb3/arrisxb3_dcw.cxx b/dcwapd.arrisxb3/arrisxb3_dcw.cxx index 9c188c3..80ebd6b 100644 --- a/dcwapd.arrisxb3/arrisxb3_dcw.cxx +++ b/dcwapd.arrisxb3/arrisxb3_dcw.cxx @@ -8,7 +8,7 @@ namespace { struct BridgeResoveFailedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to resolv bridge interface name"; } }; diff --git a/dcwlinux/ap_configuration.cxx b/dcwlinux/ap_configuration.cxx index 383f84a..52947da 100644 --- a/dcwlinux/ap_configuration.cxx +++ b/dcwlinux/ap_configuration.cxx @@ -11,12 +11,12 @@ namespace { struct ReloadRunningConfigurationNotImplementedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "ReloadRunningConfiguration() Not Yet Implemented"; } }; struct ValidationFailureException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to validate configuration!"; } }; diff --git a/dcwlinux/ap_configuration.h b/dcwlinux/ap_configuration.h index 20edcb5..df3ec53 100644 --- a/dcwlinux/ap_configuration.h +++ b/dcwlinux/ap_configuration.h @@ -37,7 +37,7 @@ class APConfiguration : public dcw::DevicePolicy { public: explicit APConfiguration(const APConfigurationProvider& initialConfiguration); - virtual ~APConfiguration(); + ~APConfiguration() override; void Apply(MacRemapperDriver& driver, VAPManager& vapman, ::dcw::EventReactor& eventReactor) const; @@ -45,8 +45,8 @@ class APConfiguration : public dcw::DevicePolicy { void Dump() const; - virtual const dcw::TrafficFilterProfile& GetTrafficFilterProfile(const dcw::MacAddress& device) const; - virtual void FilterPermittedDataChannels(const dcw::MacAddress& device, const unsigned deviceTotalCapableDataChannels, dcw::BasicNetwork::ChannelSet& allowedDataChannels) const; + const dcw::TrafficFilterProfile& GetTrafficFilterProfile(const dcw::MacAddress& device) const override; + void FilterPermittedDataChannels(const dcw::MacAddress& device, const unsigned deviceTotalCapableDataChannels, dcw::BasicNetwork::ChannelSet& allowedDataChannels) const override; private: diff --git a/dcwlinux/brctlnetwork.cxx b/dcwlinux/brctlnetwork.cxx index 1567b95..febf624 100644 --- a/dcwlinux/brctlnetwork.cxx +++ b/dcwlinux/brctlnetwork.cxx @@ -14,7 +14,7 @@ namespace { struct BadWiFiChannelInterfaceException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Bad WiFi Channel Interface Exception"; } }; diff --git a/dcwlinux/brctlnetwork.h b/dcwlinux/brctlnetwork.h index abeef8e..e858448 100644 --- a/dcwlinux/brctlnetwork.h +++ b/dcwlinux/brctlnetwork.h @@ -22,10 +22,10 @@ class BrctlChannel : public ::dcw::BasicChannel { BrctlChannel(const char * const ssidName, const char * const brifName); BrctlChannel(const BrctlChannel& rhv); BrctlChannel(const BasicChannel& bc); - virtual ~BrctlChannel(); + ~BrctlChannel() override; - virtual const char *GetSsidName() const; - virtual const char *GetIfName() const; + const char *GetSsidName() const override; + const char *GetIfName() const; private: void ValidateBrifName() const; @@ -37,9 +37,9 @@ class BrctlNetwork : public ::dcw::BasicNetwork { public: BrctlNetwork(const char * const primarySsidName, const char * const primaryBrifName); - virtual ~BrctlNetwork(); - virtual const ::dcw::BasicChannel& GetPrimaryChannel() const; - virtual void GetDataChannels(ChannelSet& output) const; + ~BrctlNetwork() override; + const ::dcw::BasicChannel& GetPrimaryChannel() const override; + void GetDataChannels(ChannelSet& output) const override; void InsertDataChannel(const char * const ssidName, const char *brifName = NULL); //NULL = no interface remap... }; diff --git a/dcwlinux/json_configuration_provider.cxx b/dcwlinux/json_configuration_provider.cxx index 096c6cf..43ea152 100644 --- a/dcwlinux/json_configuration_provider.cxx +++ b/dcwlinux/json_configuration_provider.cxx @@ -117,11 +117,11 @@ class JsonConfigurationProviderGuts : public APConfigurationProvider { } } - virtual ~JsonConfigurationProviderGuts() { + ~JsonConfigurationProviderGuts() override { // } - virtual void InstanciateCFileTrafficFilterProfiles(CFTFPList& output) const { + void InstanciateCFileTrafficFilterProfiles(CFTFPList& output) const override { ::dcwposix::FilterdirScanner::FileFilterProfileList ffpl; ::dcwposix::FilterdirScanner dirScanner(_filterDirectory.c_str()); dirScanner.Scan(ffpl); @@ -131,13 +131,13 @@ class JsonConfigurationProviderGuts : public APConfigurationProvider { } } - virtual void GetPrimarySsids(SsidSet& output) const { + void GetPrimarySsids(SsidSet& output) const override { for (PrimaryChannelMap::const_iterator i = _primaryChannels.begin(); i != _primaryChannels.end(); i++) { output.insert(i->first); } } - virtual void GetDataSsids(SsidSet& output, const char * const primarySsid) const { + void GetDataSsids(SsidSet& output, const char * const primarySsid) const override { const PrimaryChannelMap::const_iterator pssid = _primaryChannels.find(primarySsid); if (pssid == _primaryChannels.end()) return; @@ -146,7 +146,7 @@ class JsonConfigurationProviderGuts : public APConfigurationProvider { } } - virtual const char *GetSsidIfname(const char * const ssid) const { + const char *GetSsidIfname(const char * const ssid) const override { PrimaryChannelMap::const_iterator pssid = _primaryChannels.find(ssid); if (pssid != _primaryChannels.end()) { if (pssid->second.bridgeName.empty()) { @@ -167,7 +167,7 @@ class JsonConfigurationProviderGuts : public APConfigurationProvider { return NULL; } - virtual void GetStationTrafficFilterProfiles(StationTFPMap& output) const { + void GetStationTrafficFilterProfiles(StationTFPMap& output) const override { for (StationFilterMap::const_iterator i = _stationFilters.begin(); i != _stationFilters.end(); i++) { output[i->first] = i->second; } diff --git a/dcwlinux/json_configuration_provider.h b/dcwlinux/json_configuration_provider.h index 75ef58c..7b01cf2 100644 --- a/dcwlinux/json_configuration_provider.h +++ b/dcwlinux/json_configuration_provider.h @@ -14,13 +14,13 @@ class JsonConfigurationProvider : public APConfigurationProvider { public: explicit JsonConfigurationProvider(const char * const confFilename); - virtual ~JsonConfigurationProvider(); + ~JsonConfigurationProvider() override; - virtual void InstanciateCFileTrafficFilterProfiles(CFTFPList& output) const; - virtual void GetPrimarySsids(SsidSet& output) const; - virtual void GetDataSsids(SsidSet& output, const char * const primarySsid) const; - virtual const char *GetSsidIfname(const char * const ssid) const; - virtual void GetStationTrafficFilterProfiles(StationTFPMap& output) const; + void InstanciateCFileTrafficFilterProfiles(CFTFPList& output) const override; + void GetPrimarySsids(SsidSet& output) const override; + void GetDataSsids(SsidSet& output, const char * const primarySsid) const override; + const char *GetSsidIfname(const char * const ssid) const override; + void GetStationTrafficFilterProfiles(StationTFPMap& output) const override; }; } // namespace dcwlinux diff --git a/dcwlinux/jsonparser.ixx b/dcwlinux/jsonparser.ixx index a5b1289..2f6e872 100644 --- a/dcwlinux/jsonparser.ixx +++ b/dcwlinux/jsonparser.ixx @@ -22,8 +22,8 @@ class JSONParserException : public std::exception { public: JSONParserException(const char * const msg) : _msg(msg) { } - virtual ~JSONParserException() noexcept { } - virtual const char* what() const noexcept { + ~JSONParserException() noexcept override { } + const char* what() const noexcept override { return _msg.c_str(); } }; diff --git a/dcwlinux/macremapper_driver.cxx b/dcwlinux/macremapper_driver.cxx index 45b1e18..7c03e0b 100644 --- a/dcwlinux/macremapper_driver.cxx +++ b/dcwlinux/macremapper_driver.cxx @@ -25,47 +25,47 @@ using namespace dcwlinux; namespace { struct DriverOpenFailedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to Open The Driver"; } }; struct DriverWipeFailedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to Wipe the Driver"; } }; struct FilterNameTooLongException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Filter Name Too Long"; } }; struct FilterFileLoadFailException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to Load Filter File"; } }; struct DriverSetFilterFailedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to Load the Filter Into the Driver"; } }; struct TooManyDataChannelDestinationsException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Too Many Data Channels for Replacement Destination Provided!"; } }; struct RemapFailedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Device Filter Remap Failed!"; } }; struct RemapDeleteFailedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Device Filter Remap Delete Failed!"; } }; struct DumpFailedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to Dump Driver!"; } }; diff --git a/dcwlinux/macremapper_driver.h b/dcwlinux/macremapper_driver.h index 80961f6..60fcf3d 100644 --- a/dcwlinux/macremapper_driver.h +++ b/dcwlinux/macremapper_driver.h @@ -14,15 +14,15 @@ class MacRemapperDriver : public dcw::TrafficSorter { public: MacRemapperDriver(); - virtual ~MacRemapperDriver(); + ~MacRemapperDriver() override; void Dump() const; static bool ValidateFilter(const ::dcw::CFileTrafficFilterProfile& filter); void ParseAndLoadFilter(const ::dcw::CFileTrafficFilterProfile& filter); - virtual void ApplyClientTrafficPolicy(const dcw::MacAddress& primaryAddr, const dcw::TrafficPolicy& policy); - virtual void RemoveClientTrafficPolicy(const dcw::MacAddress& primaryAddr); + void ApplyClientTrafficPolicy(const dcw::MacAddress& primaryAddr, const dcw::TrafficPolicy& policy) override; + void RemoveClientTrafficPolicy(const dcw::MacAddress& primaryAddr) override; private: diff --git a/dcwlinux/vap_manager.cxx b/dcwlinux/vap_manager.cxx index d8c6ae7..ba077d6 100644 --- a/dcwlinux/vap_manager.cxx +++ b/dcwlinux/vap_manager.cxx @@ -12,17 +12,17 @@ namespace { struct VAPNotFoundException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "VAP Not Found"; } }; struct VAPAlreadyExistsException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "VAP Already Exists"; } }; struct VAPAllocationFailedException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "VAP Allocation Failed"; } }; diff --git a/dcwposix/eventreactorexitsignaler.h b/dcwposix/eventreactorexitsignaler.h index f0af7ae..d23d1e8 100644 --- a/dcwposix/eventreactorexitsignaler.h +++ b/dcwposix/eventreactorexitsignaler.h @@ -18,8 +18,8 @@ class EventReactorExitSignalHandler : public ::dcwposix::ProcessSignalManager::E public: EventReactorExitSignalHandler(ProcessSignalManager& psm, ::dcw::EventReactor& er); - virtual ~EventReactorExitSignalHandler(); - virtual void OnSignal(int signum); + ~EventReactorExitSignalHandler() override; + void OnSignal(int signum) override; }; diff --git a/dcwposix/filterdirscanner.cxx b/dcwposix/filterdirscanner.cxx index 98b7b09..f6c2862 100644 --- a/dcwposix/filterdirscanner.cxx +++ b/dcwposix/filterdirscanner.cxx @@ -12,7 +12,7 @@ namespace { struct FilterDirScanFailed : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to scan for filter files!"; } }; diff --git a/dcwposix/processsignalmanager.cxx b/dcwposix/processsignalmanager.cxx index cb46a22..ca0d405 100644 --- a/dcwposix/processsignalmanager.cxx +++ b/dcwposix/processsignalmanager.cxx @@ -10,7 +10,7 @@ namespace { struct DuplicateManagerException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Only one process signal manager may be created!"; } }; diff --git a/dcwposix/selectablemessagesocket.cxx b/dcwposix/selectablemessagesocket.cxx index 1c81348..6276e2b 100644 --- a/dcwposix/selectablemessagesocket.cxx +++ b/dcwposix/selectablemessagesocket.cxx @@ -13,17 +13,17 @@ namespace { struct SelectableMessageSocketOpenException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to open selectable DCW message socket"; } }; struct MessageSocketRecvException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to recv on socket messag socket"; } }; struct MessageSocketSendException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Failed to send on socket messag socket"; } }; diff --git a/dcwposix/selectablemessagesocket.h b/dcwposix/selectablemessagesocket.h index 1e065d7..a0e7f8a 100644 --- a/dcwposix/selectablemessagesocket.h +++ b/dcwposix/selectablemessagesocket.h @@ -13,13 +13,13 @@ namespace dcwposix { class SelectableMessageSocket : public dcw::MessageSocket, public SelectEventReactor::SelectableIOProvider { public: explicit SelectableMessageSocket(const char * const interfaceName); - virtual ~SelectableMessageSocket(); + ~SelectableMessageSocket() override; - virtual void ReceiveMessage(dcw::MacAddress& source, dcw::Message& msg); - virtual void TransmitMessage(const dcw::MacAddress& dest, const dcw::Message& msg); - virtual void GetSourceMacAddress(dcw::MacAddress& source); + void ReceiveMessage(dcw::MacAddress& source, dcw::Message& msg) override; + void TransmitMessage(const dcw::MacAddress& dest, const dcw::Message& msg) override; + void GetSourceMacAddress(dcw::MacAddress& source) override; - virtual int GetSelectableFd() const; + int GetSelectableFd() const override; private: SelectableMessageSocket(SelectableMessageSocket& rhv); //no copy diff --git a/dcwposix/selecteventreactor.cxx b/dcwposix/selecteventreactor.cxx index d555052..56da7b8 100644 --- a/dcwposix/selecteventreactor.cxx +++ b/dcwposix/selecteventreactor.cxx @@ -17,7 +17,7 @@ namespace { struct IncompatiblePublisherException : public std::exception { - virtual const char* what() const noexcept { + const char* what() const noexcept override { return "Publisher not compatible with this event reactor"; } }; diff --git a/dcwposix/selecteventreactor.h b/dcwposix/selecteventreactor.h index dd35ebf..0b1787e 100644 --- a/dcwposix/selecteventreactor.h +++ b/dcwposix/selecteventreactor.h @@ -19,16 +19,16 @@ class SelectEventReactor : public dcw::EventReactor { }; SelectEventReactor(); - virtual ~SelectEventReactor(); - - virtual void Run(); - virtual void Stop(); - virtual void RegisterIOSubscriber(IOSubscriber& sub, EventReactor::IOProvider& pub); - virtual void UnegisterIOSubscriber(IOSubscriber& sub); - virtual void ArmTimer(Timer& timer, unsigned seconds); - virtual void DisarmTimer(Timer& timer); - virtual void SleepSec(const unsigned seconds) const; - virtual void SleepMs(const unsigned milliseconds) const; + ~SelectEventReactor() override; + + void Run() override; + void Stop() override; + void RegisterIOSubscriber(IOSubscriber& sub, EventReactor::IOProvider& pub) override; + void UnegisterIOSubscriber(IOSubscriber& sub) override; + void ArmTimer(Timer& timer, unsigned seconds) override; + void DisarmTimer(Timer& timer) override; + void SleepSec(const unsigned seconds) const override; + void SleepMs(const unsigned milliseconds) const override; private: typedef std::set IOPubSet; From 6f3af8fcd70d6ee4d74b304a0905bc2b867dc00c Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Thu, 10 Oct 2019 15:37:10 -0700 Subject: [PATCH 5/9] [clang-tidy] Use delete Found with hicpp-use-equals-delete Signed-off-by: Rosen Penev --- dcwlinux/json_configuration_provider.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dcwlinux/json_configuration_provider.cxx b/dcwlinux/json_configuration_provider.cxx index 43ea152..8bc2734 100644 --- a/dcwlinux/json_configuration_provider.cxx +++ b/dcwlinux/json_configuration_provider.cxx @@ -10,7 +10,7 @@ namespace dcwlinux { class JsonConfigurationProviderGuts : public APConfigurationProvider { - JsonConfigurationProviderGuts(const JsonConfigurationProviderGuts&); //no copy + JsonConfigurationProviderGuts(const JsonConfigurationProviderGuts&) = delete; //no copy const std::string _confFilename; typedef std::map DataChannelBridgeMap; From 499fb8a208cdcc15abe41bf2d968cb8f05fbb367 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Thu, 10 Oct 2019 15:42:58 -0700 Subject: [PATCH 6/9] [clang-tidy] Remove redundant .c_str Found with readability-redundant-string-cstr Signed-off-by: Rosen Penev --- dcwposix/filterdirscanner.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dcwposix/filterdirscanner.cxx b/dcwposix/filterdirscanner.cxx index f6c2862..700ab37 100644 --- a/dcwposix/filterdirscanner.cxx +++ b/dcwposix/filterdirscanner.cxx @@ -56,7 +56,7 @@ void FilterdirScanner::Scan(FileFilterProfileList& output) { filterName.resize(filterName.size() - strlen(matchExtension)); //create the filename with the path... - filterFilePath = _path.c_str(); + filterFilePath = _path; filterFilePath += '/'; filterFilePath += de->d_name; From 7313e9c469a1af1c4c8fda679ae0330bb83f4939 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Thu, 10 Oct 2019 15:52:24 -0700 Subject: [PATCH 7/9] [clang-tidy] Use auto Found with modernize-use-auto Signed-off-by: Rosen Penev --- dcwlinux/ap_configuration.cxx | 32 ++++++++++++------------ dcwlinux/brctlnetwork.cxx | 2 +- dcwlinux/json_configuration_provider.cxx | 8 +++--- dcwlinux/macremapper_driver.cxx | 4 +-- dcwlinux/vap_manager.cxx | 10 ++++---- dcwposix/processsignalmanager.cxx | 8 +++--- dcwposix/selecteventreactor.cxx | 4 +-- 7 files changed, 34 insertions(+), 34 deletions(-) diff --git a/dcwlinux/ap_configuration.cxx b/dcwlinux/ap_configuration.cxx index 52947da..55c0f03 100644 --- a/dcwlinux/ap_configuration.cxx +++ b/dcwlinux/ap_configuration.cxx @@ -44,13 +44,13 @@ APConfiguration::~APConfiguration() { void APConfiguration::Apply(MacRemapperDriver& driver, VAPManager& vapman, ::dcw::EventReactor& eventReactor) const { //load the traffic filter profiles into the driver... - for (CFTFPMap::const_iterator i = _trafficFilterProfiles.begin(); i != _trafficFilterProfiles.end(); i++) { + for (auto i = _trafficFilterProfiles.begin(); i != _trafficFilterProfiles.end(); i++) { driver.ParseAndLoadFilter(*i->second); //XXX defensive check for NULL? } //instanciate all the virtual APs... (one per primary SSID) - for (PrimaryDataMap::const_iterator i = _primaryDataMap.begin(); i != _primaryDataMap.end(); i++) { + for (auto i = _primaryDataMap.begin(); i != _primaryDataMap.end(); i++) { const char * const pssidName = i->first.c_str(); const SsidIfnameMap::const_iterator ifnameIter = _ssidIfnameMap.find(pssidName); if (ifnameIter == _ssidIfnameMap.end()) { @@ -70,7 +70,7 @@ void APConfiguration::Apply(MacRemapperDriver& driver, VAPManager& vapman, ::dcw ); //give it its data channels... - for (SsidSet::const_iterator j = i->second.begin(); j != i->second.end(); j++) { + for (auto j = i->second.begin(); j != i->second.end(); j++) { const char * const dssidName = j->c_str(); //determine the data channel interface name (if any) @@ -93,32 +93,32 @@ void APConfiguration::Dump() const { dcwlogdbgf("%s\n", "AP Configuration Dump:"); dcwlogdbgf("%s\n", " Traffic Filter Profiles:"); - for (CFTFPMap::const_iterator i = _trafficFilterProfiles.begin(); i != _trafficFilterProfiles.end(); i++) { + for (auto i = _trafficFilterProfiles.begin(); i != _trafficFilterProfiles.end(); i++) { dcwlogdbgf(" %s\n", i->second->GetName()); } dcwlogdbgf("%s\n", " SSIDs:"); - for (PrimaryDataMap::const_iterator i = _primaryDataMap.begin(); i != _primaryDataMap.end(); i++) { + for (auto i = _primaryDataMap.begin(); i != _primaryDataMap.end(); i++) { dcwlogdbgf(" Primary '%s'\n", i->first.c_str()); - for(SsidSet::const_iterator j = i->second.begin(); j != i->second.end(); j++) { + for(auto j = i->second.begin(); j != i->second.end(); j++) { dcwlogdbgf(" Data '%s'\n", j->c_str()); } } dcwlogdbgf("%s\n", " SSID Interfaces:"); - for (SsidIfnameMap::const_iterator i = _ssidIfnameMap.begin(); i != _ssidIfnameMap.end(); i++) { + for (auto i = _ssidIfnameMap.begin(); i != _ssidIfnameMap.end(); i++) { dcwlogdbgf(" '%s' -> '%s'\n", i->first.c_str(), i->second.c_str()); } dcwlogdbgf("%s\n", " Station Traffic Filter Profiles:"); - for (StationCFTFPMap::const_iterator i = _stationFilterProfiles.begin(); i != _stationFilterProfiles.end(); i++) { + for (auto i = _stationFilterProfiles.begin(); i != _stationFilterProfiles.end(); i++) { dcwlogdbgf(" '%s' -> '%s'\n", i->first.ToString().c_str(), i->second->GetName()); } } const dcw::TrafficFilterProfile& APConfiguration::GetTrafficFilterProfile(const dcw::MacAddress& device) const { //first lookup the TFP name we intend to use for this device... - StationCFTFPMap::const_iterator stationTfp = _stationFilterProfiles.find(device); + auto stationTfp = _stationFilterProfiles.find(device); if (stationTfp == _stationFilterProfiles.end()) { //lookup failed... use the default traffic filter profile for this device... dcwlogdbgf("Defaulting device %s to default profile\n", device.ToString().c_str()); @@ -183,7 +183,7 @@ void APConfiguration::LoadConfiguration(const APConfigurationProvider& conf) { conf.GetPrimarySsids(primarySsids); //XXX... is it a good idea to load directly here? (as opposed to a seperate set declared here on the stack) //load each primary SSID's configuration... - for (SsidSet::const_iterator pssidIter = primarySsids.begin(); pssidIter != primarySsids.end(); pssidIter++) { + for (auto pssidIter = primarySsids.begin(); pssidIter != primarySsids.end(); pssidIter++) { const char * const pssidName = pssidIter->c_str(); //create an entry in the primary data map... @@ -207,7 +207,7 @@ void APConfiguration::LoadConfiguration(const APConfigurationProvider& conf) { //get the associated data channels for this primary ssid... SsidSet dataSsids; conf.GetDataSsids(dataSsids, pssidName); - for (SsidSet::const_iterator dssidIter = dataSsids.begin(); dssidIter != dataSsids.end(); dssidIter++) { + for (auto dssidIter = dataSsids.begin(); dssidIter != dataSsids.end(); dssidIter++) { const char * const dssidName = dssidIter->c_str(); //get the data channel's interface name (if any) @@ -249,7 +249,7 @@ void APConfiguration::Cleanup() { void APConfiguration::SelfValidate() const { - for (PrimaryDataMap::const_iterator pdcIter = _primaryDataMap.begin(); pdcIter != _primaryDataMap.end(); pdcIter++) { + for (auto pdcIter = _primaryDataMap.begin(); pdcIter != _primaryDataMap.end(); pdcIter++) { const char * const pssidName = pdcIter->first.c_str(); //ensure each primary SSID has at least one data channel @@ -259,7 +259,7 @@ void APConfiguration::SelfValidate() const { } //validate the associated data channels: - for (SsidSet::const_iterator dssidIter = pdcIter->second.begin(); dssidIter != pdcIter->second.end(); dssidIter++) { + for (auto dssidIter = pdcIter->second.begin(); dssidIter != pdcIter->second.end(); dssidIter++) { const char * const dssidName = dssidIter->c_str(); //ensure the data ssid name is NOT used as a primary... @@ -269,7 +269,7 @@ void APConfiguration::SelfValidate() const { } //warn for each data SSID that does not have an associated network interface - SsidIfnameMap::const_iterator sifnIter = _ssidIfnameMap.find(dssidName); + auto sifnIter = _ssidIfnameMap.find(dssidName); if (sifnIter == _ssidIfnameMap.end()) { dcwlogwarnf("Configured data SSID \"%s\" for primary SSID \"%s\" has no associated network interface. Will use the primary interface.\n", dssidName, pssidName); } @@ -277,7 +277,7 @@ void APConfiguration::SelfValidate() const { //ensure each primary SSID has an associated network interface - SsidIfnameMap::const_iterator sifnIter = _ssidIfnameMap.find(pssidName); + auto sifnIter = _ssidIfnameMap.find(pssidName); if (sifnIter == _ssidIfnameMap.end()) { dcwlogerrf("Configured primary SSID \"%s\" has no associated network interface\n", pssidName); throw ValidationFailureException(); @@ -291,7 +291,7 @@ void APConfiguration::SelfValidate() const { } //ensure we have a default traffic filter profile - CFTFPMap::const_iterator tfpIter = _trafficFilterProfiles.find(_defaultProfileName); + auto tfpIter = _trafficFilterProfiles.find(_defaultProfileName); if (tfpIter == _trafficFilterProfiles.end()) { dcwlogerrf("We don't have a default traffic profile (\"%s\")!\n", _defaultProfileName); throw ValidationFailureException(); diff --git a/dcwlinux/brctlnetwork.cxx b/dcwlinux/brctlnetwork.cxx index febf624..3c7095c 100644 --- a/dcwlinux/brctlnetwork.cxx +++ b/dcwlinux/brctlnetwork.cxx @@ -95,7 +95,7 @@ const ::dcw::BasicChannel& BrctlNetwork::GetPrimaryChannel() const { } void BrctlNetwork::GetDataChannels(ChannelSet& output) const { - for (std::list::const_iterator i = _dataChannels.begin(); i != _dataChannels.end(); i++) { + for (auto i = _dataChannels.begin(); i != _dataChannels.end(); i++) { output.insert(&(*i)); } } diff --git a/dcwlinux/json_configuration_provider.cxx b/dcwlinux/json_configuration_provider.cxx index 8bc2734..08094cc 100644 --- a/dcwlinux/json_configuration_provider.cxx +++ b/dcwlinux/json_configuration_provider.cxx @@ -132,7 +132,7 @@ class JsonConfigurationProviderGuts : public APConfigurationProvider { } void GetPrimarySsids(SsidSet& output) const override { - for (PrimaryChannelMap::const_iterator i = _primaryChannels.begin(); i != _primaryChannels.end(); i++) { + for (auto i = _primaryChannels.begin(); i != _primaryChannels.end(); i++) { output.insert(i->first); } } @@ -141,13 +141,13 @@ class JsonConfigurationProviderGuts : public APConfigurationProvider { const PrimaryChannelMap::const_iterator pssid = _primaryChannels.find(primarySsid); if (pssid == _primaryChannels.end()) return; - for (DataChannelBridgeMap::const_iterator i = pssid->second.dataChannels.begin(); i != pssid->second.dataChannels.end(); i++) { + for (auto i = pssid->second.dataChannels.begin(); i != pssid->second.dataChannels.end(); i++) { output.insert(i->first); } } const char *GetSsidIfname(const char * const ssid) const override { - PrimaryChannelMap::const_iterator pssid = _primaryChannels.find(ssid); + auto pssid = _primaryChannels.find(ssid); if (pssid != _primaryChannels.end()) { if (pssid->second.bridgeName.empty()) { return NULL; @@ -168,7 +168,7 @@ class JsonConfigurationProviderGuts : public APConfigurationProvider { return NULL; } void GetStationTrafficFilterProfiles(StationTFPMap& output) const override { - for (StationFilterMap::const_iterator i = _stationFilters.begin(); i != _stationFilters.end(); i++) { + for (auto i = _stationFilters.begin(); i != _stationFilters.end(); i++) { output[i->first] = i->second; } diff --git a/dcwlinux/macremapper_driver.cxx b/dcwlinux/macremapper_driver.cxx index 7c03e0b..8f93a06 100644 --- a/dcwlinux/macremapper_driver.cxx +++ b/dcwlinux/macremapper_driver.cxx @@ -153,7 +153,7 @@ void MacRemapperDriver::ApplyClientTrafficPolicy(const dcw::MacAddress& primaryA dcwloginfof("Applying MRM remap for device %s using traffic filter profile: %s\n", primaryAddr.ToString().c_str(), policy.trafficFilterProfile->GetName()); //first filter out the unbonded data channels (NULL BasicChannel*) - for (::dcw::TrafficPolicy::DataChannelMap::const_iterator i = policy.dataChannels.begin() ; i != policy.dataChannels.end(); i++) { + for (auto i = policy.dataChannels.begin() ; i != policy.dataChannels.end(); i++) { if (i->second != NULL) { dataChannels[i->first] = i->second; } @@ -185,7 +185,7 @@ void MacRemapperDriver::ApplyClientTrafficPolicy(const dcw::MacAddress& primaryA memcpy(re.replace[re.replace_count].macaddr, dest.Value, sizeof(re.replace[re.replace_count].macaddr)); //do we have an interface to remap to? - const BrctlChannel * const btctlChannel = dynamic_cast(channel->second); + const auto * const btctlChannel = dynamic_cast(channel->second); if (btctlChannel != NULL) { if (btctlChannel->GetIfName() != NULL) { strncpy(re.replace[re.replace_count].ifname, btctlChannel->GetIfName(), sizeof(re.replace[re.replace_count].ifname)); diff --git a/dcwlinux/vap_manager.cxx b/dcwlinux/vap_manager.cxx index ba077d6..7057e88 100644 --- a/dcwlinux/vap_manager.cxx +++ b/dcwlinux/vap_manager.cxx @@ -35,7 +35,7 @@ VAPManager::VAPManager() { } VAPManager::~VAPManager() { - for (VAPSet::const_iterator i = _vaps.begin(); i != _vaps.end(); i++) { + for (auto i = _vaps.begin(); i != _vaps.end(); i++) { delete(*i); } _vaps.clear(); //defensive... @@ -49,14 +49,14 @@ VirtualAP& VAPManager::InstanciateVAP( ::dcw::EventReactor& eventReactor) { //first ensure the VAP dont already exist... - for (VAPSet::const_iterator i = _vaps.begin(); i != _vaps.end(); i++) { + for (auto i = _vaps.begin(); i != _vaps.end(); i++) { if (strcmp((*i)->GetPrimaryChannel().GetSsidName(), primarySsidName) == 0) { throw VAPAlreadyExistsException(); } } //then instanciate it... - VirtualAP * const vap = new VirtualAP( + auto * const vap = new VirtualAP( primarySsidName, primarySsidIfName, devicePolicy, @@ -74,7 +74,7 @@ VirtualAP& VAPManager::InstanciateVAP( } VirtualAP& VAPManager::operator[](const char * const primarySsidName) const { - for (VAPSet::const_iterator i = _vaps.begin(); i != _vaps.end(); i++) { + for (auto i = _vaps.begin(); i != _vaps.end(); i++) { if (strcmp((*i)->GetPrimaryChannel().GetSsidName(), primarySsidName) == 0) { return *(*i); } @@ -87,7 +87,7 @@ void DestroyVAP(const char * const primarySsidName) { } void VAPManager::SetAllTelemetryCollector(::dcw::TelemetryCollector * const tc) { - for (VAPSet::const_iterator i = _vaps.begin(); i != _vaps.end(); i++) { + for (auto i = _vaps.begin(); i != _vaps.end(); i++) { (*i)->SetTelemetryCollector(tc); } } diff --git a/dcwposix/processsignalmanager.cxx b/dcwposix/processsignalmanager.cxx index ca0d405..3e200d1 100644 --- a/dcwposix/processsignalmanager.cxx +++ b/dcwposix/processsignalmanager.cxx @@ -40,7 +40,7 @@ ProcessSignalManager::~ProcessSignalManager() { } void ProcessSignalManager::RegisterEventHandler(const int signum, ::dcwposix::ProcessSignalManager::EventHandler& eventHandler) { - SignalMap::iterator i = _sigmap.find(signum); + auto i = _sigmap.find(signum); if (i == _sigmap.end()) { //be sure to preseve the old signal when inserting a new "unseen" signal _sigmap[signum].insert(&eventHandler); @@ -53,7 +53,7 @@ void ProcessSignalManager::RegisterEventHandler(const int signum, ::dcwposix::Pr } void ProcessSignalManager::UnRegisterEventHandler(const int signum, ::dcwposix::ProcessSignalManager::EventHandler& eventHandler) { - SignalMap::iterator i = _sigmap.find(signum); + auto i = _sigmap.find(signum); if (i == _sigmap.end()) { dcwlogwarnf("Attempting to unregister handler %p non-registered process signal #%d\n", &eventHandler, signum); @@ -84,7 +84,7 @@ void ProcessSignalManager::OnSignal(int signum) { dcwlogerrf("%s\n", "No signal manager instance!"); return; } - SignalMap::const_iterator i = _sigman->_sigmap.find(signum); + auto i = _sigman->_sigmap.find(signum); if (i == _sigman->_sigmap.end()) { //defensive... should never get here... @@ -93,7 +93,7 @@ void ProcessSignalManager::OnSignal(int signum) { } //fire off this signal to each registered handler... - for (SignalHandlerSet::const_iterator handlerIter = i->second.begin(); handlerIter != i->second.end(); handlerIter++) { + for (auto handlerIter = i->second.begin(); handlerIter != i->second.end(); handlerIter++) { (*handlerIter)->OnSignal(signum); } } diff --git a/dcwposix/selecteventreactor.cxx b/dcwposix/selecteventreactor.cxx index 56da7b8..d44106d 100644 --- a/dcwposix/selecteventreactor.cxx +++ b/dcwposix/selecteventreactor.cxx @@ -89,7 +89,7 @@ void SelectEventReactor::Run() { void SelectEventReactor::RegisterIOSubscriber(IOSubscriber& sub, EventReactor::IOProvider& pub) { dcwlogdbgf("Event Reactor got subscriber %p requesting IO events published from (%p)\n", &sub, &pub); - SelectableIOProvider * const lpub = dynamic_cast(&pub); + auto * const lpub = dynamic_cast(&pub); if (lpub == NULL) { throw IncompatiblePublisherException(); } @@ -124,7 +124,7 @@ void SelectEventReactor::SleepMs(const unsigned milliseconds) const { void SelectEventReactor::updateNfds() { _nfds = 0; for (IOSubMap::const_iterator subi = _ioSubs.begin(); subi != _ioSubs.end(); subi++) { - for (IOPubSet::const_iterator pubi = subi->second.begin(); pubi != subi->second.end(); pubi++) { + for (auto pubi = subi->second.begin(); pubi != subi->second.end(); pubi++) { const int nfd = (*pubi)->GetSelectableFd() + 1; if (nfd > _nfds) _nfds = nfd; } From 64cb8a376aa978afdaf5f254410b22ae9d9be418 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Thu, 10 Oct 2019 16:07:56 -0700 Subject: [PATCH 8/9] [clang-tidy] Convert to range based loops Found with modernize-convert-loop Signed-off-by: Rosen Penev --- dcwposix/eventreactorexitsignaler.cxx | 8 ++++---- dcwposix/processsignalmanager.cxx | 4 ++-- dcwposix/selecteventreactor.cxx | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dcwposix/eventreactorexitsignaler.cxx b/dcwposix/eventreactorexitsignaler.cxx index 3db56ef..5f2f75a 100644 --- a/dcwposix/eventreactorexitsignaler.cxx +++ b/dcwposix/eventreactorexitsignaler.cxx @@ -15,14 +15,14 @@ using namespace dcwposix; EventReactorExitSignalHandler::EventReactorExitSignalHandler(ProcessSignalManager& psm, ::dcw::EventReactor& er) : _psm(psm), _er(er) { - for (unsigned i = 0; i < (sizeof(_exitSignals) / sizeof(_exitSignals[0])); i++) { - _psm.RegisterEventHandler(_exitSignals[i], *this); + for (int _exitSignal : _exitSignals) { + _psm.RegisterEventHandler(_exitSignal, *this); } } EventReactorExitSignalHandler::~EventReactorExitSignalHandler() { - for (unsigned i = 0; i < (sizeof(_exitSignals) / sizeof(_exitSignals[0])); i++) { - _psm.UnRegisterEventHandler(_exitSignals[i], *this); + for (int _exitSignal : _exitSignals) { + _psm.UnRegisterEventHandler(_exitSignal, *this); } } diff --git a/dcwposix/processsignalmanager.cxx b/dcwposix/processsignalmanager.cxx index 3e200d1..517ebac 100644 --- a/dcwposix/processsignalmanager.cxx +++ b/dcwposix/processsignalmanager.cxx @@ -93,8 +93,8 @@ void ProcessSignalManager::OnSignal(int signum) { } //fire off this signal to each registered handler... - for (auto handlerIter = i->second.begin(); handlerIter != i->second.end(); handlerIter++) { - (*handlerIter)->OnSignal(signum); + for (auto handlerIter : i->second) { + handlerIter->OnSignal(signum); } } diff --git a/dcwposix/selecteventreactor.cxx b/dcwposix/selecteventreactor.cxx index d44106d..80896d1 100644 --- a/dcwposix/selecteventreactor.cxx +++ b/dcwposix/selecteventreactor.cxx @@ -124,8 +124,8 @@ void SelectEventReactor::SleepMs(const unsigned milliseconds) const { void SelectEventReactor::updateNfds() { _nfds = 0; for (IOSubMap::const_iterator subi = _ioSubs.begin(); subi != _ioSubs.end(); subi++) { - for (auto pubi = subi->second.begin(); pubi != subi->second.end(); pubi++) { - const int nfd = (*pubi)->GetSelectableFd() + 1; + for (auto pubi : subi->second) { + const int nfd = pubi->GetSelectableFd() + 1; if (nfd > _nfds) _nfds = nfd; } } From 5e2e3e099db35af6690b7b41cbfa1bde8081355a Mon Sep 17 00:00:00 2001 From: Carey Sonsino Date: Fri, 1 Nov 2019 09:56:39 -0400 Subject: [PATCH 9/9] Set standard to c++11 in configure.ac --- configure.ac | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure.ac b/configure.ac index db45269..5684a67 100644 --- a/configure.ac +++ b/configure.ac @@ -41,6 +41,8 @@ AC_CONFIG_FILES(dcwapd.linuxjsonstatic/Makefile) AC_CONFIG_MACRO_DIR([m4]) +AX_CXX_COMPILE_STDCXX_11() + AC_ENABLE_STATIC AC_DISABLE_SHARED LT_INIT