AC86U: unable to add more than 11 devices in DNSFilter

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:

RMerlin

Asuswrt-Merlin dev
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.
 

dave14305

Part of the Furniture
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:

sky44

New Around Here
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=
 

RMerlin

Asuswrt-Merlin dev
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.
 

sky44

New Around Here
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
 

dave14305

Part of the Furniture
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.
 

Yota

Senior Member
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
 

RMerlin

Asuswrt-Merlin dev
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.
 

Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

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