What's new

AC86U: unable to add more than 11 devices in DNSFilter

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

sky44

New Around Here
Hi,

I'm on a router AC86U with merlin 386.5

I just realized that I couldn't add a 12th device in the DNSFilter page.

When I add a new device and submit, the page refresh and I always have 11 devices.

In nvram I have :
Code:
dnsfilter_rulelist=<>4C:AB:4F:XX:XX:XX>16<>C4:12:34:XX:XX:XX>16<>D4:57:63:XX:XX:XX>16<>34:2F:BD:XX:XX:XX>16<>0C:FE:45:XX:XX:XX>16<>CC:95:D7:XX:XX:XX>16<>18:1D:EA:XX:XX:XX>16<>64:70:33:XX:XX:XX>16<>88:3D:24:XX:XX:XX>16<>58:D3:49:XX:XX:XX>16<>D8:5D:E2:XX:XX:XX>16

I try
Code:
nvram unset dnsfilter_rulelist
to recreate the entry but same issue.

and nvram usage :
1647226367264.png


Thanks!
 
Last edited:
Broadcom limitation. I cannot create new nvram variables longer than 255 characters. To increase that limit in DNSFilter I create multiple separate variables to store rules that I concatenate when processing them. dnsfilter_rulelist only contains the first 255 characters, the rest is split across dnsfilter_rulelist1 to dnsfilter_rulelist5.
 
Broadcom limitation. I cannot create new nvram variables longer than 255 characters. To increase that limit in DNSFilter I create multiple separate variables to store rules that I concatenate when processing them. dnsfilter_rulelist only contains the first 255 characters, the rest is split across dnsfilter_rulelist1 to dnsfilter_rulelist5.
Wasn’t that harmonized with Asus’ implementation in 386.4? There is no code to read or write the other variables in the asp page anymore.
 
Last edited:
But when I try to add a 12th device, I have nothing on others dns_rulelist :
Code:
dnsfilter_rulelist=<>4C:AB:4F:XX:XX:XX>16<>C4:12:34:XX:XX:XX>16<>D4:57:63:XX:XX:XX>16<>34:2F:BD:XX:XX:XX>16<>0C:FE:45:XX:XX:XX>16<>CC:95:D7:XX:XX:XX>16<>18:1D:EA:XX:XX:XX>16<>64:70:33:XX:XX:XX>16<>88:3D:24:XX:XX:XX>16<>58:D3:49:XX:XX:XX>16<>D8:5D:E2:XX:XX:XX>16
dnsfilter_rulelist1=
dnsfilter_rulelist2=
dnsfilter_rulelist3=
dnsfilter_rulelist4=
dnsfilter_rulelist5=
 
Wasn’t that harmonized with Asus’ implementation in 386.4? There is no code to read or write the other variables in the asp page anymore.
That would be a regression then, as rc/dnsfilter.c still deals with multiple nvrams, and Asus has put a hold on their upstream implementation of DNSFilter.
 
I check the code, and I don't understand how the values can be split in dnsfilter_rulelist1...5
The method split_clientlist is never called :

But I don't know at all the project, maybe I'm saying anything :p
 
I check the code, and I don't understand how the values can be split in dnsfilter_rulelist1...5
The method split_clientlist is never called :

But I don't know at all the project, maybe I'm saying anything :p
As RMerlin mentioned, it's likely a regression from one of the GPL merges. It will have to be fixed in a future release. But it was good of you to expose the issue.
 
Broadcom limitation. I cannot create new nvram variables longer than 255 characters. To increase that limit in DNSFilter I create multiple separate variables to store rules that I concatenate when processing them. dnsfilter_rulelist only contains the first 255 characters, the rest is split across dnsfilter_rulelist1 to dnsfilter_rulelist5.

I guess it's the same reason: o_O
 
I guess it's the same reason: o_O
Probably. Until Asus officially adds it to their firmware, at which point they will define a larger variable.

Having so many DoT servers is a bad idea anyway, as it`s quite wasteful resource-wise, plus you are probably going to have different providers that may return different IPs depending on how their EDNS subnet handling is done.
 
Sorry to bring this thread back. Thought it's better to use it instead of opening a new one.

I'm trying to set a specifically NVRAM value without success.
The NVRAM var is custom_clientlist

When reading it (get), it has more than 255 char. But I can't write more than 255 char (set). How can I bypass that?
 

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top