* Refactor carbon-server service in docker-compose.yml to use pre-built image and remove unnecessary build context and volume mounts
* Enhance performance and security features:
- Update compiler flags for better optimization and security.
- Implement MIME type caching for improved response handling.
- Introduce worker thread pool for efficient connection management.
- Optimize socket settings for low latency and enhanced performance.
- Add support for CPU affinity in worker threads.
- Implement graceful shutdown for worker threads during cleanup.
* Optimize HTTP response handling and increase request limits for improved performance
* Refactor carbon-server service in docker-compose.yml to use pre-built image and remove unnecessary build context and volume mounts
* Enhance performance and security features:
- Update compiler flags for better optimization and security.
- Implement MIME type caching for improved response handling.
- Introduce worker thread pool for efficient connection management.
- Optimize socket settings for low latency and enhanced performance.
- Add support for CPU affinity in worker threads.
- Implement graceful shutdown for worker threads during cleanup.
* Optimize HTTP response handling and increase request limits for improved performance
* Refactor carbon-server service in docker-compose.yml to use pre-built image and remove unnecessary build context and volume mounts
* Enhance performance and security features:
- Update compiler flags for better optimization and security.
- Implement MIME type caching for improved response handling.
- Introduce worker thread pool for efficient connection management.
- Optimize socket settings for low latency and enhanced performance.
- Add support for CPU affinity in worker threads.
- Implement graceful shutdown for worker threads during cleanup.
* Add Dockerfile and docker-compose.yml for containerized setup; create .dockerignore
* Update CI pipeline and Docker configuration for improved build process and health checks
* Add Dockerfile and docker-compose.yml for containerized setup; create .dockerignore
* Update CI pipeline and Docker configuration for improved build process and health checks
- Add NULL checks after malloc() calls in HTTP/HTTPS thread creation
- Add error checking for fcntl() calls to prevent silent failures
- Add integer overflow protection in WebSocket frame handling
- Improve socket option error handling with proper validation
- Add SIZE_MAX check in ws_send_frame to prevent overflow
These fixes address potential crashes and security issues in high-load
scenarios and improve overall robustness of the server.
- Added SSL certificate and key paths to ServerConfig structure.
- Updated init_config function to initialize new SSL paths.
- Formated code for better readability.
- Added max_connections option to server configuration
- Updated Makefile to include performance.c and related headers
- Implemented memory-mapped file caching and buffer pooling for improved performance
- Refactored config parser to handle new configuration options
- Increased maximum request size and optimized file handling
- Added HTTP/2 support in src/http2.c and src/http2.h, including session management, frame handling, and response sending.
- Introduced WebSocket functionality in src/websocket.c and src/websocket.h, covering handshake, frame parsing, and message sending.
- Created a WebSocket test page (www/websocket-test.html) for client-side interaction.
- Removed outdated JavaScript (www/script.js) and CSS (www/style.css) files.
- 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'.