Skip to content

Commit fcb117a

Browse files
committed
2.1.8
* Fixed: First login and password entry for Keenetic router was always incorrect (fixed again) * Fixed: tmp directory for PHP was not added when cloning site * Improved: More universal check for supported OS
1 parent 4d502a4 commit fcb117a

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

local_router.sh

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,26 @@ fi
8989

9090
# Функция для аутентификации
9191
authenticate() {
92-
# 1. Получаем challenge и realm
92+
# Получаем актуальный challenge и realm
9393
curl -s -D "$HEADER_FILE" -o /dev/null -c "$COOKIE_JAR" "http://$ROUTER_IP/auth"
9494
TOKEN=$(awk -F': ' '/X-NDM-Challenge:/ {print $2}' "$HEADER_FILE" | tr -d '\r')
9595
REALM=$(awk -F': ' '/X-NDM-Realm:/ {print $2}' "$HEADER_FILE" | tr -d '\r')
96-
if [ -z "$REALM" ]; then
97-
REALM="Keenetic"
98-
echo "Realm не предоставлен, используем значение по умолчанию: $REALM"
99-
fi
96+
[ -z "$REALM" ] && REALM="Keenetic"
97+
98+
# Обновляем переменные из конфига (очищаем текущие значения)
99+
unset ROUTER_LOGIN MD5_HASH REALM_SAVED
100+
[ -f "$CONFIG_FILE" ] && source "$CONFIG_FILE"
100101

101-
# 2. Проверяем, есть ли логин и хэш именно для этого REALM
102-
. "$CONFIG_FILE"
102+
# Проверяем, что ВСЕ поля есть и md5 соответствует актуальному realm
103103
if [ -z "$ROUTER_LOGIN" ] || [ -z "$MD5_HASH" ] || [ -z "$REALM_SAVED" ] || [ "$REALM_SAVED" != "$REALM" ]; then
104-
request_credentials
104+
echo "Введите логин для роутера (или нажмите Enter для выхода):"
105+
read -r -e ROUTER_LOGIN
106+
[ -z "$ROUTER_LOGIN" ] && exit 1
107+
echo "Введите пароль для роутера:"
108+
read -r -e ROUTER_PASSWORD
109+
echo
105110
MD5_HASH=$(echo -n "$ROUTER_LOGIN:$REALM:$ROUTER_PASSWORD" | openssl md5 | awk '{print $2}')
111+
# Обновляем только при полной информации
106112
sed -i '/^MD5_HASH=/d' "$CONFIG_FILE"
107113
sed -i '/^ROUTER_LOGIN=/d' "$CONFIG_FILE"
108114
sed -i '/^REALM_SAVED=/d' "$CONFIG_FILE"
@@ -111,10 +117,8 @@ authenticate() {
111117
echo "REALM_SAVED=\"$REALM\"" >> "$CONFIG_FILE"
112118
fi
113119

114-
# 3. Считаем sha256(token+md5)
115120
PASSWORD_HASH=$(echo -n "$TOKEN$MD5_HASH" | openssl sha256 | awk '{print $2}')
116121
AUTH_DATA=$(printf '{"login":"%s","password":"%s"}' "$ROUTER_LOGIN" "$PASSWORD_HASH")
117-
118122
response=$(curl -s -o /dev/null -w "%{http_code}" -b "$COOKIE_JAR" -c "$COOKIE_JAR" \
119123
-X POST "http://$ROUTER_IP/auth" \
120124
-H "Content-Type: application/json" \
@@ -132,6 +136,9 @@ authenticate() {
132136
fi
133137
}
134138

139+
140+
141+
135142
add_domain() {
136143
local domain="$1"
137144
local ip_address="$2"

0 commit comments

Comments
 (0)