3.3.7.3 Server-Side Interface with Management Layer

The SSTP layer on the server-side implementation interfaces with the management layer using the following events:

  • Start SSTP Server: This event is used by the management layer to initialize and start the SSTP server software (see section 3.3.3 for actions performed by the SSTP server during initialization).

  • Stop SSTP Server: This event is used by the management layer to stop the SSTP server software. On receiving this event, the SSTP server will perform cleanup by disconnecting all existing SSTP connections (section 3.3.4), and stop the HTTPS listener that is waiting for SSTP connections on an SSTP–specific URI.

  • Accept New Connection: This event is used by the SSTP layer on the server side to inform its management layer about acceptance of a new HTTPS connection with a valid cookie.<18> This interface is called only if ServerBypassHLAuthConfigured global variable is set to TRUE AND ServerHTTPCookie for the connection entry is not null. Otherwise this interface is not invoked. When calling this interface, the SSTP layer passes ServerHTTPCookie variable for the connection to the management layer. The management layer MUST validate this cookie using its own implementation-specific mechanism. If the management layer finds the cookie as valid (i.e. it trusts the cookie to say it is coming from an authenticated client), the management layer MUST inform SSTP layer to accept the new connection bypassing the higher-layer authentication, and then SSTP layer will set ServerBypassHLAuth variable for this connection as TRUE. If the management layer finds the cookie as invalid, the management layer MUST inform SSTP layer to disconnect the new connection. The SSTP layer MUST close the HTTPS connection and initialize CurrentState variable for this connection entry to Server_Call_Disconnected.