diff options
| author | Jeff Sharkey <jsharkey@android.com> | 2012-04-19 11:43:49 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-04-19 11:43:49 -0700 |
| commit | 1b965941713a395dc8003cf8ee29a40f92dd77aa (patch) | |
| tree | fd241aefc47e9a08cd4dbacfd5d44df9296aa267 /core/jni/android_net_NetUtils.cpp | |
| parent | b4aed7f5c7b56dee063a6ee1819ba50f0b5298ca (diff) | |
| parent | 77b87ba0bc1c5de025976416b49e698ed9362814 (diff) | |
| download | frameworks_base-1b965941713a395dc8003cf8ee29a40f92dd77aa.zip frameworks_base-1b965941713a395dc8003cf8ee29a40f92dd77aa.tar.gz frameworks_base-1b965941713a395dc8003cf8ee29a40f92dd77aa.tar.bz2 | |
Merge "Pipe DHCP vendor info towards framework."
Diffstat (limited to 'core/jni/android_net_NetUtils.cpp')
| -rw-r--r-- | core/jni/android_net_NetUtils.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/core/jni/android_net_NetUtils.cpp b/core/jni/android_net_NetUtils.cpp index 724d9fb..1f2b1ae 100644 --- a/core/jni/android_net_NetUtils.cpp +++ b/core/jni/android_net_NetUtils.cpp @@ -31,20 +31,22 @@ int ifc_reset_connections(const char *ifname, int reset_mask); int dhcp_do_request(const char *ifname, const char *ipaddr, const char *gateway, - uint32_t *prefixLength, + uint32_t *prefixLength, const char *dns1, const char *dns2, const char *server, - uint32_t *lease); + uint32_t *lease, + const char *vendorInfo); int dhcp_do_request_renew(const char *ifname, const char *ipaddr, const char *gateway, - uint32_t *prefixLength, + uint32_t *prefixLength, const char *dns1, const char *dns2, const char *server, - uint32_t *lease); + uint32_t *lease, + const char *vendorInfo); int dhcp_stop(const char *ifname); int dhcp_release_lease(const char *ifname); @@ -68,6 +70,7 @@ static struct fieldIds { jfieldID dns2; jfieldID serverAddress; jfieldID leaseDuration; + jfieldID vendorInfo; } dhcpInfoInternalFieldIds; static jint android_net_utils_enableInterface(JNIEnv* env, jobject clazz, jstring ifname) @@ -116,16 +119,17 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr char dns2[PROPERTY_VALUE_MAX]; char server[PROPERTY_VALUE_MAX]; uint32_t lease; + char vendorInfo[PROPERTY_VALUE_MAX]; const char *nameStr = env->GetStringUTFChars(ifname, NULL); if (nameStr == NULL) return (jboolean)false; if (renew) { result = ::dhcp_do_request_renew(nameStr, ipaddr, gateway, &prefixLength, - dns1, dns2, server, &lease); + dns1, dns2, server, &lease, vendorInfo); } else { result = ::dhcp_do_request(nameStr, ipaddr, gateway, &prefixLength, - dns1, dns2, server, &lease); + dns1, dns2, server, &lease, vendorInfo); } env->ReleaseStringUTFChars(ifname, nameStr); @@ -161,6 +165,7 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr env->SetObjectField(info, dhcpInfoInternalFieldIds.serverAddress, env->NewStringUTF(server)); env->SetIntField(info, dhcpInfoInternalFieldIds.leaseDuration, lease); + env->SetObjectField(info, dhcpInfoInternalFieldIds.vendorInfo, env->NewStringUTF(vendorInfo)); } return (jboolean)(result == 0); } @@ -230,6 +235,7 @@ int register_android_net_NetworkUtils(JNIEnv* env) dhcpInfoInternalFieldIds.dns2 = env->GetFieldID(dhcpInfoInternalClass, "dns2", "Ljava/lang/String;"); dhcpInfoInternalFieldIds.serverAddress = env->GetFieldID(dhcpInfoInternalClass, "serverAddress", "Ljava/lang/String;"); dhcpInfoInternalFieldIds.leaseDuration = env->GetFieldID(dhcpInfoInternalClass, "leaseDuration", "I"); + dhcpInfoInternalFieldIds.vendorInfo = env->GetFieldID(dhcpInfoInternalClass, "vendorInfo", "Ljava/lang/String;"); return AndroidRuntime::registerNativeMethods(env, NETUTILS_PKG_NAME, gNetworkUtilMethods, NELEM(gNetworkUtilMethods)); |
