- swi-prolog
- library
- filesex.pl -- Extended operations on files
- apply.pl
- error.pl -- Error generating support
- shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
- lists.pl
- pairs.pl
- doc_http.pl -- Documentation server
- pldoc.pl -- Process source documentation
- memfile.pl
- operators.pl -- Manage operators
- debug.pl -- Print debug messages and test assertions
- option.pl -- Option list processing
- prolog_source.pl -- Examine Prolog source-files
- socket.pl -- Network socket (TCP and UDP) library
- thread_pool.pl -- Resource bounded thread management
- rbtrees.pl -- Red black trees
- gensym.pl -- Generate unique symbols
- readutil.pl -- Read utilities
- url.pl -- Analysing and constructing URL
- utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
- uri.pl -- Process URIs
- settings.pl -- Setting management
- broadcast.pl -- Event service
- arithmetic.pl -- Extensible arithmetic
- sgml.pl -- SGML, XML and HTML parser
- iostream.pl -- Utilities to deal with streams
- dialect.pl -- Support multiple Prolog dialects
- quasi_quotations.pl -- Define Quasi Quotation syntax
- pure_input.pl -- Pure Input from files and streams
- time.pl -- Time and alarm library
- base64.pl -- Base64 encoding and decoding
- aggregate.pl -- Aggregation operators on backtrackable predicates
- ordsets.pl -- Ordered set manipulation
- oset.pl -- Ordered set manipulation
- www_browser.pl -- Open a URL in the users browser
- process.pl -- Create processes and redirect I/O
- prolog_colour.pl -- Prolog syntax colouring support.
- prolog_xref.pl -- Prolog cross-referencer data collection
- predicate_options.pl -- Access and analyse predicate options
- prolog_clause.pl -- Get detailed source-information about a clause
- occurs.pl -- Finding and counting sub-terms
- listing.pl -- List programs and pretty print clauses
- record.pl -- Access compound arguments by name
- assoc.pl -- Binary associations
- ugraphs.pl -- Graph manipulation library
- xpath.pl -- Select nodes in an XML DOM
- prolog_pack.pl -- A package manager for Prolog
- archive.pl -- Access several archive formats
- rdf.pl
- rdf_parser.pl
- rewrite.pl
- quintus.pl -- Quintus compatibility
- rdf_triple.pl -- Create triples from intermediate representation
- sgml_write.pl -- XML/SGML writer module
- xsdp_types.pl -- XML-Schema primitive types
- thread.pl -- High level thread primitives
- git.pl -- Run GIT commands
- ctypes.pl -- Character code classification
- sha.pl -- SHA secure hashes
- crypt.pl
- persistency.pl -- Provide persistent dynamic predicates
- tty.pl -- Terminal operations
- c14n2.pl -- C14n2 canonical XML documents
- dicts.pl -- Dict utilities
- solution_sequences.pl -- Modify solution sequences
- nb_set.pl -- Non-backtrackable sets
- terms.pl -- Term manipulation
- apply_macros.pl -- Goal expansion rules to avoid meta-calling
- snowball.pl -- The Snowball multi-lingual stemmer library
- sandbox.pl -- Sandboxed Prolog code
- prolog_format.pl -- Analyse format specifications
- when.pl -- Conditional coroutining
- double_metaphone.pl -- Phonetic string matching
- porter_stem.pl
- uuid.pl -- Universally Unique Identifier (UUID) Library
- pcre.pl -- Perl compatible regular expression matching for SWI-Prolog
- backcomp.pl -- Backward compatibility
- system.pl -- System utilities
- rdf_write.pl -- Write RDF/XML from a list of triples
- date.pl -- Process dates and times
- zlib.pl -- Zlib wrapper for SWI-Prolog
- rdf_ntriples.pl -- RDF N-triples parser (obsolete)
- csv.pl -- Process CSV (Comma-Separated Values) data
- dif.pl -- The dif/2 constraint
- ssl.pl -- Secure Socket Layer (SSL) library
- crypto.pl -- Cryptography and authentication library
- ansi_term.pl -- Print decorated text to ANSI consoles
- pengines.pl -- Pengines: Web Logic Programming Made Easy
- charsio.pl -- I/O on Lists of Character Codes
- modules.pl -- Module utility predicates
- term_to_json.pl
- prolog_stack.pl -- Examine the Prolog stack
- statistics.pl -- Get information about resource usage
- editline.pl -- BSD libedit based command line editing
- console_input.pl
- prolog_history.pl -- Per-directory persistent commandline history
- base32.pl -- Base32 encoding and decoding
- library
- ssl_negotiate(+SSL, +PlainRead, +PlainWrite, -SSLRead, -SSLWrite) is det
- Once a connection is established and a read/write stream pair is
available, (PlainRead and PlainWrite), this predicate can be
called to negotiate an SSL session over the streams. If the
negotiation is successful, SSLRead and SSLWrite are returned.
After a successful handshake and finishing the communication the user must close SSLRead and SSLWrite, for example using
call_cleanup(close(SSLWrite), close(SSLRead))
. If the SSL context (created with ssl_context/3 has the optionclose_parent(true)
(defaultfalse
), closing SSLRead and SSLWrite also closes the original PlainRead and PlainWrite streams. Otherwise these must be closed explicitly by the user.- Errors
- -
ssl_error(Code, LibName, FuncName, Reason)
is raised if the negotiation fails. The streams PlainRead and PlainWrite are not closed, but an unknown amount of data may have been read and written.