- Implement actual deletion in handleDeleteRecord (was just returning success)
- Implement actual deletion in handleDeleteBinding (was just returning success)
- Add proper ID validation and error handling
- Check rows affected and return 404 if not found
- Add EvictClient method to DHCP Server
- Add /api/dhcp/leases/evict endpoint to force client IP release
- Add 'Evict' button in Web UI for online clients
- Update table layout to include Action column
- Evicted client will be forced to get a new IP on next DHCP request
- Add getServerIP() method to dynamically read Gateway from config
- Update sendOffer, sendACK, sendNAK to use getServerIP()
- This ensures gateway IP updates when config changes via web UI
- Move session storage from in-memory to database
- Add Session model and auto-migrate table
- Set session expiration to 30 days
- Add /api/session/verify endpoint for frontend validation
- Add background session cleanup task (hourly)
- Frontend now verifies session validity on page load
- Clear localStorage when session expires
- 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