diff --git a/MsQuicBindingsVersionOnly.proj b/MsQuicBindingsVersionOnly.proj index 8e913d3..5e014fc 100644 --- a/MsQuicBindingsVersionOnly.proj +++ b/MsQuicBindingsVersionOnly.proj @@ -1 +1 @@ -2.2.2 +2.2.4 diff --git a/StirlingLabs.MsQuic.Bindings/Imported/MsQuicException.cs b/StirlingLabs.MsQuic.Bindings/Imported/MsQuicException.cs index 017e900..0b969bc 100644 --- a/StirlingLabs.MsQuic.Bindings/Imported/MsQuicException.cs +++ b/StirlingLabs.MsQuic.Bindings/Imported/MsQuicException.cs @@ -47,6 +47,7 @@ public static string GetErrorCodeForStatus(int status) else if (status == MsQuic.QUIC_STATUS_USER_CANCELED) return "QUIC_STATUS_USER_CANCELED"; else if (status == MsQuic.QUIC_STATUS_ALPN_NEG_FAILURE) return "QUIC_STATUS_ALPN_NEG_FAILURE"; else if (status == MsQuic.QUIC_STATUS_STREAM_LIMIT_REACHED) return "QUIC_STATUS_STREAM_LIMIT_REACHED"; + else if (status == MsQuic.QUIC_STATUS_ALPN_IN_USE) return "QUIC_STATUS_ALPN_IN_USE"; else if (status == MsQuic.QUIC_STATUS_CLOSE_NOTIFY) return "QUIC_STATUS_CLOSE_NOTIFY"; else if (status == MsQuic.QUIC_STATUS_BAD_CERTIFICATE) return "QUIC_STATUS_BAD_CERTIFICATE"; else if (status == MsQuic.QUIC_STATUS_UNSUPPORTED_CERTIFICATE) return "QUIC_STATUS_UNSUPPORTED_CERTIFICATE"; @@ -57,6 +58,7 @@ public static string GetErrorCodeForStatus(int status) else if (status == MsQuic.QUIC_STATUS_CERT_EXPIRED) return "QUIC_STATUS_CERT_EXPIRED"; else if (status == MsQuic.QUIC_STATUS_CERT_UNTRUSTED_ROOT) return "QUIC_STATUS_CERT_UNTRUSTED_ROOT"; else if (status == MsQuic.QUIC_STATUS_CERT_NO_CERT) return "QUIC_STATUS_CERT_NO_CERT"; + else if (status == MsQuic.QUIC_STATUS_ADDRESS_NOT_AVAILABLE) return "QUIC_STATUS_ADDRESS_NOT_AVAILABLE"; else return "Unknown status"; } diff --git a/StirlingLabs.MsQuic.Bindings/Imported/msquic.cs b/StirlingLabs.MsQuic.Bindings/Imported/msquic.cs index a1b4b57..1f7af5f 100644 --- a/StirlingLabs.MsQuic.Bindings/Imported/msquic.cs +++ b/StirlingLabs.MsQuic.Bindings/Imported/msquic.cs @@ -73,43 +73,45 @@ public static bool StatusFailed(int status) } public static int QUIC_STATUS_SUCCESS => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_SUCCESS : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_SUCCESS : MsQuic_MacOS.QUIC_STATUS_SUCCESS; - public static int QUIC_STATUS_PENDING => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_PENDING : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_PENDING : MsQuic_Linux.QUIC_STATUS_PENDING; - public static int QUIC_STATUS_CONTINUE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CONTINUE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CONTINUE : MsQuic_Linux.QUIC_STATUS_CONTINUE; - public static int QUIC_STATUS_OUT_OF_MEMORY => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_OUT_OF_MEMORY : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_OUT_OF_MEMORY : MsQuic_Linux.QUIC_STATUS_OUT_OF_MEMORY; - public static int QUIC_STATUS_INVALID_PARAMETER => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_INVALID_PARAMETER : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_INVALID_PARAMETER : MsQuic_Linux.QUIC_STATUS_INVALID_PARAMETER; - public static int QUIC_STATUS_INVALID_STATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_INVALID_STATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_INVALID_STATE : MsQuic_Linux.QUIC_STATUS_INVALID_STATE; - public static int QUIC_STATUS_NOT_SUPPORTED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_NOT_SUPPORTED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_NOT_SUPPORTED : MsQuic_Linux.QUIC_STATUS_NOT_SUPPORTED; - public static int QUIC_STATUS_NOT_FOUND => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_NOT_FOUND : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_NOT_FOUND : MsQuic_Linux.QUIC_STATUS_NOT_FOUND; - public static int QUIC_STATUS_BUFFER_TOO_SMALL => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_BUFFER_TOO_SMALL : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_BUFFER_TOO_SMALL : MsQuic_Linux.QUIC_STATUS_BUFFER_TOO_SMALL; - public static int QUIC_STATUS_HANDSHAKE_FAILURE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_HANDSHAKE_FAILURE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_HANDSHAKE_FAILURE : MsQuic_Linux.QUIC_STATUS_HANDSHAKE_FAILURE; - public static int QUIC_STATUS_ABORTED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_ABORTED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_ABORTED : MsQuic_Linux.QUIC_STATUS_ABORTED; - public static int QUIC_STATUS_ADDRESS_IN_USE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_ADDRESS_IN_USE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_ADDRESS_IN_USE : MsQuic_Linux.QUIC_STATUS_ADDRESS_IN_USE; - public static int QUIC_STATUS_INVALID_ADDRESS => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_INVALID_ADDRESS : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_INVALID_ADDRESS : MsQuic_Linux.QUIC_STATUS_INVALID_ADDRESS; - public static int QUIC_STATUS_CONNECTION_TIMEOUT => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CONNECTION_TIMEOUT : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CONNECTION_TIMEOUT : MsQuic_Linux.QUIC_STATUS_CONNECTION_TIMEOUT; - public static int QUIC_STATUS_CONNECTION_IDLE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CONNECTION_IDLE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CONNECTION_IDLE : MsQuic_Linux.QUIC_STATUS_CONNECTION_IDLE; - public static int QUIC_STATUS_UNREACHABLE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_UNREACHABLE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_UNREACHABLE : MsQuic_Linux.QUIC_STATUS_UNREACHABLE; - public static int QUIC_STATUS_INTERNAL_ERROR => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_INTERNAL_ERROR : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_INTERNAL_ERROR : MsQuic_Linux.QUIC_STATUS_INTERNAL_ERROR; - public static int QUIC_STATUS_CONNECTION_REFUSED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CONNECTION_REFUSED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CONNECTION_REFUSED : MsQuic_Linux.QUIC_STATUS_CONNECTION_REFUSED; - public static int QUIC_STATUS_PROTOCOL_ERROR => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_PROTOCOL_ERROR : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_PROTOCOL_ERROR : MsQuic_Linux.QUIC_STATUS_PROTOCOL_ERROR; - public static int QUIC_STATUS_VER_NEG_ERROR => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_VER_NEG_ERROR : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_VER_NEG_ERROR : MsQuic_Linux.QUIC_STATUS_VER_NEG_ERROR; - public static int QUIC_STATUS_TLS_ERROR => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_TLS_ERROR : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_TLS_ERROR : MsQuic_Linux.QUIC_STATUS_TLS_ERROR; - public static int QUIC_STATUS_USER_CANCELED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_USER_CANCELED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_USER_CANCELED : MsQuic_Linux.QUIC_STATUS_USER_CANCELED; - public static int QUIC_STATUS_ALPN_NEG_FAILURE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_ALPN_NEG_FAILURE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_ALPN_NEG_FAILURE : MsQuic_Linux.QUIC_STATUS_ALPN_NEG_FAILURE; - public static int QUIC_STATUS_STREAM_LIMIT_REACHED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_STREAM_LIMIT_REACHED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_STREAM_LIMIT_REACHED : MsQuic_Linux.QUIC_STATUS_STREAM_LIMIT_REACHED; - public static int QUIC_STATUS_CLOSE_NOTIFY => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CLOSE_NOTIFY : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CLOSE_NOTIFY : MsQuic_Linux.QUIC_STATUS_CLOSE_NOTIFY; - public static int QUIC_STATUS_BAD_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_BAD_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_BAD_CERTIFICATE : MsQuic_Linux.QUIC_STATUS_BAD_CERTIFICATE; - public static int QUIC_STATUS_UNSUPPORTED_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_UNSUPPORTED_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_UNSUPPORTED_CERTIFICATE : MsQuic_Linux.QUIC_STATUS_UNSUPPORTED_CERTIFICATE; - public static int QUIC_STATUS_REVOKED_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_REVOKED_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_REVOKED_CERTIFICATE : MsQuic_Linux.QUIC_STATUS_REVOKED_CERTIFICATE; - public static int QUIC_STATUS_EXPIRED_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_EXPIRED_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_EXPIRED_CERTIFICATE : MsQuic_Linux.QUIC_STATUS_EXPIRED_CERTIFICATE; - public static int QUIC_STATUS_UNKNOWN_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_UNKNOWN_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_UNKNOWN_CERTIFICATE : MsQuic_Linux.QUIC_STATUS_UNKNOWN_CERTIFICATE; - public static int QUIC_STATUS_REQUIRED_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_REQUIRED_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_REQUIRED_CERTIFICATE : MsQuic_Linux.QUIC_STATUS_REQUIRED_CERTIFICATE; - public static int QUIC_STATUS_CERT_EXPIRED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CERT_EXPIRED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CERT_EXPIRED : MsQuic_Linux.QUIC_STATUS_CERT_EXPIRED; - public static int QUIC_STATUS_CERT_UNTRUSTED_ROOT => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CERT_UNTRUSTED_ROOT : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CERT_UNTRUSTED_ROOT : MsQuic_Linux.QUIC_STATUS_CERT_UNTRUSTED_ROOT; - public static int QUIC_STATUS_CERT_NO_CERT => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CERT_NO_CERT : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CERT_NO_CERT : MsQuic_Linux.QUIC_STATUS_CERT_NO_CERT; - - public static int QUIC_ADDRESS_FAMILY_UNSPEC => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_ADDRESS_FAMILY_UNSPEC : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_ADDRESS_FAMILY_UNSPEC : MsQuic_Linux.QUIC_ADDRESS_FAMILY_UNSPEC; - public static int QUIC_ADDRESS_FAMILY_INET => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_ADDRESS_FAMILY_INET : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_ADDRESS_FAMILY_INET : MsQuic_Linux.QUIC_ADDRESS_FAMILY_INET; - public static int QUIC_ADDRESS_FAMILY_INET6 => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_ADDRESS_FAMILY_INET6 : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_ADDRESS_FAMILY_INET6 : MsQuic_Linux.QUIC_ADDRESS_FAMILY_INET6; + public static int QUIC_STATUS_PENDING => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_PENDING : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_PENDING : MsQuic_MacOS.QUIC_STATUS_PENDING; + public static int QUIC_STATUS_CONTINUE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CONTINUE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CONTINUE : MsQuic_MacOS.QUIC_STATUS_CONTINUE; + public static int QUIC_STATUS_OUT_OF_MEMORY => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_OUT_OF_MEMORY : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_OUT_OF_MEMORY : MsQuic_MacOS.QUIC_STATUS_OUT_OF_MEMORY; + public static int QUIC_STATUS_INVALID_PARAMETER => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_INVALID_PARAMETER : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_INVALID_PARAMETER : MsQuic_MacOS.QUIC_STATUS_INVALID_PARAMETER; + public static int QUIC_STATUS_INVALID_STATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_INVALID_STATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_INVALID_STATE : MsQuic_MacOS.QUIC_STATUS_INVALID_STATE; + public static int QUIC_STATUS_NOT_SUPPORTED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_NOT_SUPPORTED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_NOT_SUPPORTED : MsQuic_MacOS.QUIC_STATUS_NOT_SUPPORTED; + public static int QUIC_STATUS_NOT_FOUND => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_NOT_FOUND : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_NOT_FOUND : MsQuic_MacOS.QUIC_STATUS_NOT_FOUND; + public static int QUIC_STATUS_BUFFER_TOO_SMALL => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_BUFFER_TOO_SMALL : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_BUFFER_TOO_SMALL : MsQuic_MacOS.QUIC_STATUS_BUFFER_TOO_SMALL; + public static int QUIC_STATUS_HANDSHAKE_FAILURE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_HANDSHAKE_FAILURE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_HANDSHAKE_FAILURE : MsQuic_MacOS.QUIC_STATUS_HANDSHAKE_FAILURE; + public static int QUIC_STATUS_ABORTED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_ABORTED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_ABORTED : MsQuic_MacOS.QUIC_STATUS_ABORTED; + public static int QUIC_STATUS_ADDRESS_IN_USE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_ADDRESS_IN_USE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_ADDRESS_IN_USE : MsQuic_MacOS.QUIC_STATUS_ADDRESS_IN_USE; + public static int QUIC_STATUS_INVALID_ADDRESS => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_INVALID_ADDRESS : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_INVALID_ADDRESS : MsQuic_MacOS.QUIC_STATUS_INVALID_ADDRESS; + public static int QUIC_STATUS_CONNECTION_TIMEOUT => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CONNECTION_TIMEOUT : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CONNECTION_TIMEOUT : MsQuic_MacOS.QUIC_STATUS_CONNECTION_TIMEOUT; + public static int QUIC_STATUS_CONNECTION_IDLE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CONNECTION_IDLE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CONNECTION_IDLE : MsQuic_MacOS.QUIC_STATUS_CONNECTION_IDLE; + public static int QUIC_STATUS_UNREACHABLE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_UNREACHABLE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_UNREACHABLE : MsQuic_MacOS.QUIC_STATUS_UNREACHABLE; + public static int QUIC_STATUS_INTERNAL_ERROR => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_INTERNAL_ERROR : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_INTERNAL_ERROR : MsQuic_MacOS.QUIC_STATUS_INTERNAL_ERROR; + public static int QUIC_STATUS_CONNECTION_REFUSED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CONNECTION_REFUSED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CONNECTION_REFUSED : MsQuic_MacOS.QUIC_STATUS_CONNECTION_REFUSED; + public static int QUIC_STATUS_PROTOCOL_ERROR => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_PROTOCOL_ERROR : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_PROTOCOL_ERROR : MsQuic_MacOS.QUIC_STATUS_PROTOCOL_ERROR; + public static int QUIC_STATUS_VER_NEG_ERROR => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_VER_NEG_ERROR : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_VER_NEG_ERROR : MsQuic_MacOS.QUIC_STATUS_VER_NEG_ERROR; + public static int QUIC_STATUS_TLS_ERROR => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_TLS_ERROR : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_TLS_ERROR : MsQuic_MacOS.QUIC_STATUS_TLS_ERROR; + public static int QUIC_STATUS_USER_CANCELED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_USER_CANCELED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_USER_CANCELED : MsQuic_MacOS.QUIC_STATUS_USER_CANCELED; + public static int QUIC_STATUS_ALPN_NEG_FAILURE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_ALPN_NEG_FAILURE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_ALPN_NEG_FAILURE : MsQuic_MacOS.QUIC_STATUS_ALPN_NEG_FAILURE; + public static int QUIC_STATUS_STREAM_LIMIT_REACHED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_STREAM_LIMIT_REACHED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_STREAM_LIMIT_REACHED : MsQuic_MacOS.QUIC_STATUS_STREAM_LIMIT_REACHED; + public static int QUIC_STATUS_ALPN_IN_USE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_ALPN_IN_USE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_ALPN_IN_USE : MsQuic_MacOS.QUIC_STATUS_ALPN_IN_USE; + public static int QUIC_STATUS_CLOSE_NOTIFY => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CLOSE_NOTIFY : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CLOSE_NOTIFY : MsQuic_MacOS.QUIC_STATUS_CLOSE_NOTIFY; + public static int QUIC_STATUS_BAD_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_BAD_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_BAD_CERTIFICATE : MsQuic_MacOS.QUIC_STATUS_BAD_CERTIFICATE; + public static int QUIC_STATUS_UNSUPPORTED_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_UNSUPPORTED_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_UNSUPPORTED_CERTIFICATE : MsQuic_MacOS.QUIC_STATUS_UNSUPPORTED_CERTIFICATE; + public static int QUIC_STATUS_REVOKED_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_REVOKED_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_REVOKED_CERTIFICATE : MsQuic_MacOS.QUIC_STATUS_REVOKED_CERTIFICATE; + public static int QUIC_STATUS_EXPIRED_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_EXPIRED_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_EXPIRED_CERTIFICATE : MsQuic_MacOS.QUIC_STATUS_EXPIRED_CERTIFICATE; + public static int QUIC_STATUS_UNKNOWN_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_UNKNOWN_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_UNKNOWN_CERTIFICATE : MsQuic_MacOS.QUIC_STATUS_UNKNOWN_CERTIFICATE; + public static int QUIC_STATUS_REQUIRED_CERTIFICATE => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_REQUIRED_CERTIFICATE : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_REQUIRED_CERTIFICATE : MsQuic_MacOS.QUIC_STATUS_REQUIRED_CERTIFICATE; + public static int QUIC_STATUS_CERT_EXPIRED => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CERT_EXPIRED : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CERT_EXPIRED : MsQuic_MacOS.QUIC_STATUS_CERT_EXPIRED; + public static int QUIC_STATUS_CERT_UNTRUSTED_ROOT => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CERT_UNTRUSTED_ROOT : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CERT_UNTRUSTED_ROOT : MsQuic_MacOS.QUIC_STATUS_CERT_UNTRUSTED_ROOT; + public static int QUIC_STATUS_CERT_NO_CERT => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_STATUS_CERT_NO_CERT : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_STATUS_CERT_NO_CERT : MsQuic_MacOS.QUIC_STATUS_CERT_NO_CERT; + + public static int QUIC_ADDRESS_FAMILY_UNSPEC => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_ADDRESS_FAMILY_UNSPEC : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_ADDRESS_FAMILY_UNSPEC : MsQuic_MacOS.QUIC_ADDRESS_FAMILY_UNSPEC; + public static int QUIC_ADDRESS_FAMILY_INET => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_ADDRESS_FAMILY_INET : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_ADDRESS_FAMILY_INET : MsQuic_MacOS.QUIC_ADDRESS_FAMILY_INET; + public static int QUIC_ADDRESS_FAMILY_INET6 => OperatingSystem.IsWindows() ? MsQuic_Windows.QUIC_ADDRESS_FAMILY_INET6 : (OperatingSystem.IsLinux() || OperatingSystem.IsAndroid()) ? MsQuic_Linux.QUIC_ADDRESS_FAMILY_INET6 : MsQuic_MacOS.QUIC_ADDRESS_FAMILY_INET6; + public static int QUIC_STATUS_ADDRESS_NOT_AVAILABLE => OperatingSystem.IsLinux() ? MsQuic_Linux.QUIC_STATUS_ADDRESS_NOT_AVAILABLE : OperatingSystem.IsMacOS() ? MsQuic_MacOS.QUIC_STATUS_ADDRESS_NOT_AVAILABLE : MsQuic_Linux.QUIC_STATUS_ADDRESS_NOT_AVAILABLE; } /// Defines the type of a member as it was used in the native signature. diff --git a/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated.cs b/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated.cs index c847d5f..7ca1f97 100644 --- a/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated.cs +++ b/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated.cs @@ -45,6 +45,25 @@ public enum QUIC_LOAD_BALANCING_MODE COUNT, } + public enum QUIC_TLS_ALERT_CODES + { + SUCCESS = 0xFFFF, + UNEXPECTED_MESSAGE = 10, + BAD_CERTIFICATE = 42, + UNSUPPORTED_CERTIFICATE = 43, + CERTIFICATE_REVOKED = 44, + CERTIFICATE_EXPIRED = 45, + CERTIFICATE_UNKNOWN = 46, + ILLEGAL_PARAMETER = 47, + UNKNOWN_CA = 48, + ACCESS_DENIED = 49, + INSUFFICIENT_SECURITY = 71, + INTERNAL_ERROR = 80, + USER_CANCELED = 90, + CERTIFICATE_REQUIRED = 116, + MAX = 255, + } + public enum QUIC_CREDENTIAL_TYPE { NONE, @@ -80,6 +99,7 @@ public enum QUIC_CREDENTIAL_FLAGS CACHE_ONLY_URL_RETRIEVAL = 0x00020000, REVOCATION_CHECK_CACHE_ONLY = 0x00040000, INPROC_PEER_CERTIFICATE = 0x00080000, + SET_CA_CERTIFICATE_FILE = 0x00100000, } [System.Flags] @@ -132,6 +152,7 @@ public enum QUIC_STREAM_OPEN_FLAGS NONE = 0x0000, UNIDIRECTIONAL = 0x0001, ZERO_RTT = 0x0002, + DELAY_ID_FC_UPDATES = 0x0004, } [System.Flags] @@ -186,6 +207,28 @@ public enum QUIC_DATAGRAM_SEND_STATE CANCELED, } + [System.Flags] + public enum QUIC_EXECUTION_CONFIG_FLAGS + { + NONE = 0x0000, + QTIP = 0x0001, + RIO = 0x0002, + } + + public unsafe partial struct QUIC_EXECUTION_CONFIG + { + public QUIC_EXECUTION_CONFIG_FLAGS Flags; + + [NativeTypeName("uint32_t")] + public uint PollingIdleTimeoutUs; + + [NativeTypeName("uint32_t")] + public uint ProcessorCount; + + [NativeTypeName("uint16_t [1]")] + public fixed ushort ProcessorList[1]; + } + public unsafe partial struct QUIC_REGISTRATION_CONFIG { [NativeTypeName("const char *")] @@ -263,6 +306,9 @@ public unsafe partial struct QUIC_CREDENTIAL_CONFIG public QUIC_ALLOWED_CIPHER_SUITE_FLAGS AllowedCipherSuites; + [NativeTypeName("const char *")] + public sbyte* CaCertificateFile; + public ref QUIC_CERTIFICATE_HASH* CertificateHash { get @@ -428,6 +474,7 @@ public enum QUIC_CIPHER_SUITE public enum QUIC_CONGESTION_CONTROL_ALGORITHM { CUBIC, + BBR, MAX, } @@ -691,6 +738,48 @@ public uint ResumptionSucceeded } } + [NativeTypeName("uint32_t : 1")] + public uint GreaseBitNegotiated + { + get + { + return (_bitfield >> 4) & 0x1u; + } + + set + { + _bitfield = (_bitfield & ~(0x1u << 4)) | ((value & 0x1u) << 4); + } + } + + [NativeTypeName("uint32_t : 1")] + public uint EcnCapable + { + get + { + return (_bitfield >> 5) & 0x1u; + } + + set + { + _bitfield = (_bitfield & ~(0x1u << 5)) | ((value & 0x1u) << 5); + } + } + + [NativeTypeName("uint32_t : 26")] + public uint RESERVED + { + get + { + return (_bitfield >> 6) & 0x3FFFFFFu; + } + + set + { + _bitfield = (_bitfield & ~(0x3FFFFFFu << 6)) | ((value & 0x3FFFFFFu) << 6); + } + } + [NativeTypeName("uint32_t")] public uint Rtt; @@ -777,6 +866,9 @@ public uint ResumptionSucceeded [NativeTypeName("uint32_t")] public uint DestCidUpdateCount; + + [NativeTypeName("uint32_t")] + public uint SendEcnCongestionCount; } public partial struct QUIC_LISTENER_STATISTICS @@ -955,7 +1047,7 @@ public ulong RESERVED public partial struct QUIC_SETTINGS { [NativeTypeName("QUIC_SETTINGS::(anonymous union)")] - public _Anonymous_e__Union Anonymous; + public _Anonymous1_e__Union Anonymous1; [NativeTypeName("uint64_t")] public ulong MaxBytesPerKey; @@ -1101,17 +1193,31 @@ public byte ServerResumptionLevel } } - [NativeTypeName("uint8_t : 2")] - public byte RESERVED + [NativeTypeName("uint8_t : 1")] + public byte GreaseQuicBitEnabled { get { - return (byte)((_bitfield >> 6) & 0x3u); + return (byte)((_bitfield >> 6) & 0x1u); } set { - _bitfield = (byte)((_bitfield & ~(0x3u << 6)) | ((value & 0x3u) << 6)); + _bitfield = (byte)((_bitfield & ~(0x1u << 6)) | ((value & 0x1u) << 6)); + } + } + + [NativeTypeName("uint8_t : 1")] + public byte EcnEnabled + { + get + { + return (byte)((_bitfield >> 7) & 0x1u); + } + + set + { + _bitfield = (byte)((_bitfield & ~(0x1u << 7)) | ((value & 0x1u) << 7)); } } @@ -1124,24 +1230,61 @@ public byte RESERVED [NativeTypeName("uint32_t")] public uint DestCidUpdateIdleTimeoutMs; + [NativeTypeName("QUIC_SETTINGS::(anonymous union)")] + public _Anonymous2_e__Union Anonymous2; + public ref ulong IsSetFlags { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.IsSetFlags, 1)); + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous1.IsSetFlags, 1)); } } - public ref _Anonymous_e__Union._IsSet_e__Struct IsSet + public ref _Anonymous1_e__Union._IsSet_e__Struct IsSet { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.IsSet, 1)); + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous1.IsSet, 1)); + } + } + + public ref ulong Flags + { + get + { + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous2.Flags, 1)); + } + } + + public ulong HyStartEnabled + { + get + { + return Anonymous2.Anonymous.HyStartEnabled; + } + + set + { + Anonymous2.Anonymous.HyStartEnabled = value; + } + } + + public ulong ReservedFlags + { + get + { + return Anonymous2.Anonymous.ReservedFlags; + } + + set + { + Anonymous2.Anonymous.ReservedFlags = value; } } [StructLayout(LayoutKind.Explicit)] - public partial struct _Anonymous_e__Union + public partial struct _Anonymous1_e__Union { [FieldOffset(0)] [NativeTypeName("uint64_t")] @@ -1603,17 +1746,104 @@ public ulong DestCidUpdateIdleTimeoutMs } } - [NativeTypeName("uint64_t : 32")] + [NativeTypeName("uint64_t : 1")] + public ulong GreaseQuicBitEnabled + { + get + { + return (_bitfield >> 32) & 0x1UL; + } + + set + { + _bitfield = (_bitfield & ~(0x1UL << 32)) | ((value & 0x1UL) << 32); + } + } + + [NativeTypeName("uint64_t : 1")] + public ulong EcnEnabled + { + get + { + return (_bitfield >> 33) & 0x1UL; + } + + set + { + _bitfield = (_bitfield & ~(0x1UL << 33)) | ((value & 0x1UL) << 33); + } + } + + [NativeTypeName("uint64_t : 1")] + public ulong HyStartEnabled + { + get + { + return (_bitfield >> 34) & 0x1UL; + } + + set + { + _bitfield = (_bitfield & ~(0x1UL << 34)) | ((value & 0x1UL) << 34); + } + } + + [NativeTypeName("uint64_t : 29")] public ulong RESERVED { get { - return (_bitfield >> 32) & 0x0UL; + return (_bitfield >> 35) & 0x1FFFFFFFUL; } set { - _bitfield = (_bitfield & ~(0x0UL << 32)) | ((value & 0x0UL) << 32); + _bitfield = (_bitfield & ~(0x1FFFFFFFUL << 35)) | ((value & 0x1FFFFFFFUL) << 35); + } + } + } + } + + [StructLayout(LayoutKind.Explicit)] + public partial struct _Anonymous2_e__Union + { + [FieldOffset(0)] + [NativeTypeName("uint64_t")] + public ulong Flags; + + [FieldOffset(0)] + [NativeTypeName("QUIC_SETTINGS::(anonymous struct)")] + public _Anonymous_e__Struct Anonymous; + + public partial struct _Anonymous_e__Struct + { + public ulong _bitfield; + + [NativeTypeName("uint64_t : 1")] + public ulong HyStartEnabled + { + get + { + return _bitfield & 0x1UL; + } + + set + { + _bitfield = (_bitfield & ~0x1UL) | (value & 0x1UL); + } + } + + [NativeTypeName("uint64_t : 63")] + public ulong ReservedFlags + { + get + { + return (_bitfield >> 1) & 0x7FFFFFFFUL; + } + + set + { + _bitfield = (_bitfield & ~(0x7FFFFFFFUL << 1)) | ((value & 0x7FFFFFFFUL) << 1); } } } @@ -1968,6 +2198,14 @@ public ref _Anonymous_e__Union._STREAMS_AVAILABLE_e__Struct STREAMS_AVAILABLE } } + public ref _Anonymous_e__Union._PEER_NEEDS_STREAMS_e__Struct PEER_NEEDS_STREAMS + { + get + { + return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.PEER_NEEDS_STREAMS, 1)); + } + } + public ref _Anonymous_e__Union._IDEAL_PROCESSOR_CHANGED_e__Struct IDEAL_PROCESSOR_CHANGED { get @@ -2059,6 +2297,10 @@ public partial struct _Anonymous_e__Union [NativeTypeName("struct (anonymous struct)")] public _STREAMS_AVAILABLE_e__Struct STREAMS_AVAILABLE; + [FieldOffset(0)] + [NativeTypeName("struct (anonymous struct)")] + public _PEER_NEEDS_STREAMS_e__Struct PEER_NEEDS_STREAMS; + [FieldOffset(0)] [NativeTypeName("struct (anonymous struct)")] public _IDEAL_PROCESSOR_CHANGED_e__Struct IDEAL_PROCESSOR_CHANGED; @@ -2190,6 +2432,12 @@ public partial struct _STREAMS_AVAILABLE_e__Struct public ushort UnidirectionalCount; } + public partial struct _PEER_NEEDS_STREAMS_e__Struct + { + [NativeTypeName("BOOLEAN")] + public byte Bidirectional; + } + public partial struct _IDEAL_PROCESSOR_CHANGED_e__Struct { [NativeTypeName("uint16_t")] @@ -2623,6 +2871,12 @@ public unsafe partial struct QUIC_API_TABLE [NativeTypeName("QUIC_DATAGRAM_SEND_FN")] public delegate* unmanaged[Cdecl] DatagramSend; + + [NativeTypeName("QUIC_CONNECTION_COMP_RESUMPTION_FN")] + public delegate* unmanaged[Cdecl] ConnectionResumptionTicketValidationComplete; + + [NativeTypeName("QUIC_CONNECTION_COMP_CERT_FN")] + public delegate* unmanaged[Cdecl] ConnectionCertificateValidationComplete; } public static unsafe partial class MsQuic @@ -2643,6 +2897,9 @@ public static unsafe partial class MsQuic [NativeTypeName("#define QUIC_MAX_RESUMPTION_APP_DATA_LENGTH 1000")] public const uint QUIC_MAX_RESUMPTION_APP_DATA_LENGTH = 1000; + [NativeTypeName("#define QUIC_EXECUTION_CONFIG_MIN_SIZE (uint32_t)FIELD_OFFSET(QUIC_EXECUTION_CONFIG, ProcessorList)")] + public static readonly uint QUIC_EXECUTION_CONFIG_MIN_SIZE = unchecked((uint)((int)(Marshal.OffsetOf("ProcessorList")))); + [NativeTypeName("#define QUIC_MAX_TICKET_KEY_COUNT 16")] public const uint QUIC_MAX_TICKET_KEY_COUNT = 16; @@ -2700,8 +2957,8 @@ public static unsafe partial class MsQuic [NativeTypeName("#define QUIC_PARAM_GLOBAL_LIBRARY_GIT_HASH 0x01000008")] public const uint QUIC_PARAM_GLOBAL_LIBRARY_GIT_HASH = 0x01000008; - [NativeTypeName("#define QUIC_PARAM_GLOBAL_DATAPATH_PROCESSORS 0x01000009")] - public const uint QUIC_PARAM_GLOBAL_DATAPATH_PROCESSORS = 0x01000009; + [NativeTypeName("#define QUIC_PARAM_GLOBAL_EXECUTION_CONFIG 0x01000009")] + public const uint QUIC_PARAM_GLOBAL_EXECUTION_CONFIG = 0x01000009; [NativeTypeName("#define QUIC_PARAM_GLOBAL_TLS_PROVIDER 0x0100000A")] public const uint QUIC_PARAM_GLOBAL_TLS_PROVIDER = 0x0100000A; diff --git a/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_linux.cs b/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_linux.cs index 8f2e5fe..d0147c0 100644 --- a/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_linux.cs +++ b/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_linux.cs @@ -82,6 +82,9 @@ public static unsafe partial class MsQuic_Linux [NativeTypeName("#define QUIC_STATUS_STREAM_LIMIT_REACHED ((QUIC_STATUS)ESTRPIPE)")] public const int QUIC_STATUS_STREAM_LIMIT_REACHED = ((int)(86)); + [NativeTypeName("#define QUIC_STATUS_ALPN_IN_USE ((QUIC_STATUS)EPROTOTYPE)")] + public const int QUIC_STATUS_ALPN_IN_USE = unchecked((int)(91)); + [NativeTypeName("#define QUIC_STATUS_CLOSE_NOTIFY QUIC_STATUS_TLS_ALERT(0)")] public const int QUIC_STATUS_CLOSE_NOTIFY = ((int)(0xff & 0) + 256 + 200000000); @@ -112,6 +115,9 @@ public static unsafe partial class MsQuic_Linux [NativeTypeName("#define QUIC_STATUS_CERT_NO_CERT QUIC_STATUS_CERT_ERROR(3)")] public const int QUIC_STATUS_CERT_NO_CERT = ((int)(3) + 512 + 200000000); + [NativeTypeName("#define QUIC_STATUS_ADDRESS_NOT_AVAILABLE ((QUIC_STATUS)EADDRNOTAVAIL)")] + public const int QUIC_STATUS_ADDRESS_NOT_AVAILABLE = ((int)(0x63)); + public const int QUIC_ADDRESS_FAMILY_UNSPEC = 0; public const int QUIC_ADDRESS_FAMILY_INET = 2; public const int QUIC_ADDRESS_FAMILY_INET6 = 10; diff --git a/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_macos.cs b/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_macos.cs index 963276c..0d04f20 100644 --- a/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_macos.cs +++ b/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_macos.cs @@ -82,6 +82,9 @@ public static unsafe partial class MsQuic_MacOS [NativeTypeName("#define QUIC_STATUS_STREAM_LIMIT_REACHED ((QUIC_STATUS)ESTRPIPE)")] public const int QUIC_STATUS_STREAM_LIMIT_REACHED = ((int)(86)); + [NativeTypeName("#define QUIC_STATUS_ALPN_IN_USE ((QUIC_STATUS)EPROTOTYPE)")] + public const int QUIC_STATUS_ALPN_IN_USE = unchecked((int)(41)); + [NativeTypeName("#define QUIC_STATUS_CLOSE_NOTIFY QUIC_STATUS_TLS_ALERT(0)")] public const int QUIC_STATUS_CLOSE_NOTIFY = ((int)(0xff & 0) + 256 + 200000000); @@ -112,6 +115,9 @@ public static unsafe partial class MsQuic_MacOS [NativeTypeName("#define QUIC_STATUS_CERT_NO_CERT QUIC_STATUS_CERT_ERROR(3)")] public const int QUIC_STATUS_CERT_NO_CERT = ((int)(3) + 512 + 200000000); + [NativeTypeName("#define QUIC_STATUS_ADDRESS_NOT_AVAILABLE ((QUIC_STATUS)EADDRNOTAVAIL)")] + public const int QUIC_STATUS_ADDRESS_NOT_AVAILABLE = ((int)(0x31)); + public const int QUIC_ADDRESS_FAMILY_UNSPEC = 0; public const int QUIC_ADDRESS_FAMILY_INET = 2; public const int QUIC_ADDRESS_FAMILY_INET6 = 30; diff --git a/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_windows.cs b/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_windows.cs index ee3a896..91771fa 100644 --- a/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_windows.cs +++ b/StirlingLabs.MsQuic.Bindings/Imported/msquic_generated_windows.cs @@ -82,6 +82,9 @@ public static partial class MsQuic_Windows [NativeTypeName("#define QUIC_STATUS_STREAM_LIMIT_REACHED ERROR_QUIC_STREAM_LIMIT_REACHED")] public const int QUIC_STATUS_STREAM_LIMIT_REACHED = unchecked((int)(0x80410008)); + [NativeTypeName("#define QUIC_STATUS_ALPN_IN_USE ERROR_QUIC_ALPN_IN_USE")] + public const int QUIC_STATUS_ALPN_IN_USE = unchecked((int)(0x80410009L)); + [NativeTypeName("#define QUIC_STATUS_CLOSE_NOTIFY QUIC_STATUS_TLS_ALERT(0)")] public const int QUIC_STATUS_CLOSE_NOTIFY = unchecked(((int)(0x80410100)) | (0xff & 0)); diff --git a/StirlingLabs.MsQuic.Bindings/Imported/msquic_polyfill.cs b/StirlingLabs.MsQuic.Bindings/Imported/msquic_polyfill.cs index e3b5b02..3baebeb 100644 --- a/StirlingLabs.MsQuic.Bindings/Imported/msquic_polyfill.cs +++ b/StirlingLabs.MsQuic.Bindings/Imported/msquic_polyfill.cs @@ -79,7 +79,7 @@ public static unsafe Span CreateSpan(ref T reference, int length) { public unsafe delegate int MsQuicConnectionCallbackDelegate(QUIC_HANDLE* Handle, void* Context, QUIC_CONNECTION_EVENT* Event); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public unsafe delegate int MsQuicStreamCallbackDelegate(QUIC_HANDLE* Handle, void* Context, QUIC_CONNECTION_EVENT* Event); + public unsafe delegate int MsQuicStreamCallbackDelegate(QUIC_HANDLE* Handle, void* Context, QUIC_STREAM_EVENT* Event); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public unsafe delegate int MsQuicListenerCallbackDelegate(QUIC_HANDLE* Handle, void* Context, QUIC_LISTENER_EVENT* Event);