#include "NetdConstants.h"
#include "NetworkController.h"
#include "ResponseCode.h"
-#include "android/net/metrics/IDnsEventListener.h"
+#include "android/net/metrics/INetdEventListener.h"
using android::String16;
using android::interface_cast;
-using android::net::metrics::IDnsEventListener;
+using android::net::metrics::INetdEventListener;
DnsProxyListener::DnsProxyListener(const NetworkController* netCtrl) :
FrameworkListener("dnsproxyd"), mNetCtrl(netCtrl) {
DnsProxyListener::GetAddrInfoHandler::GetAddrInfoHandler(
SocketClient *c, char* host, char* service, struct addrinfo* hints,
const struct android_net_context& netcontext,
- const android::sp<android::net::metrics::IDnsEventListener>& dnsEventListener)
+ const android::sp<android::net::metrics::INetdEventListener>& netdEventListener)
: mClient(c),
mHost(host),
mService(service),
mHints(hints),
mNetContext(netcontext),
- mDnsEventListener(dnsEventListener) {
+ mNetdEventListener(netdEventListener) {
}
DnsProxyListener::GetAddrInfoHandler::~GetAddrInfoHandler() {
return NULL;
}
-android::sp<IDnsEventListener> DnsProxyListener::getDnsEventListener() {
- if (mDnsEventListener == nullptr) {
+android::sp<INetdEventListener> DnsProxyListener::getNetdEventListener() {
+ if (mNetdEventListener == nullptr) {
// Use checkService instead of getService because getService waits for 5 seconds for the
// service to become available. The DNS resolver inside netd is started much earlier in the
// boot sequence than the framework DNS listener, and we don't want to delay all DNS lookups
// for 5 seconds until the DNS listener starts up.
android::sp<android::IBinder> b = android::defaultServiceManager()->checkService(
- android::String16("dns_listener"));
+ android::String16("netd_listener"));
if (b != nullptr) {
- mDnsEventListener = interface_cast<IDnsEventListener>(b);
+ mNetdEventListener = interface_cast<INetdEventListener>(b);
}
}
// If the DNS listener service is dead, the binder call will just return an error, which should
// be fine because the only impact is that we can't log DNS events. In any case, this should
// only happen if the system server is going down, which means it will shortly be taking us down
// with it.
- return mDnsEventListener;
+ return mNetdEventListener;
}
static bool sendBE32(SocketClient* c, uint32_t data) {
freeaddrinfo(result);
}
mClient->decRef();
- if (mDnsEventListener != nullptr) {
- mDnsEventListener->onDnsEvent(mNetContext.dns_netid, IDnsEventListener::EVENT_GETADDRINFO,
- (int32_t) rv, latencyMs);
+ if (mNetdEventListener != nullptr) {
+ mNetdEventListener->onDnsEvent(mNetContext.dns_netid,
+ INetdEventListener::EVENT_GETADDRINFO, (int32_t) rv,
+ latencyMs);
}
}
cli->incRef();
DnsProxyListener::GetAddrInfoHandler* handler =
new DnsProxyListener::GetAddrInfoHandler(cli, name, service, hints, netcontext,
- mDnsProxyListener->getDnsEventListener());
+ mDnsProxyListener->getNetdEventListener());
handler->start();
return 0;
cli->incRef();
DnsProxyListener::GetHostByNameHandler* handler =
new DnsProxyListener::GetHostByNameHandler(cli, name, af, netId, mark,
- mDnsProxyListener->getDnsEventListener());
+ mDnsProxyListener->getNetdEventListener());
handler->start();
return 0;
DnsProxyListener::GetHostByNameHandler::GetHostByNameHandler(
SocketClient* c, char* name, int af, unsigned netId, uint32_t mark,
- const android::sp<android::net::metrics::IDnsEventListener>& dnsEventListener)
+ const android::sp<android::net::metrics::INetdEventListener>& netdEventListener)
: mClient(c),
mName(name),
mAf(af),
mNetId(netId),
mMark(mark),
- mDnsEventListener(dnsEventListener) {
+ mNetdEventListener(netdEventListener) {
}
DnsProxyListener::GetHostByNameHandler::~GetHostByNameHandler() {
}
mClient->decRef();
- if (mDnsEventListener != nullptr) {
- mDnsEventListener->onDnsEvent(mNetId, IDnsEventListener::EVENT_GETHOSTBYNAME,
+ if (mNetdEventListener != nullptr) {
+ mNetdEventListener->onDnsEvent(mNetId, INetdEventListener::EVENT_GETHOSTBYNAME,
h_errno, latencyMs);
}
}
#include <binder/IServiceManager.h>
#include <sysutils/FrameworkListener.h>
-#include "android/net/metrics/IDnsEventListener.h"
+#include "android/net/metrics/INetdEventListener.h"
#include "NetdCommand.h"
class NetworkController;
explicit DnsProxyListener(const NetworkController* netCtrl);
virtual ~DnsProxyListener() {}
- // Returns the binder reference to the DNS listener service, attempting to fetch it if we do not
- // have it already. This method mutates internal state without taking a lock and must only be
- // called on one thread. This is safe because we only call this in the runCommand methods of our
- // commands, which are only called by FrameworkListener::onDataAvailable, which is only called
- // from SocketListener::runListener, which is a single-threaded select loop.
- android::sp<android::net::metrics::IDnsEventListener> getDnsEventListener();
+ // Returns the binder reference to the netd events listener service, attempting to fetch it if
+ // we do not have it already. This method mutates internal state without taking a lock and must
+ // only be called on one thread. This is safe because we only call this in the runCommand
+ // methods of our commands, which are only called by FrameworkListener::onDataAvailable, which
+ // is only called from SocketListener::runListener, which is a single-threaded select loop.
+ android::sp<android::net::metrics::INetdEventListener> getNetdEventListener();
private:
const NetworkController *mNetCtrl;
- android::sp<android::net::metrics::IDnsEventListener> mDnsEventListener;
+ android::sp<android::net::metrics::INetdEventListener> mNetdEventListener;
class GetAddrInfoCmd : public NetdCommand {
public:
char* service,
struct addrinfo* hints,
const struct android_net_context& netcontext,
- const android::sp<android::net::metrics::IDnsEventListener>& listener);
+ const android::sp<android::net::metrics::INetdEventListener>& listener);
~GetAddrInfoHandler();
static void* threadStart(void* handler);
char* mService; // owned
struct addrinfo* mHints; // owned
struct android_net_context mNetContext;
- android::sp<android::net::metrics::IDnsEventListener> mDnsEventListener;
+ android::sp<android::net::metrics::INetdEventListener> mNetdEventListener;
};
/* ------ gethostbyname ------*/
int af,
unsigned netId,
uint32_t mark,
- const android::sp<android::net::metrics::IDnsEventListener>& listener);
+ const android::sp<android::net::metrics::INetdEventListener>& listener);
~GetHostByNameHandler();
static void* threadStart(void* handler);
void start();
int mAf;
unsigned mNetId;
uint32_t mMark;
- android::sp<android::net::metrics::IDnsEventListener> mDnsEventListener;
+ android::sp<android::net::metrics::INetdEventListener> mNetdEventListener;
};
/* ------ gethostbyaddr ------*/