Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ea3a69d
Update Device_WiFi_SSID.cpp
Vismalskumar0 Mar 12, 2026
3c1b28b
Update Device_WiFi_SSID.cpp
Vismalskumar0 Mar 12, 2026
c8f69ab
Update Device_WiFi_EndPoint.cpp
Vismalskumar0 Mar 12, 2026
3730abf
Update Device_WiFi_SSID.cpp
Vismalskumar0 Mar 12, 2026
a7cb7e7
Update src/hostif/profiles/wifi/Device_WiFi_SSID.cpp
Vismalskumar0 Mar 12, 2026
edda013
Initial plan
Copilot Mar 12, 2026
695abe4
Initial plan
Copilot Mar 12, 2026
ffca495
Fix response.c_str() checks to use !response.empty() in Device_WiFi_S…
Copilot Mar 12, 2026
da16047
Fix inconsistent indentation in Device_WiFi_SSID.cpp parsing block
Copilot Mar 12, 2026
3beeec2
Merge pull request #400 from rdkcentral/copilot/sub-pr-399
Vismalskumar0 Mar 12, 2026
1d45233
Merge pull request #401 from rdkcentral/copilot/sub-pr-399-again
Vismalskumar0 Mar 12, 2026
0d74bc3
Initial plan
Copilot Mar 12, 2026
c67f068
Update src/hostif/profiles/wifi/Device_WiFi_SSID.cpp
Vismalskumar0 Mar 12, 2026
0bb3c2f
Merge pull request #403 from rdkcentral/copilot/sub-pr-399-yet-again
Vismalskumar0 Mar 12, 2026
85fd7c6
Initial plan
Copilot Mar 12, 2026
27181e8
Remove redundant response.empty() check and unreachable else branch
Copilot Mar 12, 2026
009059e
Merge pull request #404 from rdkcentral/copilot/sub-pr-399-one-more-time
Vismalskumar0 Mar 12, 2026
2f2043e
Initial plan
Copilot Mar 12, 2026
67e4d57
Fix misleading "curl init failed" error log to "getJsonRPCData() failed"
Copilot Mar 12, 2026
2d0e71b
Merge pull request #405 from rdkcentral/copilot/sub-pr-399-please-work
Vismalskumar0 Mar 12, 2026
147404e
Initial plan
Copilot Mar 12, 2026
58bd5a1
Add null and type check for state cJSON item before valueint access i…
Copilot Mar 12, 2026
7240484
Merge pull request #406 from rdkcentral/copilot/sub-pr-399-99188a72-8…
Vismalskumar0 Mar 12, 2026
0c2e924
Update Device_WiFi_SSID.cpp
Vismalskumar0 Mar 12, 2026
07c9fe0
Merge branch 'develop' into feature/RDKEMW-14686_final
nhanasi Mar 12, 2026
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
53 changes: 9 additions & 44 deletions src/hostif/profiles/wifi/Device_WiFi_EndPoint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -490,58 +490,24 @@ int hostIf_WiFi_EndPoint::refreshCache()
if (jsonObj)
{
cJSON *ssid = cJSON_GetObjectItem(jsonObj, "ssid");
cJSON *strength = cJSON_GetObjectItem(jsonObj, "strength");
if (!(cJSON_IsString(ssid) && ssid->valuestring))
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] ConnectedSSID result missing valid ssid\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
//ASSIGN TO OP HERE
strncpy (SSIDReference, ssid->valuestring, BUFF_LENGTH_256);
SSIDReference[BUFF_LENGTH_256 - 1] = '\0';
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] json parse error, no \"result\" in the output from Thunder plugin\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
cJSON_Delete(root);
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: json parse error\n", __FUNCTION__);
return NOK;
}
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: getJsonRPCData() failed or returned empty response\n", __FUNCTION__);
return NOK;
}

postData = "{\"jsonrpc\":\"2.0\",\"id\":\"42\",\"method\": \"org.rdk.NetworkManager.GetWiFiSignalStrength\"}";
response = getJsonRPCData(std::move(postData));

