Skip to content

Commit

Permalink
Доработан механизм добавления доменных имен в ipset список AGH
Browse files Browse the repository at this point in the history
  • Loading branch information
qzeleza committed Sep 19, 2023
1 parent ef2ceb5 commit 7a191cb
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
Binary file modified ipk/kvas_1.1.4_all.ipk
Binary file not shown.
6 changes: 3 additions & 3 deletions opt/bin/libs/vpn
Original file line number Diff line number Diff line change
Expand Up @@ -455,8 +455,8 @@ adguardhome_install_locally() {
. /opt/apps/kvas/bin/libs/update
cmd_adguard_update
adguardhome_check_config
ip=$(get_router_ip)
port=$(cat < "${ADGUARDHOME_CONFIG}" | grep '^bind_port: ' | cut -d':' -f2 | tr -d ' \n')
# ip=$(get_router_ip)
# port=$(cat < "${ADGUARDHOME_CONFIG}" | grep '^bind_port: ' | cut -d':' -f2 | tr -d ' \n')
adguardhome_setup
fi
}
Expand Down Expand Up @@ -605,7 +605,7 @@ cmd_bridge_vpn_access_del() {
# ------------------------------------------------------------------------------------------
bridge_access_add() {

guest_bridge_id=${1}; ip=${2}; crypt_port=${3}
guest_bridge_id=${1}; ip=${2};

has_ssr_enable && vpn_type='shadowsocks' || vpn_type='vpn'

Expand Down
19 changes: 11 additions & 8 deletions opt/bin/main/adguard
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,18 @@
app_name="КВАС"
logger -t "${app_name}" "Запущен файл ${0}"

table_name=unblock
adguard_config=/opt/etc/AdGuardHome/AdGuardHome.yaml
adguard_ipset_file=/opt/etc/AdGuardHome/kvas.ipset
host_list=/opt/etc/hosts.list

adguard_ipset_list_update(){
ipset=''; domain='';
domain='';
regex='([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{1,4}'
adguard_config=/opt/etc/AdGuardHome/AdGuardHome.yaml
adguard_ipset_file=/opt/etc/AdGuardHome/kvas.ipset
host_list=/opt/etc/hosts.list

# В случае отсутствия списочного файла создаем его
! [ -f "${host_list}" ] && touch "${host_list}"
! [ -f "${adguard_ipset_file}" ] && touch "${adguard_ipset_file}"

# В случае наличия списочного файла читаем из него строки
while read -r line || [ -n "${line}" ]; do
Expand All @@ -43,19 +46,19 @@ adguard_ipset_list_update(){
# в случае если это не IP -пропускаем строку
echo "${line}" | grep -Eq "${regex}" && continue
# формируем строку для блока ipset
host=" - $(echo "${line}" | sed 's/\*//;')/unblock"
host="$(echo "${line}" | sed 's/\*//;')/${table_name}"
# Проверяем наличие сформированной строки на наличие ее файле ipset конфигурации adguard_ipset_file
grep -q "${host}" "${adguard_ipset_file}" && continue
# формируем буфер из строк для ipset
# формирyем буфер из строк для ipset
[ -n "${domain}" ] && domain="${domain}\n${host}" || domain="${host}"

done < "${host_list}"

# в случае наличия данных в переменной domain меняем ее файле.
if [ -n "${domain}" ]; then
# Добаявляем данные ipset блока в отдельный файл и его имя вписываем
# Добавляем данные ipset блока в отдельный файл и его имя вписываем
# в переменную ipset_file в файле adguard_config
echo "${domain}" >> "${adguard_ipset_file}"
echo "${domain}\n" >> "${adguard_ipset_file}"
adguard_ipset_file=$(echo "${adguard_ipset_file}" | sed 's/\//\\\//g')
sed -i 's/ipset_file.*/ipset_file: "'"${adguard_ipset_file}"'"/g' "${adguard_config}"
fi
Expand Down

0 comments on commit 7a191cb

Please sign in to comment.