DnsPinger -- log setup problems

Changed class to send a pings for 1.5 seconds to see if conn problems are
resolving after time.  Turning RD flag on for now

Change-Id: I05bcf208bda3ea8fb98bd7aec8f0109523d64583
diff --git a/core/java/android/net/DnsPinger.java b/core/java/android/net/DnsPinger.java
index 81738f3..6115fef 100644
--- a/core/java/android/net/DnsPinger.java
+++ b/core/java/android/net/DnsPinger.java
@@ -147,8 +147,9 @@
                     DatagramPacket packet = new DatagramPacket(buf,
                             buf.length, dnsAddress, DNS_PORT);
                     if (V) {
-                        Slog.v(TAG, "Sending a ping to " + dnsAddress.getHostAddress()
-                                + " with ID " + newActivePing.packetId + ".");
+                        Slog.v(TAG, "Sending a ping " + newActivePing.internalId +
+                                " to " + dnsAddress.getHostAddress()
+                                + " with packetId " + newActivePing.packetId + ".");
                     }
 
                     newActivePing.socket.send(packet);
@@ -157,7 +158,7 @@
                     sendMessageDelayed(obtainMessage(ACTION_LISTEN_FOR_RESPONSE, mEventCounter, 0),
                             RECEIVE_POLL_INTERVAL_MS);
                 } catch (IOException e) {
-                    sendResponse((short) msg.arg1, SOCKET_EXCEPTION);
+                    sendResponse(msg.arg1, -9999, SOCKET_EXCEPTION);
                 }
                 break;
             case ACTION_LISTEN_FOR_RESPONSE:
@@ -193,12 +194,12 @@
                 while (iter.hasNext()) {
                    ActivePing curPing = iter.next();
                    if (curPing.result != null) {
-                       sendResponse(curPing.internalId, curPing.result);
+                       sendResponse(curPing.internalId, curPing.packetId, curPing.result);
                        curPing.socket.close();
                        iter.remove();
                    } else if (SystemClock.elapsedRealtime() >
                                   curPing.start + curPing.timeout) {
-                       sendResponse(curPing.internalId, TIMEOUT);
+                       sendResponse(curPing.internalId, curPing.packetId, TIMEOUT);
                        curPing.socket.close();
                        iter.remove();
                    }
@@ -255,9 +256,11 @@
         obtainMessage(ACTION_CANCEL_ALL_PINGS).sendToTarget();
     }
 
-    private void sendResponse(int internalId, int responseVal) {
+    private void sendResponse(int internalId, int externalId, int responseVal) {
         if(V) {
-            Slog.v(TAG, "Responding with id " + internalId + " and val " + responseVal);
+            Slog.d(TAG, "Responding to packet " + internalId +
+                    " externalId " + externalId +
+                    " and val " + responseVal);
         }
         mTarget.sendMessage(obtainMessage(DNS_PING_RESULT, internalId, responseVal));
     }
@@ -288,7 +291,7 @@
 
     private static final byte[] mDnsQuery = new byte[] {
         0, 0, // [0-1] is for ID (will set each time)
-        0, 0, // [2-3] are flags.  Set byte[2] = 1 for recursion desired (RD) on.  Currently off. 
+        1, 0, // [2-3] are flags.  Set byte[2] = 1 for recursion desired (RD) on.  Currently on.
         0, 1, // [4-5] bytes are for number of queries (QCOUNT)
         0, 0, // [6-7] unused count field for dns response packets
         0, 0, // [8-9] unused count field for dns response packets