Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions legacy/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ set(PLUGIN_LEGACY_WIFI ${NAMESPACE}WiFiManager)
set(PLUGIN_LEGACY_NW_STARTUPORDER "35" CACHE STRING "To configure startup order of Legacy Network plugin")
set(PLUGIN_LEGACY_WIFI_STARTUPORDER "35" CACHE STRING "To configure startup order of Legacy WiFi plugin")

set(PLUGIN_LEGACY_NW_AUTOSTART "false" CACHE STRING "The autostart of Legacy Network plugin")
set(PLUGIN_LEGACY_WIFI_AUTOSTART "false" CACHE STRING "The autostart of Legacy WiFi plugin")

set(PLUGIN_BUILD_REFERENCE ${PROJECT_VERSION} CACHE STRING "To Set the Hash for the plugin")
add_definitions(-DPLUGIN_BUILD_REFERENCE=${PLUGIN_BUILD_REFERENCE})

Expand Down
2 changes: 1 addition & 1 deletion legacy/LegacyNetworkAPIs.conf.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
precondition = ["Platform"]
callsign = "org.rdk.Network"
autostart = "false"
autostart = "@PLUGIN_LEGACY_NW_AUTOSTART@"
startuporder = "@PLUGIN_LEGACY_NW_STARTUPORDER@"
4 changes: 0 additions & 4 deletions legacy/LegacyNetworkAPIs.config

This file was deleted.

2 changes: 1 addition & 1 deletion legacy/LegacyWiFiManagerAPIs.conf.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
precondition = ["Platform"]
callsign = "org.rdk.Wifi"
autostart = "false"
autostart = "@PLUGIN_LEGACY_WIFI_AUTOSTART@"
startuporder = "@PLUGIN_LEGACY_WIFI_STARTUPORDER@"
4 changes: 0 additions & 4 deletions legacy/LegacyWiFiManagerAPIs.config

This file was deleted.

5 changes: 3 additions & 2 deletions plugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ endif ()
set(PLUGIN_NETWORKMANAGER_LOGLEVEL "5" CACHE STRING "To configure default loglevel NetworkManager plugin")
set(PLUGIN_NETWORKMANAGER_STARTUPORDER "25" CACHE STRING "To configure startup order of Unified NetworkManager plugin")

set(PLUGIN_NETWORKMANAGER_AUTOSTART "false" CACHE STRING "Set the default AutoStart of NetworkManager Plugin")
set(PLUGIN_BUILD_REFERENCE ${PROJECT_VERSION} CACHE STRING "To Set the Hash for the plugin")
add_definitions(-DPLUGIN_BUILD_REFERENCE=${PLUGIN_BUILD_REFERENCE})

Expand All @@ -71,7 +72,7 @@ target_link_libraries(${MODULE_NAME} PRIVATE
)

set_target_properties(${MODULE_NAME} PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 17
CXX_STANDARD_REQUIRED YES
FRAMEWORK FALSE)

Expand Down Expand Up @@ -128,7 +129,7 @@ else()
endif()

set_target_properties(${MODULE_IMPL_NAME} PROPERTIES
CXX_STANDARD 11
CXX_STANDARD 17
CXX_STANDARD_REQUIRED YES
FRAMEWORK FALSE)

Expand Down
2 changes: 1 addition & 1 deletion plugin/NetworkManager.conf.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
callsign= "org.rdk.NetworkManager"
startuporder = "@PLUGIN_NETWORKMANAGER_STARTUPORDER@"
autostart = "false"
autostart = "@PLUGIN_NETWORKMANAGER_AUTOSTART@"

process= JSON()
process.add("outofprocess", "true")
Expand Down
27 changes: 0 additions & 27 deletions plugin/NetworkManager.config

This file was deleted.

245 changes: 200 additions & 45 deletions plugin/NetworkManagerImplementation.cpp

Large diffs are not rendered by default.

57 changes: 46 additions & 11 deletions plugin/NetworkManagerImplementation.h
Original file line number Diff line number Diff line change
Expand Up @@ -209,21 +209,51 @@ namespace WPEFramework
Core::JSON::DecUInt32 loglevel;
};

enum NMPublishEvents {
NM_ON_INTERFACESTATE_CHANGE = 0,
NM_ON_ACTIVEINTERFACE_CHANGE,
NM_ON_IPADDRESS_CHANGE,
NM_ON_INTERNETSTATUS_CHANGE,
NM_ON_AVAILABLESSIDS,
NM_ON_WIFISTATE_CHANGE,
NM_ON_WIFISIGNALQUALITY_CHANGE
};

