#include "canetworkconfigurator.h"
#include "cainterfacecontroller.h"
+#include "cainterface.h"
#include "uarraylist.h"
#include "logger.h"
#define TAG "OIC_CA_NW_CONFIG"
static u_arraylist_t *g_selectedNetworkList = NULL;
+static CATransportAdapter_t CASelectedNetwork = CA_DEFAULT_ADAPTER;
#ifdef EDR_ADAPTER
static uint32_t NETWORK_RFCOMM = CA_ADAPTER_RFCOMM_BTEDR;
goto exit;
}
res = u_arraylist_add(g_selectedNetworkList, &NETWORK_IP);
+ CASelectedNetwork |= CA_ADAPTER_IP;
break;
#endif // IP_ADAPTER
goto exit;
}
res = u_arraylist_add(g_selectedNetworkList, &NETWORK_RFCOMM);
+ CASelectedNetwork |= CA_ADAPTER_RFCOMM_BTEDR;
break;
#endif // EDR_ADAPTER
goto exit;
}
res = u_arraylist_add(g_selectedNetworkList, &NETWORK_GATT);
+ CASelectedNetwork |= CA_ADAPTER_GATT_BTLE;
break;
#endif // LE_ADAPTER
goto exit;
}
res = u_arraylist_add(g_selectedNetworkList, &NETWORK_RA);
+ CASelectedNetwork |= CA_ADAPTER_REMOTE_ACCESS;
break;
#endif // RA_ADAPTER
goto exit;
}
res = u_arraylist_add(g_selectedNetworkList, &NETWORK_TCP);
+ CASelectedNetwork |= CA_ADAPTER_TCP;
break;
#endif // TCP_ADAPTER
goto exit;
}
res = u_arraylist_add(g_selectedNetworkList, &NETWORK_NFC);
+ CASelectedNetwork |= CA_ADAPTER_NFC;
break;
#endif // CA_ADAPTER_NFC
OIC_LOG(DEBUG, TAG, "Remove network type(IP)");
u_arraylist_remove(g_selectedNetworkList, index);
+ CASelectedNetwork = CASelectedNetwork & (~CA_ADAPTER_IP);
break;
#endif //IP_ADAPTER
#else
OIC_LOG(DEBUG, TAG, "Remove network type(EDR)");
u_arraylist_remove(g_selectedNetworkList, index);
+ CASelectedNetwork = CASelectedNetwork & (~CA_ADAPTER_RFCOMM_BTEDR);
break;
#endif // EDR_ADAPTER
#else
OIC_LOG(DEBUG, TAG, "Remove network type(LE)");
u_arraylist_remove(g_selectedNetworkList, index);
-
+ CASelectedNetwork = CASelectedNetwork & (~CA_ADAPTER_GATT_BTLE);
break;
#endif // LE_ADAPTER
case CA_ADAPTER_REMOTE_ACCESS:
OIC_LOG(DEBUG, TAG, "Remove network type(RA)");
u_arraylist_remove(g_selectedNetworkList, index);
+ CASelectedNetwork = CASelectedNetwork & (~CA_ADAPTER_REMOTE_ACCESS);
break;
#endif // RA_ADAPTER
case CA_ADAPTER_TCP:
OIC_LOG(DEBUG, TAG, "Remove network type(TCP)");
u_arraylist_remove(g_selectedNetworkList, index);
+ CASelectedNetwork = CASelectedNetwork & (~CA_ADAPTER_TCP);
break;
#endif // TCP_ADAPTER
#else
OIC_LOG(DEBUG, TAG, "Add network type(NFC)");
u_arraylist_remove(g_selectedNetworkList, index);
-
+ CASelectedNetwork = CASelectedNetwork & (~CA_ADAPTER_NFC);
break;
#endif // CA_ADAPTER_NFC
default:
return g_selectedNetworkList;
}
+CATransportAdapter_t CAGetSelectedNetwork()
+{
+ return CASelectedNetwork;
+}
+
CAResult_t CAGetNetworkInformationInternal(CAEndpoint_t **info, uint32_t *size)
{
OIC_LOG(DEBUG, TAG, "get network information.");
free(tempInfo);
}
+TEST_F(CATests, GetSelectecNetwork)
+{
+ CATransportAdapter_t SelectedNetwork = CA_DEFAULT_ADAPTER;
+
+#ifdef IP_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork | CA_ADAPTER_IP) ;
+ EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_IP));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+#ifdef LE_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork | CA_ADAPTER_GATT_BTLE);
+ EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_GATT_BTLE));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+#ifdef EDR_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork | CA_ADAPTER_RFCOMM_BTEDR);
+ EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_RFCOMM_BTEDR));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+#ifdef TCP_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork | CA_ADAPTER_TCP);
+ EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_TCP));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+#ifdef NFC_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork | CA_ADAPTER_NFC);
+ EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_NFC));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+
+#ifdef IP_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork & ~CA_ADAPTER_IP) ;
+ EXPECT_EQ(CA_STATUS_OK, CAUnSelectNetwork(CA_ADAPTER_IP));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+#ifdef LE_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork & ~CA_ADAPTER_GATT_BTLE);
+ EXPECT_EQ(CA_STATUS_OK, CAUnSelectNetwork(CA_ADAPTER_GATT_BTLE));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+#ifdef EDR_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork & ~CA_ADAPTER_RFCOMM_BTEDR);
+ EXPECT_EQ(CA_STATUS_OK, CAUnSelectNetwork(CA_ADAPTER_RFCOMM_BTEDR));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+#ifdef TCP_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork & ~CA_ADAPTER_TCP);
+ EXPECT_EQ(CA_STATUS_OK, CAUnSelectNetwork(CA_ADAPTER_TCP));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+#ifdef NFC_ADAPTER
+ SelectedNetwork = (CATransportAdapter_t)(SelectedNetwork & ~CA_ADAPTER_NFC);
+ EXPECT_EQ(CA_STATUS_OK, CAUnSelectNetwork(CA_ADAPTER_NFC));
+ EXPECT_EQ(SelectedNetwork, CAGetSelectedNetwork());
+#endif
+}
+
TEST_F(CATests, RegisterDTLSCredentialsHandlerTest)
{
#ifdef __WITH_DTLS__