TigerVNC / tigervnc

High performance, multi-platform VNC client and server
https://tigervnc.org
GNU General Public License v2.0
5.25k stars 956 forks source link

Split SystemException to handle Windows #1833

Closed CendioOssman closed 1 month ago

CendioOssman commented 2 months ago

Windows has (at least) two error namespaces, both errno and GetLastResult(). These overlap, so it is important we keep track of which one we are dealing with.

To make things extra problematic, the BSD socket API normally uses errno, but on Windows it has been mapped in to the GetLastResult() namespace.

Try to keep better control of this by using separate classes for the namespaces.