Fix DHCP client unable to get IP and config not persisting
- Fixed verifyAssignment being too strict for new clients - Fixed parseRequestedIP string conversion bug - Fixed response sent to 0.0.0.0 instead of broadcast address - Added SO_BROADCAST support for UDP socket - Fixed session persistence after page refresh (localStorage) - Added in-memory session store for auth middleware - Added config reloader so DHCP server picks up web UI changes dynamically
This commit is contained in:
Executable
+66
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ========================================
|
||||
# API 测试脚本
|
||||
# ========================================
|
||||
|
||||
BASE_URL="http://localhost:8080"
|
||||
SESSION_ID="test-session"
|
||||
|
||||
echo "🧪 DHCP & DNS 管理器 - API 测试"
|
||||
echo "=================================="
|
||||
echo ""
|
||||
|
||||
# 1. 健康检查
|
||||
echo "1. 健康检查..."
|
||||
curl -s "$BASE_URL/api/health" | python3 -m json.tool 2>/dev/null || echo "❌ 健康检查失败"
|
||||
echo ""
|
||||
|
||||
# 2. 登录
|
||||
echo "2. 登录..."
|
||||
LOGIN_RESPONSE=$(curl -s -X POST "$BASE_URL/api/login" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"username":"admin","password":"admin"}')
|
||||
echo "$LOGIN_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "❌ 登录失败"
|
||||
echo ""
|
||||
|
||||
# 3. 获取 DHCP 配置
|
||||
echo "3. 获取 DHCP 配置..."
|
||||
curl -s "$BASE_URL/api/dhcp/config" \
|
||||
-H "X-Session-ID: $SESSION_ID" | python3 -m json.tool 2>/dev/null || echo "❌ 获取 DHCP 配置失败"
|
||||
echo ""
|
||||
|
||||
# 4. 更新 DHCP 配置
|
||||
echo "4. 更新 DHCP 配置..."
|
||||
curl -s -X PUT "$BASE_URL/api/dhcp/config" \
|
||||
-H "X-Session-ID: $SESSION_ID" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"network":"192.168.1.0","gateway":"192.168.1.1"}' | python3 -m json.tool 2>/dev/null || echo "❌ 更新 DHCP 配置失败"
|
||||
echo ""
|
||||
|
||||
# 5. 获取 DNS 配置
|
||||
echo "5. 获取 DNS 配置..."
|
||||
curl -s "$BASE_URL/api/dns/config" \
|
||||
-H "X-Session-ID: $SESSION_ID" | python3 -m json.tool 2>/dev/null || echo "❌ 获取 DNS 配置失败"
|
||||
echo ""
|
||||
|
||||
# 6. 更新 DNS 配置
|
||||
echo "6. 更新 DNS 配置..."
|
||||
curl -s -X PUT "$BASE_URL/api/dns/config" \
|
||||
-H "X-Session-ID: $SESSION_ID" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"listen_port":53,"recursion":true}' | python3 -m json.tool 2>/dev/null || echo "❌ 更新 DNS 配置失败"
|
||||
echo ""
|
||||
|
||||
# 7. 获取完整配置
|
||||
echo "7. 获取完整配置..."
|
||||
curl -s "$BASE_URL/api/config" \
|
||||
-H "X-Session-ID: $SESSION_ID" | python3 -m json.tool 2>/dev/null || echo "❌ 获取完整配置失败"
|
||||
echo ""
|
||||
|
||||
echo "=================================="
|
||||
echo "测试完成!"
|
||||
echo ""
|
||||
echo "💡 如果所有测试都通过,说明 API 工作正常"
|
||||
echo "💡 如果有失败,请检查服务器日志"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user