if(!response.empty())
{
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: curl response string = %s\n", __FUNCTION__, response.c_str());
cJSON* root = cJSON_Parse(response.c_str());
if(root)
{
cJSON* jsonObj = cJSON_GetObjectItem(root, "result");

if (jsonObj)
{
cJSON *sigstr = cJSON_GetObjectItem(jsonObj, "signalStrength");
if (!cJSON_IsNumber(sigstr))
if (!cJSON_IsNumber(strength))
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] GetWiFiSignalStrength result missing numeric signalStrength\n", __FUNCTION__);
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] ConnectedSSID result missing numeric strength\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
//ASSIGN TO OP HERE
stats.SignalStrength = sigstr->valueint;
strncpy (SSIDReference, ssid->valuestring, BUFF_LENGTH_256);
SSIDReference[BUFF_LENGTH_256 - 1] = '\0';
stats.SignalStrength = strength->valueint;
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: strength = %d\n", __FUNCTION__, stats.SignalStrength);
}
else
{
Expand All @@ -559,10 +525,9 @@ int hostIf_WiFi_EndPoint::refreshCache()
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: getJsonRPCData() failed or returned empty response\n", __FUNCTION__);
return NOK;
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: getJsonRPCData() failed or returned empty response\n", __FUNCTION__);
return NOK;
}

time_of_last_successful_query = time (0);

//strncpy (Alias, param.data.endPointInfo.alias, BUFF_LENGTH_64);
Expand Down
176 changes: 119 additions & 57 deletions src/hostif/profiles/wifi/Device_WiFi_SSID.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -196,55 +196,71 @@ int hostIf_WiFi_SSID::get_Device_WiFi_SSID_Fields(int ssidIndex)
{
std::string postData = "{\"jsonrpc\":\"2.0\",\"id\":\"42\",\"method\": \"org.rdk.NetworkManager.GetConnectedSSID\"}";
string response = getJsonRPCData(std::move(postData));
Comment thread
Vismalskumar0 marked this conversation as resolved.
if(response.c_str())
if (response.empty())
{
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: curl response string = %s\n", __FUNCTION__, response.c_str());
cJSON* root = cJSON_Parse(response.c_str());
if(root)
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: Empty response received from NetworkManager.GetConnectedSSID JSON-RPC request\n", __FUNCTION__);
return NOK;
}
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: curl response string = %s\n", __FUNCTION__, response.c_str());
cJSON* root = cJSON_Parse(response.c_str());
if(root)
{
cJSON* jsonObj = cJSON_GetObjectItem(root, "result");

if (jsonObj)
{
cJSON* jsonObj = cJSON_GetObjectItem(root, "result");
cJSON *bssid = cJSON_GetObjectItem(jsonObj, "bssid");
cJSON *ssid = cJSON_GetObjectItem(jsonObj, "ssid");

if (jsonObj)
if (!bssid || !cJSON_IsString(bssid) || !bssid->valuestring)
{
cJSON *bssid = cJSON_GetObjectItem(jsonObj, "bssid");
cJSON *ssid = cJSON_GetObjectItem(jsonObj, "ssid");
//ASSIGN TO OP HERE
rc=strcpy_s(BSSID,sizeof(BSSID),bssid->valuestring);
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: BSSID = %s \n", __FUNCTION__, BSSID);
if(rc!=EOK)
{
ERR_CHK(rc);
}
rc=strcpy_s(SSID,sizeof(SSID),ssid->valuestring);
if(rc!=EOK)
{
ERR_CHK(rc);
}
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] json parse error, no \"result\" in the output from Thunder plugin\n", __FUNCTION__);
RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: Invalid or missing BSSID\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
cJSON_Delete(root);
}
}

if (!ssid || !cJSON_IsString(ssid) || !ssid->valuestring)
{
RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: Invalid or missing SSID\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
//ASSIGN TO OP HERE
rc=strcpy_s(BSSID,sizeof(BSSID),bssid->valuestring);
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: BSSID = %s \n", __FUNCTION__, BSSID);
if(rc!=EOK)
{
ERR_CHK(rc);
}
rc=strcpy_s(SSID,sizeof(SSID),ssid->valuestring);
if(rc!=EOK)
{
ERR_CHK(rc);
}
rc = strcpy_s(name, sizeof(name), ssid->valuestring);
if (rc != EOK)
{
ERR_CHK(rc);
}
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: json parse error\n", __FUNCTION__);
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] json parse error, no \"result\" in the output from Thunder plugin\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
}
cJSON_Delete(root);
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: curl init failed\n", __FUNCTION__);
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: json parse error\n", __FUNCTION__);
return NOK;
}

postData = "{\"jsonrpc\":\"2.0\",\"id\":\"42\",\"method\": \"org.rdk.NetworkManager.GetAvailableInterfaces\"}";
response = getJsonRPCData(postData);

