Major fixes implemented:
1. Added missing system headers (sys/time.h, sys/ioctl.h) for gettimeofday and ioctl
2. Resolved ODBC type conflicts by conditionally defining TCHAR and using compatible DWORD type
3. Added comprehensive Windows socket function mappings for Linux (WSAStartup, WSACleanup, etc.)
4. Fixed ListenSocket constructor to match expected interface with IsOpen() method
5. Fixed string_format parameter binding issue in LoginSession.cpp
6. Added platform-specific implementations in SocketMgr.cpp for Linux compatibility
7. Enhanced SocketOpsLinux.cpp with missing socket operations
Key improvements:
- Cross-platform socket initialization and cleanup
- Linux epoll-based socket management
- Compatible type definitions that work with both Linux and Windows ODBC
- Proper handling of temporary string objects in function calls
- Comprehensive error handling for missing Windows APIs on Linux
This should resolve the major compilation errors while maintaining Windows compatibility.
Major fixes for Linux compatibility:
- Added comprehensive Linux socket type definitions to stdafx.h
- Created SocketOpsLinux.cpp with Linux socket operations implementation
- Added ListenSocketLinux.h with epoll-based socket listening
- Updated Network.h to conditionally include platform-specific headers
- Modified SocketDefines.h to support both Windows OVERLAPPED and Linux equivalents
- Updated CMakeLists.txt to use correct platform-specific source files
- Added additional socket constants and error code mappings for Linux
These changes address the compilation errors related to:
- Missing SOCKET, HANDLE, OVERLAPPED type definitions
- Windows-specific socket functions (WSASocket, closesocket, etc.)
- Platform-specific listen socket implementations
- Socket operations and error handling
The LoginServer should now compile successfully on Linux while maintaining Windows compatibility.
- Updated main.cpp with platform-specific code for Windows/Linux
- Modified stdafx.h to include Linux headers and definitions
- Updated signal_handler.cpp for cross-platform signal handling
- Added Linux-compatible types and macros
- Created CMakeLists.txt for Linux build system
- Added build.sh script for automated building
- Added loginserver.sh script for server management
- Created comprehensive README_LINUX.md with deployment instructions
- All changes maintain Windows compatibility using preprocessor directives