1,类图
2,功能介绍
2.1 DnsProxyListener创建的监听socket名字为 dnsproxyd
2.2 DnsProxyListener负责监听客户端的请求,并经过FrameworkListener的机制,转给对应的Command对象处理(此处只有2种).
而在Command的处理中,其会创建一个新的handler线程,在线程里去完成具体的操作。
3, 注意点
getaddrinfo 的调用会走到bionic中的netbsd中的实现。
Android添加了自己新的出路,此处理会根据环境变量"ANDROID_DNS_MODE"来决定走何种路径。
如果环境变量"ANDROID_DNS_MODE"为local, 则会执行getaddrinfo中原先的netbsd实现。 否则,会创建一个"dnsproxyd"的socket, 通过与netd交互由netd来完成具体的操作。