3.3.7.2 Server-Side Interface with HTTPS

The SSTP server receives notification of a New HTTPS Connection Received event from the lower layer when a new, incoming HTTPS connection is established. The SSTP server then creates a new entry in a connection table and changes CurrentState from Server_Call_Disconnected to Server_Connect_Request_Pending. It also sets the ServerBypassHLAuth variable inside this entry to FALSE and ServerHTTPCookie as null. If ServerBypassHLAuthConfigured is set to TRUE, the SSTP server reads from the HTTPS layer, stores any HTTP cookie that was passed with the HTTPS connection inside the ServerHTTPCookie variable of this entry in the connection table, and indicates the same to the server management layer by calling the Accept New Connection interface (3.3.7.3).

When the server receives an SSTP data packet (section 2.2.3) from the HTTPS layer, the server MUST:

  • Remove the SSTP data header (see section 2.2.3) and extract the data. The extracted data is the higher-layer payload; that is, the PPP frame.

  • Check the PPP frame type (section 3.1.7) and perform the following steps.

    • If the PPP frame is a control frame, the server checks if CurrentState is set to Server_Call_Connected_Pending or Server_Call_Connected. If the condition is true, the server sends the data to the PPP layer. Else, the server drops the SSTP data packet.

    • If the PPP frame is a data frame, the server checks if CurrentState is set to Server_Call_Connected. If the condition is true, the server sends the data to the PPP layer. Else, the server drops the SSTP data packet.