Skip to content

Commit 1b96594

Browse files
jsharkeyAndroid (Google) Code Review
authored andcommitted
Merge "Pipe DHCP vendor info towards framework."
2 parents b4aed7f + 77b87ba commit 1b96594

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

core/java/android/net/DhcpInfoInternal.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@
1919
import android.text.TextUtils;
2020
import android.util.Log;
2121

22-
import java.net.InetAddress;
2322
import java.net.Inet4Address;
24-
import java.net.UnknownHostException;
23+
import java.net.InetAddress;
2524
import java.util.ArrayList;
2625
import java.util.Collection;
2726
import java.util.Collections;
@@ -42,6 +41,11 @@ public class DhcpInfoInternal {
4241
public String serverAddress;
4342
public int leaseDuration;
4443

44+
/**
45+
* Vendor specific information (from RFC 2132).
46+
*/
47+
public String vendorInfo;
48+
4549
private Collection<RouteInfo> mRoutes;
4650

4751
public DhcpInfoInternal() {

core/jni/android_net_NetUtils.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,22 @@ int ifc_reset_connections(const char *ifname, int reset_mask);
3131
int dhcp_do_request(const char *ifname,
3232
const char *ipaddr,
3333
const char *gateway,
34-
uint32_t *prefixLength,
34+
uint32_t *prefixLength,
3535
const char *dns1,
3636
const char *dns2,
3737
const char *server,
38-
uint32_t *lease);
38+
uint32_t *lease,
39+
const char *vendorInfo);
3940

4041
int dhcp_do_request_renew(const char *ifname,
4142
const char *ipaddr,
4243
const char *gateway,
43-
uint32_t *prefixLength,
44+
uint32_t *prefixLength,
4445
const char *dns1,
4546
const char *dns2,
4647
const char *server,
47-
uint32_t *lease);
48+
uint32_t *lease,
49+
const char *vendorInfo);
4850

4951
int dhcp_stop(const char *ifname);
5052
int dhcp_release_lease(const char *ifname);
@@ -68,6 +70,7 @@ static struct fieldIds {
6870
jfieldID dns2;
6971
jfieldID serverAddress;
7072
jfieldID leaseDuration;
73+
jfieldID vendorInfo;
7174
} dhcpInfoInternalFieldIds;
7275

7376
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
116119
char dns2[PROPERTY_VALUE_MAX];
117120
char server[PROPERTY_VALUE_MAX];
118121
uint32_t lease;
122+
char vendorInfo[PROPERTY_VALUE_MAX];
119123

120124
const char *nameStr = env->GetStringUTFChars(ifname, NULL);
121125
if (nameStr == NULL) return (jboolean)false;
122126

123127
if (renew) {
124128
result = ::dhcp_do_request_renew(nameStr, ipaddr, gateway, &prefixLength,
125-
dns1, dns2, server, &lease);
129+
dns1, dns2, server, &lease, vendorInfo);
126130
} else {
127131
result = ::dhcp_do_request(nameStr, ipaddr, gateway, &prefixLength,
128-
dns1, dns2, server, &lease);
132+
dns1, dns2, server, &lease, vendorInfo);
129133
}
130134

131135
env->ReleaseStringUTFChars(ifname, nameStr);
@@ -161,6 +165,7 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr
161165
env->SetObjectField(info, dhcpInfoInternalFieldIds.serverAddress,
162166
env->NewStringUTF(server));
163167
env->SetIntField(info, dhcpInfoInternalFieldIds.leaseDuration, lease);
168+
env->SetObjectField(info, dhcpInfoInternalFieldIds.vendorInfo, env->NewStringUTF(vendorInfo));
164169
}
165170
return (jboolean)(result == 0);
166171
}
@@ -230,6 +235,7 @@ int register_android_net_NetworkUtils(JNIEnv* env)
230235
dhcpInfoInternalFieldIds.dns2 = env->GetFieldID(dhcpInfoInternalClass, "dns2", "Ljava/lang/String;");
231236
dhcpInfoInternalFieldIds.serverAddress = env->GetFieldID(dhcpInfoInternalClass, "serverAddress", "Ljava/lang/String;");
232237
dhcpInfoInternalFieldIds.leaseDuration = env->GetFieldID(dhcpInfoInternalClass, "leaseDuration", "I");
238+
dhcpInfoInternalFieldIds.vendorInfo = env->GetFieldID(dhcpInfoInternalClass, "vendorInfo", "Ljava/lang/String;");
233239

234240
return AndroidRuntime::registerNativeMethods(env,
235241
NETUTILS_PKG_NAME, gNetworkUtilMethods, NELEM(gNetworkUtilMethods));

0 commit comments

Comments
 (0)