PublicShow sourcehttp_ssl_plugin.pl -- SSL plugin for HTTP libraries

This module can be loaded next to library(thread_httpd) and library(http_open) to provide secure HTTP (HTTPS) services and client access.

An example secure server using self-signed certificates can be found in the <plbase>/doc/packages/examples/ssl/https.pl, where <plbase> is the SWI-Prolog installation directory.

Source thread_httpd:make_socket_hook(?Port, :OptionsIn, -OptionsOut) is semidet[multifile]
Hook into http_server/2 to create an SSL server if the option ssl(SSLOptions) is provided.
See also
- accept_hook/2 handles the corresponding accept
Source thread_httpd:accept_hook(:Goal, +Options) is semidet[multifile]
Implement the accept for HTTPS connections.
Source thread_httpd:discard_client_hook(+Msg)[multifile]
Handles connections that where accepted during server shutdown.
 http:ssl_server_create_hook(+SSL0, -SSL, +Options) is semidet[multifile]
Extensible predicate that is called once after creating an HTTPS server. If this predicate succeeds, SSL is the context that is used for negotiating new connections. Otherwise, SSL0 is used, which is the context that was created with the given options.
See also
- ssl_context/3 for creating an SSL context
 http:ssl_server_open_client_hook(+SSL0, -SSL, +Options) is semidet[multifile]
Extensible predicate that is called before each connection that the server negotiates with a client. If this predicate succeeds, SSL is the context that is used for the new connection. Otherwise, SSL0 is used, which is the context that was created when launching the server.
See also
- ssl_context/3 for creating an SSL context
Source http:http_protocol_hook(+Scheme, +Parts, +PlainStreamPair, -StreamPair, +Options) is semidet[multifile]
Hook for http_open/3 to connect to an HTTPS (SSL-based HTTP) server.
Source http:http_connection_over_proxy(+Proxy, +Parts, +HostPort, -StreamPair, +OptionsIn, -OptionsOut)[multifile]
Facilitate an HTTPS connection via a proxy using HTTP CONNECT. Note that most proxies will only support this for connecting on port 443