summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Chang <vichang@google.com>2019-01-04 19:21:18 +0000
committerVictor Chang <vichang@google.com>2019-01-08 14:02:09 +0000
commit361f4eb8c0f47fe843f5302d74f505202fc0916b (patch)
tree6f51340728c650f83e31be485ab7d9385849e011
parent64c3f6d6ba02841d86c68c39b523ab1dc22f07cb (diff)
Replace C++ API by the C API provided by libpac
- libpac will be moved into the Runtime APEX module. Use the new stable C API interface provided by libpac - The change also removes the following debug log when error occurs. ALOGE("Error Running PAC: %s", ret8.string()); When ProxyServerV8::GetProxyForURL != OK, ret8 may not contain the error message, but the non-ASCII proxy names. Bug: 121269980 Test: m droid Change-Id: I0ea0ad7489a23cbc0476dcd66d320f80499f8be1
-rw-r--r--packages/services/PacProcessor/jni/com_android_pacprocessor_PacNative.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/packages/services/PacProcessor/jni/com_android_pacprocessor_PacNative.cpp b/packages/services/PacProcessor/jni/com_android_pacprocessor_PacNative.cpp
index d43ef5df0ba8..d969c69cfaf1 100644
--- a/packages/services/PacProcessor/jni/com_android_pacprocessor_PacNative.cpp
+++ b/packages/services/PacProcessor/jni/com_android_pacprocessor_PacNative.cpp
@@ -16,6 +16,7 @@
#define LOG_TAG "PacProcessor"
+#include <stdlib.h>
#include <string>
#include <utils/Log.h>
@@ -25,11 +26,11 @@
#include "jni.h"
#include <nativehelper/JNIHelp.h>
-#include "proxy_resolver_v8.h"
+#include "proxy_resolver_v8_wrapper.h"
namespace android {
-net::ProxyResolverV8* proxyResolver = NULL;
+ProxyResolverV8Handle* proxyResolver = NULL;
bool pacSet = false;
std::u16string jstringToString16(JNIEnv* env, jstring jstr) {
@@ -50,7 +51,7 @@ jstring string16ToJstring(JNIEnv* env, std::u16string string) {
static jboolean com_android_pacprocessor_PacNative_createV8ParserNativeLocked(JNIEnv* /* env */,
jobject) {
if (proxyResolver == NULL) {
- proxyResolver = new net::ProxyResolverV8(net::ProxyResolverJSBindings::CreateDefault());
+ proxyResolver = ProxyResolverV8Handle_new();
pacSet = false;
return JNI_FALSE;
}
@@ -60,7 +61,7 @@ static jboolean com_android_pacprocessor_PacNative_createV8ParserNativeLocked(JN
static jboolean com_android_pacprocessor_PacNative_destroyV8ParserNativeLocked(JNIEnv* /* env */,
jobject) {
if (proxyResolver != NULL) {
- delete proxyResolver;
+ ProxyResolverV8Handle_delete(proxyResolver);
proxyResolver = NULL;
return JNI_FALSE;
}
@@ -76,7 +77,7 @@ static jboolean com_android_pacprocessor_PacNative_setProxyScriptNativeLocked(JN
return JNI_TRUE;
}
- if (proxyResolver->SetPacScript(script16) != OK) {
+ if (ProxyResolverV8Handle_SetPacScript(proxyResolver, script16.data()) != OK) {
ALOGE("Unable to set PAC script");
return JNI_TRUE;
}
@@ -89,7 +90,6 @@ static jstring com_android_pacprocessor_PacNative_makeProxyRequestNativeLocked(J
jstring url, jstring host) {
std::u16string url16 = jstringToString16(env, url);
std::u16string host16 = jstringToString16(env, host);
- std::u16string ret;
if (proxyResolver == NULL) {
ALOGE("V8 Parser not initialized when running PAC script");
@@ -101,12 +101,14 @@ static jstring com_android_pacprocessor_PacNative_makeProxyRequestNativeLocked(J
return NULL;
}
- if (proxyResolver->GetProxyForURL(url16, host16, &ret) != OK) {
- String8 ret8(ret.data());
- ALOGE("Error Running PAC: %s", ret8.string());
+ std::unique_ptr<char16_t, decltype(&free)> result = std::unique_ptr<char16_t, decltype(&free)>(
+ ProxyResolverV8Handle_GetProxyForURL(proxyResolver, url16.data(), host16.data()), &free);
+ if (result.get() == NULL) {
+ ALOGE("Error Running PAC");
return NULL;
}
+ std::u16string ret(result.get());
jstring jret = string16ToJstring(env, ret);
return jret;