summaryrefslogtreecommitdiffstats
path: root/cnd/src/cnd_process.cpp
diff options
context:
space:
mode:
authorChinh Tran <chinht@codeaurora.org>2010-09-01 18:11:05 -0700
committerLinux Build Service Account <lnxbuild@qualcomm.com>2010-09-14 00:04:46 -0600
commit74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598 (patch)
tree3b2e7d82220678bcb9a446043295cc3d78200dd0 /cnd/src/cnd_process.cpp
parentc0dec5a4d77520b907949d5bdd1b8df41bcd77dd (diff)
downloadandroid_external_connectivity-74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598.tar.gz
android_external_connectivity-74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598.tar.bz2
android_external_connectivity-74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598.zip
CNE: Add changes to support FMC
Handles the commands to start, stop FMC, to report the destination IP address, and to set the destination routing table entry. Change-Id: I12c72c8480ac470ee2269ca0063b2d8d7c8e767c
Diffstat (limited to 'cnd/src/cnd_process.cpp')
-rwxr-xr-xcnd/src/cnd_process.cpp32
1 files changed, 26 insertions, 6 deletions
diff --git a/cnd/src/cnd_process.cpp b/cnd/src/cnd_process.cpp
index b7a73b1..c93bb53 100755
--- a/cnd/src/cnd_process.cpp
+++ b/cnd/src/cnd_process.cpp
@@ -221,16 +221,35 @@ processCommand (int command, void *data, size_t datalen, CND_Token t)
cnd_iproute2* cnd_iproute2_ptr = cnd_iproute2::getInstance();
if (cnd_iproute2_ptr != NULL) {
// Call iproute2 API
- if (cmd == CNE_IPROUTE2_ADD_DEFAULT) {
+ switch(cmd)
+ {
+ case CNE_IPROUTE2_ADD_ROUTING:
cnd_iproute2::getInstance()->addRoutingTable(ifName, ipAddr, gatewayAddr);
- } else if (cmd == CNE_IPROUTE2_DELETE_DEFAULT) {
+ break;
+ case CNE_IPROUTE2_DELETE_ROUTING:
+ case CNE_IPROUTE2_DELETE_HOST_ROUTING:
cnd_iproute2::getInstance()->deleteRoutingTable(ifName);
- } else if (cmd == CNE_IPROUTE2_DELETE_DEFAULT_FROM_MAIN) {
+ break;
+ case CNE_IPROUTE2_DELETE_DEFAULT_IN_MAIN:
+ case CNE_IPROUTE2_DELETE_HOST_DEFAULT_IN_MAIN:
cnd_iproute2::getInstance()->deleteDefaultEntryInMainTable(ifName);
- } else if (cmd == CNE_IPROUTE2_CHANGE_DEFAULT_FROM_MAIN) {
+ break;
+ case CNE_IPROUTE2_REPLACE_DEFAULT_ENTRY_IN_MAIN:
+ case CNE_IPROUTE2_REPLACE_HOST_DEFAULT_ENTRY_IN_MAIN:
cnd_iproute2::getInstance()->replaceDefaultEntryInMainTable(ifName);
+ break;
+ case CNE_IPROUTE2_ADD_HOST_IN_MAIN:
+ cnd_iproute2::getInstance()->addCustomEntryInMainTable(ipAddr, ifName, gatewayAddr);
+ break;
+ case CNE_IPROUTE2_DELETE_HOST_IN_MAIN:
+ cnd_iproute2::getInstance()->deleteDeviceCustomEntriesInMainTable(ifName);
+ break;
+ default:
+ LOGE ("processCommand: not iproute2 command=%d", command);
+ break;
}
}
+
return;
}
@@ -294,8 +313,9 @@ dispatchString (Parcel& p, RequestInfo *pRI)
string8 = strdupReadString(p);
- processCommand(pRI->pCI->commandNumber, string8,
- sizeof(char *), pRI);
+ LOGD ("dispatchString: strlen=%d", strlen(string8));
+ processCommand(pRI->pCI->commandNumber, string8, strlen(string8), pRI);
+
#ifdef MEMSET_FREED
memsetString(string8);