julian-klode / dns66

DNS-based Host Blocker (and lightweight ad blocker) for Android

Home Page:https://jak-linux.org/projects/dns66/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Errors when dns66 stops working

GRBurst opened this issue · comments

Sometimes, the APP stops working. I saw other issues stating it happens when they switch from wlan to Mobil or vice versa, but I can not confirm this to be true in my cases. Hence I created a new issue.

When it happens today, there are two different errors in the logcat that are related to dns66:

  1. AdVpnThread
Network exception in vpn thread, reconnecting
java.lang.IllegalArgumentException: arr is empty.
	at org.pcap4j.util.ByteArrays.validateBounds(ByteArrays.java:953)
	at org.pcap4j.util.ByteArrays.toHexString(ByteArrays.java:771)
	at org.pcap4j.util.ByteArrays.toHexString(ByteArrays.java:760)
	at org.pcap4j.packet.UnknownTcpOption.toString(UnknownTcpOption.java:147)
	at java.lang.String.valueOf(String.java:2924)
	at java.lang.StringBuilder.append(StringBuilder.java:132)
	at org.pcap4j.packet.TcpPacket$TcpHeader.buildString(TcpPacket.java:945)
	at org.pcap4j.packet.AbstractPacket$AbstractHeader$4.buildValue(AbstractPacket.java:416)
	at org.pcap4j.packet.AbstractPacket$AbstractHeader$4.buildValue(AbstractPacket.java:413)
	at org.pcap4j.util.LazyValue.getValue(LazyValue.java:41)
	at org.pcap4j.packet.AbstractPacket$AbstractHeader.toString(AbstractPacket.java:530)
	at org.pcap4j.packet.AbstractPacket.buildString(AbstractPacket.java:236)
	at org.pcap4j.packet.AbstractPacket$4.buildValue(AbstractPacket.java:68)
	at org.pcap4j.packet.AbstractPacket$4.buildValue(AbstractPacket.java:65)
	at org.pcap4j.util.LazyValue.getValue(LazyValue.java:41)
	at org.pcap4j.packet.AbstractPacket.toString(AbstractPacket.java:252)
	at java.lang.String.valueOf(String.java:2924)
	at java.lang.StringBuilder.append(StringBuilder.java:132)
	at org.jak_linux.dns66.vpn.DnsPacketProxy.handleDnsRequest(DnsPacketProxy.java:152)
	at org.jak_linux.dns66.vpn.AdVpnThread.readPacketFromDevice(AdVpnThread.java:319)
	at org.jak_linux.dns66.vpn.AdVpnThread.doOne(AdVpnThread.java:284)
	at org.jak_linux.dns66.vpn.AdVpnThread.runVpn(AdVpnThread.java:220)
	at org.jak_linux.dns66.vpn.AdVpnThread.run(AdVpnThread.java:157)
	at java.lang.Thread.run(Thread.java:919)
  1. DnsPacketProxy
handleDnsRequest: Cannot handle packets to192.0.2.255
java.lang.ArrayIndexOutOfBoundsException: length=10; index=-3
	at java.util.ArrayList.get(ArrayList.java:439)
	at org.jak_linux.dns66.vpn.DnsPacketProxy.translateDestinationAdress(DnsPacketProxy.java:214)
	at org.jak_linux.dns66.vpn.DnsPacketProxy.handleDnsRequest(DnsPacketProxy.java:156)
	at org.jak_linux.dns66.vpn.AdVpnThread.readPacketFromDevice(AdVpnThread.java:319)
	at org.jak_linux.dns66.vpn.AdVpnThread.doOne(AdVpnThread.java:284)
	at org.jak_linux.dns66.vpn.AdVpnThread.runVpn(AdVpnThread.java:220)
	at org.jak_linux.dns66.vpn.AdVpnThread.run(AdVpnThread.java:157)
	at java.lang.Thread.run(Thread.java:919)

Seems like boundary + empty checks should resolve the problem. Using Android 10 btw.
I also enabled "Watch connection", " Resume on startup" and "ipv6 support".

Hope that helps. Feel free to reach out in case you need more informative :-)

Best wishes

Thank you for your bug report, I'll try to find some time to investigate and fix this.

The second one is not a bug, it's just an informative message, and expected.