am d8ad6c98: resolved conflicts for merge of 988d3d71 to honeycomb-plus-aosp
* commit 'd8ad6c98086c410243e0e8ad8285f02d6b696bd6':
Enable QEMUD pipe connection
diff --git a/reference-ril/reference-ril.c b/reference-ril/reference-ril.c
index 02a7e12..ce2b0ce 100644
--- a/reference-ril/reference-ril.c
+++ b/reference-ril/reference-ril.c
@@ -35,6 +35,7 @@
#include <sys/system_properties.h>
#include "ril.h"
+#include "hardware/qemu_pipe.h"
#define LOG_TAG "RIL"
#include <utils/Log.h>
@@ -2072,21 +2073,28 @@
fd = socket_loopback_client(s_port, SOCK_STREAM);
} else if (s_device_socket) {
if (!strcmp(s_device_path, "/dev/socket/qemud")) {
- /* Qemu-specific control socket */
- fd = socket_local_client( "qemud",
- ANDROID_SOCKET_NAMESPACE_RESERVED,
- SOCK_STREAM );
- if (fd >= 0 ) {
- char answer[2];
+ /* Before trying to connect to /dev/socket/qemud (which is
+ * now another "legacy" way of communicating with the
+ * emulator), we will try to connecto to gsm service via
+ * qemu pipe. */
+ fd = qemu_pipe_open("qemud:gsm");
+ if (fd < 0) {
+ /* Qemu-specific control socket */
+ fd = socket_local_client( "qemud",
+ ANDROID_SOCKET_NAMESPACE_RESERVED,
+ SOCK_STREAM );
+ if (fd >= 0 ) {
+ char answer[2];
- if ( write(fd, "gsm", 3) != 3 ||
- read(fd, answer, 2) != 2 ||
- memcmp(answer, "OK", 2) != 0)
- {
- close(fd);
- fd = -1;
- }
- }
+ if ( write(fd, "gsm", 3) != 3 ||
+ read(fd, answer, 2) != 2 ||
+ memcmp(answer, "OK", 2) != 0)
+ {
+ close(fd);
+ fd = -1;
+ }
+ }
+ }
}
else
fd = socket_local_client( s_device_path,
diff --git a/rild/rild.c b/rild/rild.c
index 8ee3569..18ff671 100644
--- a/rild/rild.c
+++ b/rild/rild.c
@@ -33,6 +33,7 @@
#include <linux/prctl.h>
#include <private/android_filesystem_config.h>
+#include "hardware/qemu_pipe.h"
#define LIB_PATH_PROPERTY "rild.libpath"
#define LIB_ARGS_PROPERTY "rild.libargs"
@@ -175,11 +176,13 @@
sleep(1);
- fd = socket_local_client(
- QEMUD_SOCKET_NAME,
- ANDROID_SOCKET_NAMESPACE_RESERVED,
- SOCK_STREAM );
-
+ fd = qemu_pipe_open("qemud:gsm");
+ if (fd < 0) {
+ fd = socket_local_client(
+ QEMUD_SOCKET_NAME,
+ ANDROID_SOCKET_NAMESPACE_RESERVED,
+ SOCK_STREAM );
+ }
if (fd >= 0) {
close(fd);
snprintf( arg_device, sizeof(arg_device), "%s/%s",