if(response.c_str())
if(!response.empty())
{
Comment thread
Vismalskumar0 marked this conversation as resolved.
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: curl response string = %s\n", __FUNCTION__, response.c_str());
cJSON* root = cJSON_Parse(response.c_str());
Comment thread
Vismalskumar0 marked this conversation as resolved.
Expand All @@ -255,28 +271,69 @@ int hostIf_WiFi_SSID::get_Device_WiFi_SSID_Fields(int ssidIndex)
if (jsonObj)
{
cJSON *interfaces = cJSON_GetObjectItem(jsonObj, "interfaces");
cJSON *interface = NULL;
cJSON *interfaceType = NULL;
cJSON *interface = NULL;
cJSON *interfaceType = NULL;

if (!cJSON_IsArray(interfaces))
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: Invalid or missing interfaces array\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}

for (int i = 0; i < cJSON_GetArraySize(interfaces); i++) {
for (int i = 0; i < cJSON_GetArraySize(interfaces); i++)
{
interface = cJSON_GetArrayItem(interfaces, i);
interfaceType = cJSON_GetObjectItem(interface, "type");
if (strcmp(interfaceType->valuestring, "WIFI") == 0) {
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: Found WiFi Interface\n", __FUNCTION__);
break;
}
}
if (!cJSON_IsObject(interface))
{
interface = NULL;
continue;
}
interfaceType = cJSON_GetObjectItem(interface, "type");
if (cJSON_IsString(interfaceType) && interfaceType->valuestring && (strcmp(interfaceType->valuestring, "WIFI") == 0))
{
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: Found WiFi Interface\n", __FUNCTION__);
break;
}
interface = NULL;
}

if (!interface)
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: WIFI interface not found\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
//ASSIGN TO OP HERE
cJSON *result = cJSON_GetObjectItem(interface, "mac");
rc=strcpy_s(MACAddress,sizeof(MACAddress),result->valuestring);
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: MACAddress = %s \n", __FUNCTION__, MACAddress);
if(rc!=EOK)
{
ERR_CHK(rc);
}
cJSON *isEnabled = cJSON_GetObjectItem(interface, "enabled");
enable=isEnabled->type;
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: ENABLE = %d \n", __FUNCTION__, enable);
cJSON *result = cJSON_GetObjectItem(interface, "mac");
if (!cJSON_IsString(result) || !result->valuestring)
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: Invalid or missing mac\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
rc = strcpy_s(MACAddress, sizeof(MACAddress), result->valuestring);
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: MACAddress = %s \n", __FUNCTION__, MACAddress);
if (rc != EOK)
{
ERR_CHK(rc);
}
cJSON *isEnabled = cJSON_GetObjectItem(interface, "enabled");
if (cJSON_IsBool(isEnabled))
{
enable = cJSON_IsTrue(isEnabled);
}
else if (cJSON_IsNumber(isEnabled))
{
enable = (0 != isEnabled->valueint);
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: Invalid or missing enabled\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: ENABLE = %d \n", __FUNCTION__, enable);
}
else
{
Expand All @@ -294,14 +351,14 @@ int hostIf_WiFi_SSID::get_Device_WiFi_SSID_Fields(int ssidIndex)
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: curl init failed\n", __FUNCTION__);
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: Empty response received from NetworkManager.GetAvailableInterfaces JSON-RPC request\n", __FUNCTION__);
return NOK;
}

postData = "{\"jsonrpc\":\"2.0\",\"id\":\"42\",\"method\": \"org.rdk.NetworkManager.GetWifiState\"}";
response = getJsonRPCData(std::move(postData));

if(response.c_str())
if(!response.empty())
Comment thread
Vismalskumar0 marked this conversation as resolved.
{
RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "%s: curl response string = %s\n", __FUNCTION__, response.c_str());
cJSON* root = cJSON_Parse(response.c_str());
Expand All @@ -311,10 +368,15 @@ int hostIf_WiFi_SSID::get_Device_WiFi_SSID_Fields(int ssidIndex)

if (jsonObj)
{
cJSON *state = cJSON_GetObjectItem(jsonObj, "state");
//ASSIGN TO OP HERE
int res = state->valueint;
switch (res) {
cJSON *state = cJSON_GetObjectItem(jsonObj, "state");
if (!state || !cJSON_IsNumber(state))
{
RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] json parse error, \"state\" field missing or not a number\n", __FUNCTION__);
cJSON_Delete(root);
return NOK;
}
int res = state->valueint;
switch (res) {
case 0:
rc=strcpy_s(status,sizeof(status),"UNINSTALLED");
break;
Comment thread
Vismalskumar0 marked this conversation as resolved.
Expand Down Expand Up @@ -380,7 +442,7 @@ int hostIf_WiFi_SSID::get_Device_WiFi_SSID_Fields(int ssidIndex)
}
else
{
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: getJsonRPCData() failed\n", __FUNCTION__);
RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "%s: Empty response received from NetworkManager.GetWifiState JSON-RPC request\n", __FUNCTION__);
return NOK;
}

Expand Down
Loading