P2P: fix add upnp service version number parsing
Fixed an error introduced in the p2p hal, where the add service hal was
incorrectly decoding a upnp service version as a decimal number instead
of hexadecimal.
Bug: 38174469
Test: Updated unit tests
Change-Id: Ibf085498e2dfe0190810bd96a7868e1f5dacd94d
diff --git a/service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceHal.java b/service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceHal.java
index a0f0ad9..b4677b9 100644
--- a/service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceHal.java
+++ b/service/java/com/android/server/wifi/p2p/SupplicantP2pIfaceHal.java
@@ -1247,7 +1247,7 @@
if ("upnp".equals(data[0])) {
int version = 0;
try {
- version = Integer.parseInt(data[1]);
+ version = Integer.parseInt(data[1], 16);
} catch (NumberFormatException e) {
Log.e(TAG, "UPnP Service specification invalid: " + s, e);
return false;
@@ -1323,7 +1323,7 @@
if ("upnp".equals(data[0])) {
int version = 0;
try {
- version = Integer.parseInt(data[1]);
+ version = Integer.parseInt(data[1], 16);
} catch (NumberFormatException e) {
Log.e(TAG, "UPnP Service specification invalid: " + s, e);
return false;
diff --git a/service/tests/wifitests/src/com/android/server/wifi/p2p/SupplicantP2pIfaceHalTest.java b/service/tests/wifitests/src/com/android/server/wifi/p2p/SupplicantP2pIfaceHalTest.java
index 4f5864b..af01b5f 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/p2p/SupplicantP2pIfaceHalTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/p2p/SupplicantP2pIfaceHalTest.java
@@ -116,8 +116,8 @@
final String mInvalidBonjourService2 = "bonjour 123456";
final String mInvalidBonjourService3 = "bonjour invalid_hex 123456";
final String mInvalidBonjourService4 = "bonjour 123456 invalid_hex";
- final String mValidUpnpService = "upnp 1 serviceName";
- final int mValidUpnpServiceVersion = 1;
+ final String mValidUpnpService = "upnp 10 serviceName";
+ final int mValidUpnpServiceVersion = 16;
final String mValidUpnpServiceName = "serviceName";
final String mValidBonjourService = "bonjour 30313233 34353637";
final ArrayList<Byte> mValidBonjourServiceRequest = new ArrayList<Byte>() {{