mirror of
https://github.com/gSpotx2f/ruantiblock_openwrt.git
synced 2026-05-14 06:30:59 +00:00
User_entries changes.
This commit is contained in:
@@ -363,13 +363,20 @@ PreStartCheck() {
|
||||
|
||||
AddUserEntries() {
|
||||
if [ "$ADD_USER_ENTRIES" = "1" ]; then
|
||||
if [ -f "$USER_ENTRIES_FILE" -a -s "$USER_ENTRIES_FILE" ]; then
|
||||
if [ -f "$USER_ENTRIES_FILE" ]; then
|
||||
$AWK_CMD 'BEGIN {
|
||||
null="";
|
||||
ip_array[0]=null;
|
||||
cidr_array[0]=null;
|
||||
fqdn_array[0]=null;
|
||||
ip_list="";
|
||||
cidr_list="";
|
||||
}
|
||||
function writeIpList(array, _str) {
|
||||
_str="";
|
||||
for(i in array) {
|
||||
_str=_str i ",";
|
||||
};
|
||||
return _str;
|
||||
};
|
||||
function writeDNSData(val, dns) {
|
||||
if(length(dns) == 0 && length(ENVIRON["USER_ENTRIES_DNS"]) > 0) {
|
||||
dns=ENVIRON["USER_ENTRIES_DNS"];
|
||||
@@ -388,10 +395,10 @@ AddUserEntries() {
|
||||
};
|
||||
($0 !~ /^([\040\011]*$|#)/) {
|
||||
if($0 ~ /^[0-9]{1,3}([.][0-9]{1,3}){3}$/) {
|
||||
ip_list=ip_list $0 ",";
|
||||
ip_array[$0]=null;
|
||||
}
|
||||
else if($0 ~ /^[0-9]{1,3}([.][0-9]{1,3}){3}[\057][0-9]{1,2}$/) {
|
||||
cidr_list=cidr_list $0 ",";
|
||||
cidr_array[$0]=null;
|
||||
}
|
||||
else if($0 ~ /^[a-z0-9.\052-]+[.]([a-z]{2,}|xn--[a-z0-9]+)([ ][0-9]{1,3}([.][0-9]{1,3}){3}([#][0-9]{2,5})?)?$/) {
|
||||
fqdn_array[length(fqdn_array)]=$1 " " $2;
|
||||
@@ -399,12 +406,14 @@ AddUserEntries() {
|
||||
}
|
||||
END {
|
||||
printf "table %s {\nset %s {type %s;size %s;flags interval;auto-merge;", ENVIRON["NFT_TABLE"], ENVIRON["NFTSET_CIDR_USER"], ENVIRON["NFTSET_CIDR_TYPE"], ENVIRON["NFTSET_MAXELEM_CIDR"] >> ENVIRON["IP_DATA_FILE"];
|
||||
if(length(cidr_list) > 0) {
|
||||
printf "elements={%s};", cidr_list >> ENVIRON["IP_DATA_FILE"];
|
||||
delete cidr_array[0];
|
||||
if(length(cidr_array) > 0) {
|
||||
printf "elements={%s};", writeIpList(cidr_array) >> ENVIRON["IP_DATA_FILE"];
|
||||
};
|
||||
printf "}\nset %s {type %s;size %s;", ENVIRON["NFTSET_IP_USER"], ENVIRON["NFTSET_IP_TYPE"], ENVIRON["NFTSET_MAXELEM_IP"] >> ENVIRON["IP_DATA_FILE"];
|
||||
if(length(ip_list) > 0) {
|
||||
printf "elements={%s};", ip_list >> ENVIRON["IP_DATA_FILE"];
|
||||
delete ip_array[0];
|
||||
if(length(ip_array) > 0) {
|
||||
printf "elements={%s};", writeIpList(ip_array) >> ENVIRON["IP_DATA_FILE"];
|
||||
};
|
||||
printf "}\n}\n" >> ENVIRON["IP_DATA_FILE"];
|
||||
writeFqdnEntries();
|
||||
|
||||
Reference in New Issue
Block a user