From 16f1dffe4ca9b3b96d3a1ec8f4274c700dbc0667 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 19 Aug 2010 16:14:07 -0600 Subject: [PATCH] add `ssl-port?' and add missing docs for two other procs --- collects/openssl/mzssl.rkt | 14 +++++++++----- collects/openssl/openssl.scrbl | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/collects/openssl/mzssl.rkt b/collects/openssl/mzssl.rkt index f9f5bd13ed..72d0328ca5 100644 --- a/collects/openssl/mzssl.rkt +++ b/collects/openssl/mzssl.rkt @@ -45,7 +45,9 @@ ssl-listener? ssl-addresses - ssl-abandon-port) + ssl-abandon-port + + ssl-port?) (unsafe!) @@ -938,11 +940,10 @@ (let ([p (ephemeron-value v)]) (values (car p) (cdr p))))) - (define (ssl-addresses p . more) + (define (ssl-addresses p [port-numbers? #f]) (let-values ([(mzssl input?) (lookup 'ssl-addresses "SSL port" p)]) - (apply tcp-addresses - (if input? (mzssl-i mzssl) (mzssl-o mzssl)) - more))) + (tcp-addresses (if input? (mzssl-i mzssl) (mzssl-o mzssl)) + port-numbers?))) (define (ssl-abandon-port p) (let-values ([(mzssl input?) (lookup 'ssl-abandon-port "SSL output port" p)]) @@ -950,6 +951,9 @@ (raise-type-error 'ssl-abandon-port "SSL output port" p)) (set-mzssl-shutdown-on-close?! mzssl #f))) + (define (ssl-port? v) + (and (hash-ref ssl-ports v #f) #t)) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; SSL listen diff --git a/collects/openssl/openssl.scrbl b/collects/openssl/openssl.scrbl index 3a52aa0840..9f69919395 100644 --- a/collects/openssl/openssl.scrbl +++ b/collects/openssl/openssl.scrbl @@ -175,6 +175,24 @@ The @scheme[ssl-accept/enable-break] procedure is analogous to @scheme[tcp-accept/enable-break].} +@defproc[(ssl-abandon-port [in (and/c ssl-port? output-port?)]) void?]{ + +Analogous to @racket[tcp-abandon-port].} + + +@defproc[(ssl-addresses [p ssl-port?][port-numbers? any/c #f]) void?]{ + +Analogous to @racket[tcp-addresses].} + + +@defproc[(ssl-port? [v any/c]) boolean?]{ + +Returns @racket[#t] of @racket[v] is an SSL port produced by +@racket[ssl-connect], @racket[ssl-connect/enable-break], +@racket[ssl-accept], @racket[ssl-accept/enable-break], or +@racket[ports->ssl-ports].} + + @defproc[(ssl-make-server-context (protocol symbol?)) ssl-server-context?]{ @@ -185,6 +203,7 @@ Like @scheme[ssl-make-client-context], but creates a server context.} Returns @scheme[#t] if @scheme[v] is a value produced by @scheme[ssl-make-server-context], @scheme[#f] otherwise.} + @; ---------------------------------------------------------------------- @section{SSL-wrapper Interface}