DNS Proxy should not hang on addresses containing null bytes DO NOT MERGE

Two bugs here:

1.) The gethostbyaddr netd protocol was passing a binary address value
    but the arguments are expected to be strings not containing
    embedded nulls (or probably other special characters). This
    happened reliably with IPv6 addresses which contained nulls. It
    now expects an inet_ntop formatted address.

2.) Although the gethostbyaddr code detected something was wrong, it
    wasn't doing any proper error handling, leaving clients hanging
    waiting for a response. It now sends back an empty response so
    that clients can continue.

A corresponding change will be necesssary in bionic for #1 for DNS
proxying to work, but given the fix for #2, the existing bionic code
will fall back to performing its own gethostbyaddr call.

Bug: 4344448
git cherry-pick -e 0475ae98cd8f45de815d67d1966edaf5997be9a9

Change-Id: I0b131032e06c16950b4e6810155529b57814c565
2 files changed