- Removed old server configuration files (server.json, server.log, server_config.c, server_config.h).
- Introduced a new configuration file (server.conf) with a more structured format.
- Implemented a configuration parser (config_parser.c) to read and apply settings from server.conf.
- Updated server logic to utilize the new configuration structure.
- Enhanced logging functionality and added rate limiting features.
- Improved error handling and security measures in request processing.
- Added 'log/*' and 'server' to .gitignore to exclude log files and server binary.
- Enhanced README.md with improved structure and additional features.
- Updated server configuration to provide a warning for default server_name and changed default to '127.0.0.1'.
feat: Major server enhancements and build system
- Implemented file caching system with LRU eviction
- Added thread pool for connection handling
- Improved MIME type detection and security headers
- Added rate limiting per IP address
- Enhanced logging system with rotation
- Added proper signal handling and graceful shutdown
- Implemented SSL/TLS support with modern cipher suites
- Added license (MIT) and disclaimer
- Fixed CSS/JS MIME type issues
- Optimized socket configuration
- Added sendfile() optimization
- Improved error handling and memory management
Technical changes:
- Set TCP_NODELAY and optimized socket buffers
- Implemented epoll-based async I/O
- Added file cache with 1MB max file size
- Set 100MB max log file size with rotation
- Added thread pool with 32 max threads
- Implemented rate limiting (100 requests/60s)
- Added proper MIME type detection
- Fixed CSP headers for external resources
- Added comprehensive input sanitization
- Improved SSL context configuration
- Added proper resource cleanup