mirror of
https://github.com/gSpotx2f/ruantiblock_openwrt.git
synced 2026-05-14 22:50:58 +00:00
User_entries changes.
This commit is contained in:
@@ -363,13 +363,20 @@ PreStartCheck() {
|
|||||||
|
|
||||||
AddUserEntries() {
|
AddUserEntries() {
|
||||||
if [ "$ADD_USER_ENTRIES" = "1" ]; then
|
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 {
|
$AWK_CMD 'BEGIN {
|
||||||
null="";
|
null="";
|
||||||
|
ip_array[0]=null;
|
||||||
|
cidr_array[0]=null;
|
||||||
fqdn_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) {
|
function writeDNSData(val, dns) {
|
||||||
if(length(dns) == 0 && length(ENVIRON["USER_ENTRIES_DNS"]) > 0) {
|
if(length(dns) == 0 && length(ENVIRON["USER_ENTRIES_DNS"]) > 0) {
|
||||||
dns=ENVIRON["USER_ENTRIES_DNS"];
|
dns=ENVIRON["USER_ENTRIES_DNS"];
|
||||||
@@ -388,10 +395,10 @@ AddUserEntries() {
|
|||||||
};
|
};
|
||||||
($0 !~ /^([\040\011]*$|#)/) {
|
($0 !~ /^([\040\011]*$|#)/) {
|
||||||
if($0 ~ /^[0-9]{1,3}([.][0-9]{1,3}){3}$/) {
|
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}$/) {
|
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})?)?$/) {
|
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;
|
fqdn_array[length(fqdn_array)]=$1 " " $2;
|
||||||
@@ -399,12 +406,14 @@ AddUserEntries() {
|
|||||||
}
|
}
|
||||||
END {
|
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"];
|
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) {
|
delete cidr_array[0];
|
||||||
printf "elements={%s};", cidr_list >> ENVIRON["IP_DATA_FILE"];
|
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"];
|
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) {
|
delete ip_array[0];
|
||||||
printf "elements={%s};", ip_list >> ENVIRON["IP_DATA_FILE"];
|
if(length(ip_array) > 0) {
|
||||||
|
printf "elements={%s};", writeIpList(ip_array) >> ENVIRON["IP_DATA_FILE"];
|
||||||
};
|
};
|
||||||
printf "}\n}\n" >> ENVIRON["IP_DATA_FILE"];
|
printf "}\n}\n" >> ENVIRON["IP_DATA_FILE"];
|
||||||
writeFqdnEntries();
|
writeFqdnEntries();
|
||||||
|
|||||||
Reference in New Issue
Block a user