class Job : public Core::IDispatch {
public:
Job(function<void()> work)
: _work(work)
{
class EXTERNAL Job : public Core::IDispatch {
protected:
Job(NetworkManagerImplementation *NetworkManagerImplementation, NMPublishEvents event, JsonObject &params)
: m_jobNWImpl(NetworkManagerImplementation)
, _event(event)
, _params(params) {
if (m_jobNWImpl != nullptr) {
m_jobNWImpl->AddRef();
}
}
Comment on lines +224 to 231
void Dispatch() override
{
_work();

public:
Job() = delete;
Job(const Job&) = delete;
Job& operator=(const Job&) = delete;
~Job() {
if (m_jobNWImpl != nullptr) {
m_jobNWImpl->Release();
}
}

public:
static Core::ProxyType<Core::IDispatch> Create(NetworkManagerImplementation *pNWImpl, NMPublishEvents event, JsonObject params) {
return (Core::ProxyType<Core::IDispatch>(Core::ProxyType<Job>::Create(pNWImpl, event, params)));
}
virtual void Dispatch() {
if (m_jobNWImpl != nullptr) {
m_jobNWImpl->Dispatch(_event, _params);
}
}
Comment on lines +224 to +251
private:
function<void()> _work;
};
NetworkManagerImplementation *m_jobNWImpl;
const NMPublishEvents _event;
const JsonObject _params;
}; // class EXTERNAL Job

public:
NetworkManagerImplementation();
Expand Down Expand Up @@ -338,16 +368,19 @@ namespace WPEFramework
void getInitialConnectionState(void);
void executeExternally(NetworkEvents event, const string commandToExecute, string& response);
void threadEventRegistration(bool iarmInit, bool iarmConnect);
void filterScanResults(JsonArray &ssids);
void filterScanResults(JsonArray &ssids, const std::vector<std::string>& filterSsidslist, const std::vector<std::string>& filterFrequencies);
void startWiFiSignalQualityMonitor(int interval);
void stopWiFiSignalQualityMonitor();
void monitorThreadFunction(int interval);
int32_t logSSIDs(Logging level, const JsonArray &ssids);
void processMonitor(uint16_t interval);
void dispatchEvent(NMPublishEvents event, const JsonObject& params);
void Dispatch(NMPublishEvents event, const JsonObject& params);

private:
std::list<Exchange::INetworkManager::INotification *> _notificationCallbacks;
Core::CriticalSection _notificationLock;
Core::CriticalSection m_filterVectorsLock;
string m_publicIP;
stun::client stunClient;
string m_stunEndpoint;
Expand Down Expand Up @@ -409,6 +442,8 @@ namespace WPEFramework
mutable std::mutex m_defaultInterfaceMutex;
std::map<std::pair<std::string, std::string>, IpFamilyCache> m_ipCacheMap;
mutable std::mutex m_ipCacheMutex;

friend class Job;
};
}
}
2 changes: 1 addition & 1 deletion plugin/NetworkManagerLogger.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ void logPrint(LogLevel level, const char* file, const char* func, int line, cons
#define NMLOG_ERROR(FMT, ...) logPrint(NetworkManagerLogger::ERROR_LEVEL, __FILE__, __func__, __LINE__, FMT, ##__VA_ARGS__)
#define NMLOG_FATAL(FMT, ...) logPrint(NetworkManagerLogger::FATAL_LEVEL, __FILE__,__func__, __LINE__, FMT, ##__VA_ARGS__)

#define LOG_ENTRY_FUNCTION() { NMLOG_DEBUG("Entering"); }
#define LOG_ENTRY_FUNCTION() { NMLOG_INFO("Entering %s", __func__); }

} // namespace NetworkManagerLogger

Expand Down
19 changes: 13 additions & 6 deletions plugin/gnome/NetworkManagerGnomeProxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -762,9 +762,8 @@ namespace WPEFramework
{
uint32_t rc = Core::ERROR_RPC_CALL_FAILED;

//Cleared the Existing Store filterred SSID list
m_filterSsidslist.clear();
m_filterFrequencies.clear();
std::vector<std::string> filteredSsids;
std::vector<std::string> filteredFrequencies;

if(ssids)
{
Expand All @@ -773,7 +772,7 @@ namespace WPEFramework
{
if (!tmpssidlist.empty())
{
m_filterSsidslist.push_back(tmpssidlist.c_str());
filteredSsids.push_back(tmpssidlist);
NMLOG_DEBUG("%s added to SSID filtering", tmpssidlist.c_str());
}
else
Expand All @@ -795,7 +794,7 @@ namespace WPEFramework
const string normalizedFrequency = parsedFrequency.Data();
if ((!normalizedFrequency.empty()) && (normalizedFrequency == frequency))
{
m_filterFrequencies.push_back(normalizedFrequency);
filteredFrequencies.push_back(normalizedFrequency);
NMLOG_DEBUG("Frequency %s added to scan filtering", normalizedFrequency.c_str());
}
else
Expand All @@ -811,8 +810,16 @@ namespace WPEFramework
}
}

m_filterVectorsLock.Lock();
// Replace existing stored filters only after successful parsing/validation.
m_filterSsidslist.clear();
m_filterFrequencies.clear();
m_filterSsidslist = filteredSsids;
m_filterFrequencies = filteredFrequencies;
m_filterVectorsLock.Unlock();

nmEvent->setwifiScanOptions(true);
if(wifi->wifiScanRequest(m_filterSsidslist))
if(wifi->wifiScanRequest(filteredSsids))
rc = Core::ERROR_NONE;
return rc;
}
Expand Down
2 changes: 2 additions & 0 deletions plugin/rdk/NetworkManagerRDKProxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -973,6 +973,7 @@ const string CIDR_PREFIXES[CIDR_NETMASK_IP_LEN+1] = {
IARM_Result_t retVal = IARM_RESULT_SUCCESS;

//Cleared the Existing Store filterred SSID list
m_filterVectorsLock.Lock();
m_filterSsidslist.clear();
m_filterFrequencies.clear();
if(ssids)
Expand All @@ -994,6 +995,7 @@ const string CIDR_PREFIXES[CIDR_NETMASK_IP_LEN+1] = {
NMLOG_DEBUG("%s added to Frequency filtering", frequencyList.c_str());
}
}
m_filterVectorsLock.Unlock();

memset(&param, 0, sizeof(param));

Expand Down
Loading