TsgcHTTPServer › Événements › OnSSLGetHandler
Se déclenche avant la création du gestionnaire SSL afin qu'une instance de gestionnaire personnalisée côté serveur puisse être fournie.
property OnSSLGetHandler: TsgcWSOnSSLGetHandler;
// TsgcWSOnSSLGetHandler = procedure(Sender: TObject; aType: TwsSSLHandler; var aSSLHandler: TIdServerIOHandlerSSLBase) of object
—
OnSSLGetHandler est déclenché juste avant que le serveur ne construise le gestionnaire TLS IOHandler utilisé pour les liaisons SSL. Assignez aSSLHandler à une instance de votre propre classe héritant de TIdServerIOHandlerSSLBase pour remplacer le gestionnaire par défaut, par exemple pour brancher une implémentation OpenSSL ou SChannel spécialisée. Laissez aSSLHandler non assigné pour laisser le serveur créer le gestionnaire par défaut ; dans ce cas, OnSSLAfterCreateHandler peut toujours être utilisé pour ajuster les propriétés après la création. Le composant prend en charge le gestionnaire assigné ici et le libérera lors de la destruction du serveur.
Lorsque IOHandlerOptions.IOHandlerType est iohIOCP ou iohEPOLL, le gestionnaire assigné à aSSLHandler doit hériter de TsgcIdServerIOHandlerOpenSSLIOCP (IOCP) ou TsgcIdServerIOHandlerOpenSSLEPOLL (EPOLL), car seuls ces gestionnaires peuvent être pilotés par le moteur d'entrées/sorties événementiel. Avec tout autre gestionnaire, le serveur lève une exception lors de son démarrage. Les valeurs de IOHandlerOptions, telles que threads, timeouts et TCPKeepAlive, sont appliquées au gestionnaire avant que OnSSLAfterCreateHandler ne se déclenche, de sorte que les valeurs définies dans cet événement sont prioritaires. Si vous avez seulement besoin de modifier quelques propriétés du gestionnaire par défaut, utilisez OnSSLAfterCreateHandler au lieu de remplacer le gestionnaire.
procedure OnSSLGetHandler(Sender: TObject; aType: TwsSSLHandler;
var aSSLHandler: TIdServerIOHandlerSSLBase);
begin
aSSLHandler := TCustomServerSSLHandler.Create(nil);
// ... configure handler properties
end;