openssl: repairs related to listen on port number 0
Allow 0 as the port number in `ssl-listen`, and fix `ssl-addresses` to work on a listener. Update a test to use these features so that it won't conflict with other tests that listen on TCP addresses.
This commit is contained in:
parent
627d164a46
commit
85459e5fef
|
@ -265,7 +265,7 @@ current platform for client connections.
|
||||||
@section{TCP-like Server Procedures}
|
@section{TCP-like Server Procedures}
|
||||||
|
|
||||||
@defproc[(ssl-listen
|
@defproc[(ssl-listen
|
||||||
[port-no (integer-in 1 65535)]
|
[port-no listen-port-number?]
|
||||||
[queue-k exact-nonnegative-integer? 5]
|
[queue-k exact-nonnegative-integer? 5]
|
||||||
[reuse? any/c #f]
|
[reuse? any/c #f]
|
||||||
[hostname-or-#f (or/c string? #f) #f]
|
[hostname-or-#f (or/c string? #f) #f]
|
||||||
|
|
|
@ -30,12 +30,17 @@
|
||||||
ssl-server-context
|
ssl-server-context
|
||||||
#t))
|
#t))
|
||||||
|
|
||||||
(define ssl-listener (ssl-listen 55000
|
(define ssl-listener (ssl-listen 0
|
||||||
4
|
4
|
||||||
#t
|
#t
|
||||||
"127.0.0.1"
|
"127.0.0.1"
|
||||||
ssl-server-context))
|
ssl-server-context))
|
||||||
|
|
||||||
|
(define port-number (let ()
|
||||||
|
(define-values (addr port-number other-addr other-port-number)
|
||||||
|
(ssl-addresses ssl-listener #t))
|
||||||
|
port-number))
|
||||||
|
|
||||||
(define listener-main
|
(define listener-main
|
||||||
(thread
|
(thread
|
||||||
(lambda()
|
(lambda()
|
||||||
|
@ -91,7 +96,7 @@
|
||||||
(ssl-set-verify! ssl-client-context #t))
|
(ssl-set-verify! ssl-client-context #t))
|
||||||
|
|
||||||
(let-values ([(in out) (ssl-connect "127.0.0.1"
|
(let-values ([(in out) (ssl-connect "127.0.0.1"
|
||||||
55000
|
port-number
|
||||||
ssl-client-context)])
|
ssl-client-context)])
|
||||||
(check "Client: Made connection.~n" #t #t)
|
(check "Client: Made connection.~n" #t #t)
|
||||||
(when later-mode
|
(when later-mode
|
||||||
|
|
|
@ -172,7 +172,7 @@ TO DO:
|
||||||
#:hostname (or/c string? #f)]
|
#:hostname (or/c string? #f)]
|
||||||
(values input-port? output-port?))]
|
(values input-port? output-port?))]
|
||||||
[ssl-listen
|
[ssl-listen
|
||||||
(->* [(integer-in 1 (sub1 (expt 2 16)))]
|
(->* [listen-port-number?]
|
||||||
[exact-nonnegative-integer?
|
[exact-nonnegative-integer?
|
||||||
any/c
|
any/c
|
||||||
(or/c string? #f)
|
(or/c string? #f)
|
||||||
|
@ -1545,7 +1545,8 @@ TO DO:
|
||||||
(if (eq? 'listener input?)
|
(if (eq? 'listener input?)
|
||||||
(ssl-listener-l mzssl)
|
(ssl-listener-l mzssl)
|
||||||
(if input? (mzssl-i mzssl) (mzssl-o mzssl))))
|
(if input? (mzssl-i mzssl) (mzssl-o mzssl))))
|
||||||
(cond [(tcp-port? port) (tcp-addresses port port-numbers?)]
|
(cond [(or (tcp-port? port) (tcp-listener? port))
|
||||||
|
(tcp-addresses port port-numbers?)]
|
||||||
[else (error 'ssl-addresses "not connected to TCP port")])))
|
[else (error 'ssl-addresses "not connected to TCP port")])))
|
||||||
|
|
||||||
(define (ssl-abandon-port p)
|
(define (ssl-abandon-port p)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user