File: BackEnd\HandshakeStatus.cs
Web Access
Project: ..\..\..\src\Framework\Microsoft.Build.Framework.csproj (Microsoft.Build.Framework)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace Microsoft.Build.Internal;
 
/// <summary>
///  Status codes for the handshake process.
///  It aggregates return values across several functions so we use an aggregate instead of a separate class for each method.
/// </summary>
internal enum HandshakeStatus
{
    /// <summary>
    ///  The handshake operation completed successfully.
    /// </summary>
    Success = 0,
 
    /// <summary>
    ///  The other node returned a different value than expected.
    ///  This can happen either by attempting to connect to a wrong node type 
    ///  (e.g., transient TaskHost trying to connect to a long-running TaskHost)
    ///  or by trying to connect to a node that has a different MSBuild version.
    /// </summary>
    VersionMismatch = 1,
 
    /// <summary>
    ///  The handshake was aborted due to connection from an old MSBuild version.
    ///  Occurs in TryReadInt when detecting legacy MSBuild.exe connections.
    /// </summary>
    OldMSBuild = 2,
 
    /// <summary>
    ///  The handshake operation timed out before completion.
    /// </summary>
    Timeout = 3,
 
    /// <summary>
    ///  The stream ended unexpectedly during the handshake operation.
    ///  Indicates an incomplete or corrupted handshake sequence.
    /// </summary>
    UnexpectedEndOfStream = 4,
 
    /// <summary>
    ///  The endianness (byte order) of the communicating nodes does not match.
    ///  Indicates an architecture compatibility issue.
    /// </summary>
    EndiannessMismatch = 5,
 
    /// <summary>
    ///  The handshake status is undefined or uninitialized.
    /// </summary>
    Undefined,
}