diff options
author | Chinh Tran <chinht@codeaurora.org> | 2010-09-01 18:11:05 -0700 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@qualcomm.com> | 2010-09-14 00:04:46 -0600 |
commit | 74ba18baa02f9b02d2ffc07f6f05cbba8f9c9598 (patch) | |
tree | 3b2e7d82220678bcb9a446043295cc3d78200dd0 /cnd/src/cnd_process.cpp | |
parent | c0dec5a4d77520b907949d5bdd1b8df41bcd77dd (diff) | |
download | android_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-x | cnd/src/cnd_process.cpp | 32 |
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); |