aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Turner <>2009-04-18 20:51:56 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-04-18 20:51:56 -0700
commitce2488af7883e005d4dc1f0b277a1d0c5b2d679c (patch)
tree32b9688ef0b272562ebccfa8cfd793ed741ad338
parent08fe676e2b2120648338254c7df221b214730c6f (diff)
parent5b80a97317a630ccb5567e94db65b99d0eb46f0f (diff)
downloadsdk-ce2488af7883e005d4dc1f0b277a1d0c5b2d679c.zip
sdk-ce2488af7883e005d4dc1f0b277a1d0c5b2d679c.tar.gz
sdk-ce2488af7883e005d4dc1f0b277a1d0c5b2d679c.tar.bz2
Merge branch 'readonly-p4-master'
-rw-r--r--emulator/qemud/qemud.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/emulator/qemud/qemud.c b/emulator/qemud/qemud.c
index 8f7e616..c578145 100644
--- a/emulator/qemud/qemud.c
+++ b/emulator/qemud/qemud.c
@@ -1438,12 +1438,14 @@ multiplexer_handle_control( Multiplexer* mult, Packet* p )
*/
if (client != NULL) {
client_registration(client, 1);
+ } else {
+ D("%s: NULL client: '%.*s'", __FUNCTION__, p->len, p->data+11);
}
goto EXIT;
}
/* connection registration failure */
- if (p->len >= 13 && !memcmp(p->data, "ko:connect:",11)) {
+ if (p->len == 13 && !memcmp(p->data, "ko:connect:",11)) {
int channel = hex2int(p->data+11, 2);
Client* client = multiplexer_find_client(mult, channel);
@@ -1464,8 +1466,18 @@ multiplexer_handle_control( Multiplexer* mult, Packet* p )
goto EXIT;
}
- D("%s: unknown control message: '%.*s'",
- __FUNCTION__, p->len, p->data);
+ /* A message that begins with "X00" is a probe sent by
+ * the emulator used to detect which version of qemud it runs
+ * against (in order to detect 1.0/1.1 system images. Just
+ * silently ignore it there instead of printing an error
+ * message.
+ */
+ if (p->len >= 3 && !memcmp(p->data,"X00",3)) {
+ goto EXIT;
+ }
+
+ D("%s: unknown control message (%d bytes): '%.*s'",
+ __FUNCTION__, p->len, p->len, p->data);
EXIT:
packet_free(&p);
@@ -1477,6 +1489,8 @@ multiplexer_serial_receive( Multiplexer* mult, Packet* p )
{
Client* client;
+ T("%s: channel=%d '%.*s'", __FUNCTION__, p->channel, p->len, p->data);
+
if (p->channel == CHANNEL_CONTROL) {
multiplexer_handle_control(mult, p);
return;