Recketizing much in `net/*', mass ".ss" -> ".rkt" conversion in .scrbl files.

(Some other minor things here and there.)

original commit: debd1f9f1e
This commit is contained in:
Eli Barzilay 2011-06-20 04:00:14 -04:00
parent 7c644a8eac
commit dfc0ca2908
40 changed files with 357 additions and 449 deletions

View File

@ -1,5 +1,5 @@
#lang scheme/base #lang racket/base
(require scheme/unit "cgi-sig.ss" "cgi-unit.ss") (require racket/unit "cgi-sig.rkt" "cgi-unit.rkt")
(define-values/invoke-unit/infer cgi@) (define-values/invoke-unit/infer cgi@)

View File

@ -1,5 +1,5 @@
#lang scheme/base #lang racket/base
(require scheme/unit "cookie-sig.ss" "cookie-unit.ss") (require racket/unit "cookie-sig.rkt" "cookie-unit.rkt")
(provide-signature-elements cookie^) (provide-signature-elements cookie^)

View File

@ -1,5 +1,5 @@
#lang scheme/base #lang racket/base
(require scheme/unit "dns-sig.ss" "dns-unit.ss") (require racket/unit "dns-sig.rkt" "dns-unit.rkt")
(define-values/invoke-unit/infer dns@) (define-values/invoke-unit/infer dns@)

View File

@ -1,5 +1,5 @@
#lang scheme/base #lang racket/base
(require scheme/unit scheme/contract "imap-sig.ss" "imap-unit.ss") (require racket/unit racket/contract "imap-sig.rkt" "imap-unit.rkt")
(define-values/invoke-unit/infer imap@) (define-values/invoke-unit/infer imap@)

View File

@ -1,5 +1,5 @@
;;; ;;;
;;; <mime-util.ss> ---- Extra utilities ;;; <mime-util.rkt> ---- Extra utilities
;;; Time-stamp: <01/05/07 17:41:12 solsona> ;;; Time-stamp: <01/05/07 17:41:12 solsona>
;;; ;;;
;;; Copyright (C) 2001 by Francisco Solsona. ;;; Copyright (C) 2001 by Francisco Solsona.
@ -26,7 +26,7 @@
;; ;;
;; Commentary: ;; Commentary:
#lang scheme/base #lang racket/base
(provide string-tokenizer (provide string-tokenizer
trim-all-spaces trim-all-spaces
@ -55,19 +55,17 @@
(list s)))))) (list s))))))
;; Trim all spaces, except those in quoted strings. ;; Trim all spaces, except those in quoted strings.
(define re:quote-start (regexp "\""))
(define re:space (regexp "[ \t\n\r\v]"))
(define (trim-all-spaces str) (define (trim-all-spaces str)
;; Break out alternate quoted and unquoted parts. ;; Break out alternate quoted and unquoted parts.
;; Initial and final string are unquoted. ;; Initial and final string are unquoted.
(let-values ([(unquoted quoted) (let-values ([(unquoted quoted)
(let loop ([str str] [unquoted null] [quoted null]) (let loop ([str str] [unquoted null] [quoted null])
(let ([m (regexp-match-positions re:quote-start str)]) (let ([m (regexp-match-positions #rx"\"" str)])
(if m (if m
(let ([prefix (substring str 0 (caar m))] (let ([prefix (substring str 0 (caar m))]
[rest (substring str (add1 (caar m)) (string-length str))]) [rest (substring str (add1 (caar m)) (string-length str))])
;; Find closing quote ;; Find closing quote
(let ([m (regexp-match-positions re:quote-start rest)]) (let ([m (regexp-match-positions #rx"\"" rest)])
(if m (if m
(let ([inside (substring rest 0 (caar m))] (let ([inside (substring rest 0 (caar m))]
[rest (substring rest (add1 (caar m)) (string-length rest))]) [rest (substring rest (add1 (caar m)) (string-length rest))])
@ -78,8 +76,8 @@
;; Put the pieces back together, stripping spaces for unquoted parts: ;; Put the pieces back together, stripping spaces for unquoted parts:
(apply (apply
string-append string-append
(let loop ([unquoted unquoted][quoted quoted]) (let loop ([unquoted unquoted] [quoted quoted])
(let ([clean (regexp-replace* re:space (car unquoted) "")]) (let ([clean (regexp-replace* #rx"[ \t\n\r\v]" (car unquoted) "")])
(if (null? quoted) (if (null? quoted)
(list clean) (list clean)
(list* clean (list* clean
@ -92,15 +90,15 @@
(regexp-replace #rx"^[ \t\r\n\v]+" str "") (regexp-replace #rx"^[ \t\r\n\v]+" str "")
"")) ""))
(define re:comments #rx"^[^\"]*(\"[^\"]*\")*[^\"]*(\\(.*\\))")
(define (trim-comments str) (define (trim-comments str)
(let ([positions (regexp-match-positions re:comments str)]) (define positions
(regexp-match-positions #rx"^[^\"]*(\"[^\"]*\")*[^\"]*(\\(.*\\))" str))
(if positions (if positions
(string-append (substring str 0 (caaddr positions)) (string-append (substring str 0 (caaddr positions))
(substring str (cdaddr positions) (string-length str))) (substring str (cdaddr positions) (string-length str)))
str))) str))
(define (lowercase str) (string-downcase str)) (define lowercase string-downcase)
(define warning (define warning
void void
@ -119,4 +117,4 @@
(fprintf out "~a\n" ln) (fprintf out "~a\n" ln)
(loop (read-line in))))) (loop (read-line in)))))
;;; mime-util.ss ends here ;;; mime-util.rkt ends here

View File

@ -1,5 +1,5 @@
;;; ;;;
;;; <mime.ss> ---- MIME support ;;; <mime.rkt> ---- MIME support
;;; ;;;
;;; Copyright (C) 2002 by PLT. ;;; Copyright (C) 2002 by PLT.
;;; Copyright (C) 2001 by Wish Computing. ;;; Copyright (C) 2001 by Wish Computing.
@ -26,13 +26,9 @@
;; ;;
;; Commentary: ;; Commentary:
#lang scheme/base #lang racket/base
(require scheme/unit (require racket/unit
"mime-sig.ss" "mime-sig.rkt" "mime-unit.rkt" "qp.rkt" "base64.rkt" "head.rkt")
"mime-unit.ss"
"qp.ss"
"base64.ss"
"head.ss")
;(define-unit-from-context base64@ base64^) ;(define-unit-from-context base64@ base64^)
;(define-unit-from-context qp@ qp^) ;(define-unit-from-context qp@ qp^)
@ -44,4 +40,4 @@
(provide-signature-elements mime^) (provide-signature-elements mime^)
;;; mime.ss ends here ;;; mime.rkt ends here

View File

@ -1,5 +1,5 @@
#lang scheme/base #lang racket/base
(require scheme/unit "nntp-sig.ss" "nntp-unit.ss") (require racket/unit "nntp-sig.rkt" "nntp-unit.rkt")
(define-values/invoke-unit/infer nntp@) (define-values/invoke-unit/infer nntp@)

View File

@ -1,5 +1,5 @@
#lang scheme/base #lang racket/base
(require scheme/unit "pop3-sig.ss" "pop3-unit.ss") (require racket/unit "pop3-sig.rkt" "pop3-unit.rkt")
(define-values/invoke-unit/infer pop3@) (define-values/invoke-unit/infer pop3@)
@ -7,7 +7,7 @@
#| #|
> (require-library "pop3.ss" "net") > (require-library "pop3.rkt" "net")
> (define c (connect-to-server "cs.rice.edu")) > (define c (connect-to-server "cs.rice.edu"))
> (authenticate/plain-text "scheme" "********" c) > (authenticate/plain-text "scheme" "********" c)
> (get-mailbox-status c) > (get-mailbox-status c)

View File

@ -1,3 +1,4 @@
#lang racket/base
;; Two variants of red-black trees. ;; Two variants of red-black trees.
@ -18,28 +19,28 @@
;; decremented by the node's key (recursively). This allows a ln-time ;; decremented by the node's key (recursively). This allows a ln-time
;; shift operation when a message is expunged. ;; shift operation when a message is expunged.
(module rbtree mzscheme (provide new-tree tree-empty?
(provide new-tree tree-empty?
expunge-insert! expunge-tree->list expunge-insert! expunge-tree->list
fetch-insert! fetch-find fetch-delete! fetch-shift! fetch-tree->list) fetch-insert! fetch-find fetch-delete! fetch-shift! fetch-tree->list)
(define-struct tree (v red? left-count left right parent) (make-inspector)) (define-struct tree (v red? left-count left right parent)
#:mutable #:transparent)
(define (new-tree) (define (new-tree)
(make-tree 'pre-root #f 0 #f #f #f)) (make-tree 'pre-root #f 0 #f #f #f))
(define (tree-empty? t) (define (tree-empty? t)
(not (tree-left t))) (not (tree-left t)))
(define (k+ a b) (define (k+ a b)
(cons (+ (car a) (if (number? b) b (car b))) (cons (+ (car a) (if (number? b) b (car b)))
(cdr a))) (cdr a)))
(define (k- a b) (define (k- a b)
(cons (- (car a) (if (number? b) b (car b))) (cons (- (car a) (if (number? b) b (car b)))
(cdr a))) (cdr a)))
(define kv car) (define kv car)
(define (mk-insert sort-to-left? sort=? right+ (define (mk-insert sort-to-left? sort=? right+
left-insert-adjust! left-insert-adjust!
left-rotate-adjust! right-rotate-adjust!) left-rotate-adjust! right-rotate-adjust!)
(define-values (rotate-left! rotate-right!) (define-values (rotate-left! rotate-right!)
@ -49,8 +50,7 @@
(let ([old-east (tree-east t)]) (let ([old-east (tree-east t)])
(let ([r (tree-west old-east)]) (let ([r (tree-west old-east)])
(set-tree-east! t r) (set-tree-east! t r)
(when r (when r (set-tree-parent! r t)))
(set-tree-parent! r t)))
(let ([p (tree-parent t)]) (let ([p (tree-parent t)])
(set-tree-parent! old-east p) (set-tree-parent! old-east p)
(if (eq? t (tree-left p)) (if (eq? t (tree-left p))
@ -110,9 +110,7 @@
(rotate-east! gp) (rotate-east! gp)
(loop gp)))]) (loop gp)))])
(if (eq? v (tree-east p)) (if (eq? v (tree-east p))
(begin (begin (rotate-west! p) (finish p))
(rotate-west! p)
(finish p))
(finish v)))))))))) (finish v))))))))))
(set-tree-red?! (tree-left pre-root) #f))) (set-tree-red?! (tree-left pre-root) #f)))
@ -139,8 +137,7 @@
(set-tree-v! c (k- (tree-v c) delta)) (set-tree-v! c (k- (tree-v c) delta))
(loop (tree-left c)))))) (loop (tree-left c))))))
;; Now we can delete t: ;; Now we can delete t:
(let ([child-t (or (tree-left t) (let ([child-t (or (tree-left t) (tree-right t))]
(tree-right t))]
[p (tree-parent t)]) [p (tree-parent t)])
(when child-t (when child-t
(set-tree-parent! child-t p) (set-tree-parent! child-t p)
@ -192,7 +189,7 @@
(set-tree-red?! (tree-east w) #f) (set-tree-red?! (tree-east w) #f)
(rotate-west! p))))))])))))))))) (rotate-west! p))))))]))))))))))
(define-values (expunge-insert! ---) (define-values (expunge-insert! ---)
(mk-insert (mk-insert
;; sort-to-left? ;; sort-to-left?
(lambda (n t) (lambda (n t)
@ -216,7 +213,7 @@
(tree-left-count old-left) (tree-left-count old-left)
1))))) 1)))))
(define-values (fetch-insert! fetch-delete!) (define-values (fetch-insert! fetch-delete!)
(mk-insert (mk-insert
;; sort-to-left? ;; sort-to-left?
(lambda (n t) (lambda (n t)
@ -238,7 +235,7 @@
(set-tree-v! t (k- (tree-v t) (set-tree-v! t (k- (tree-v t)
(tree-v old-left)))))) (tree-v old-left))))))
(define (expunge-tree->list pre-root) (define (expunge-tree->list pre-root)
(let loop ([t (tree-left pre-root)]) (let loop ([t (tree-left pre-root)])
(if t (if t
(append (loop (tree-left t)) (append (loop (tree-left t))
@ -246,45 +243,41 @@
(loop (tree-right t))) (loop (tree-right t)))
null))) null)))
(define (fetch-find-node pre-root n) (define (fetch-find-node pre-root n)
(let loop ([t (tree-left pre-root)] (let loop ([t (tree-left pre-root)] [n n])
[n n])
(and t (and t
(cond (cond
[(= n (kv (tree-v t))) t] [(= n (kv (tree-v t))) t]
[(< n (kv (tree-v t))) (loop (tree-left t) n)] [(< n (kv (tree-v t))) (loop (tree-left t) n)]
[else (loop (tree-right t) (- n (kv (tree-v t))))])))) [else (loop (tree-right t) (- n (kv (tree-v t))))]))))
(define (fetch-find pre-root n) (define (fetch-find pre-root n)
(let ([t (fetch-find-node pre-root n)]) (let ([t (fetch-find-node pre-root n)])
(and t (tree-v t)))) (and t (tree-v t))))
(define (fetch-shift! pre-root n) (define (fetch-shift! pre-root n)
(fetch-delete! pre-root n) (fetch-delete! pre-root n)
(let loop ([t (tree-left pre-root)] (let loop ([t (tree-left pre-root)] [n n])
[n n])
(when t (when t
(if (n . < . (kv (tree-v t))) (if (n . < . (kv (tree-v t)))
(begin (begin (set-tree-v! t (k- (tree-v t) 1))
(set-tree-v! t (k- (tree-v t) 1))
(loop (tree-left t) n)) (loop (tree-left t) n))
(loop (tree-right t) (loop (tree-right t)
(- n (kv (tree-v t)))))))) (- n (kv (tree-v t))))))))
(define (fetch-tree->list pre-root) (define (fetch-tree->list pre-root)
(let loop ([t (tree-left pre-root)][d 0]) (let loop ([t (tree-left pre-root)][d 0])
(if t (if t
(append (loop (tree-left t) d) (append (loop (tree-left t) d)
(list (k+ (tree-v t) d)) (list (k+ (tree-v t) d))
(loop (tree-right t) (+ d (kv (tree-v t))))) (loop (tree-right t) (+ d (kv (tree-v t)))))
null)))) null)))
#| #|
Tests: Tests:
(require rbtree) (require rbtree racket/pretty)
(require mzlib/pretty)
(print-struct #t) (print-struct #t)
(define t (new-tree)) (define t (new-tree))

View File

@ -1,5 +1,5 @@
;;; ;;;
;;; <qp.ss> ---- Quoted Printable Encoding/Decoding ;;; <qp.rkt> ---- Quoted Printable Encoding/Decoding
;;; ;;;
;;; Copyright (C) 2002 by PLT. ;;; Copyright (C) 2002 by PLT.
;;; Copyright (C) 2001 by Francisco Solsona. ;;; Copyright (C) 2001 by Francisco Solsona.
@ -26,11 +26,11 @@
;; ;;
;; Commentary: ;; Commentary:
#lang scheme/base #lang racket/base
(require mzlib/unit "qp-sig.ss" "qp-unit.ss") (require racket/unit "qp-sig.rkt" "qp-unit.rkt")
(define-values/invoke-unit/infer qp@) (define-values/invoke-unit/infer qp@)
(provide-signature-elements qp^) (provide-signature-elements qp^)
;;; qp.ss ends here ;;; qp.rkt ends here

View File

@ -1,8 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/base64 net/base64-unit net/base64-sig))
(for-label net/base64
net/base64-unit
net/base64-sig))
@title[#:tag "base64"]{Base 64: Encoding and Decoding} @title[#:tag "base64"]{Base 64: Encoding and Decoding}

View File

@ -1,9 +1,6 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt"
(for-label net/cgi (for-label net/cgi net/uri-codec net/cgi-unit net/cgi-sig))
net/uri-codec
net/cgi-unit
net/cgi-sig))
@title[#:tag "cgi"]{CGI Scripts} @title[#:tag "cgi"]{CGI Scripts}

View File

@ -1,9 +1,7 @@
#lang scheme/base #lang racket/base
(require scribble/manual (require scribble/manual
(for-label scheme/base (for-label racket/base racket/contract))
scheme/contract))
(provide (all-from-out scribble/manual) (provide (all-from-out scribble/manual)
(for-label (all-from-out scheme/base (for-label (all-from-out racket/base racket/contract)))
scheme/contract)))

View File

@ -1,9 +1,6 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" scribble/eval
scribble/eval (for-label net/cookie net/cookie-unit net/cookie-sig))
(for-label net/cookie
net/cookie-unit
net/cookie-sig))
@(define cookie-eval (make-base-eval)) @(define cookie-eval (make-base-eval))
@interaction-eval[#:eval cookie-eval (require net/cookie)] @interaction-eval[#:eval cookie-eval (require net/cookie)]

View File

@ -1,8 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/dns net/dns-unit net/dns-sig))
(for-label net/dns
net/dns-unit
net/dns-sig))
@title[#:tag "dns"]{DNS: Domain Name Service Queries} @title[#:tag "dns"]{DNS: Domain Name Service Queries}

View File

@ -1,8 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/ftp net/ftp-unit net/ftp-sig))
(for-label net/ftp
net/ftp-unit
net/ftp-sig))
@title[#:tag "ftp"]{FTP: Client Downloading} @title[#:tag "ftp"]{FTP: Client Downloading}

View File

@ -1,10 +1,6 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" scribble/eval scribble/struct
scribble/eval (for-label net/head net/head-unit net/head-sig))
scribble/struct
(for-label net/head
net/head-unit
net/head-sig))
@(define head-eval (make-base-eval)) @(define head-eval (make-base-eval))
@interaction-eval[#:eval head-eval (require net/head)] @interaction-eval[#:eval head-eval (require net/head)]

View File

@ -1,10 +1,6 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" scribble/eval scribble/struct
scribble/eval (for-label net/imap net/imap-unit net/imap-sig))
scribble/struct
(for-label net/imap
net/imap-unit
net/imap-sig))
@(define (just-report) @(define (just-report)
@elem{This operation does not communicate with the server. It merely reports @elem{This operation does not communicate with the server. It merely reports

View File

@ -1,9 +1,6 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" scribble/struct
scribble/struct (for-label net/mime net/mime-unit net/mime-sig))
(for-label net/mime
net/mime-unit
net/mime-sig))
@(define-syntax-rule (mime-table (type (sub-type0 ref0) (sub-type ref) ...) ...) @(define-syntax-rule (mime-table (type (sub-type0 ref0) (sub-type ref) ...) ...)
(let ([spacer (hspace 1)] (let ([spacer (hspace 1)]

View File

@ -1,5 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss") @(require "common.rkt")
@title{@bold{Net}: Racket Networking Libraries} @title{@bold{Net}: Racket Networking Libraries}

View File

@ -1,8 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/nntp net/nntp-unit net/nntp-sig))
(for-label net/nntp
net/nntp-unit
net/nntp-sig))
@title[#:tag "nntp"]{NNTP: Newsgroup Protocol} @title[#:tag "nntp"]{NNTP: Newsgroup Protocol}

View File

@ -1,8 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/pop3 net/pop3-unit net/pop3-sig))
(for-label net/pop3
net/pop3-unit
net/pop3-sig))
@(define pt (tt ">")) @(define pt (tt ">"))
@ -150,7 +147,7 @@ Raised when the server does not gracefully disconnect.}
@defstruct[(malformed-server-response pop3) ([communicator communicator?])]{ @defstruct[(malformed-server-response pop3) ([communicator communicator?])]{
Raised when the server produces a mal-formed response.} Raised when the server produces a malformed response.}
@section{Example Session} @section{Example Session}

View File

@ -1,8 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/qp net/qp-unit net/qp-sig))
(for-label net/qp
net/qp-unit
net/qp-sig))
@title[#:tag "qp"]{Quoted-Printable: Encoding and Decoding} @title[#:tag "qp"]{Quoted-Printable: Encoding and Decoding}

View File

@ -1,8 +1,6 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt"
(for-label net/sendmail (for-label net/sendmail net/sendmail-unit net/sendmail-sig))
net/sendmail-unit
net/sendmail-sig))
@title[#:tag "sendmail"]{@exec{sendmail}: Sending E-Mail} @title[#:tag "sendmail"]{@exec{sendmail}: Sending E-Mail}

View File

@ -1,7 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/sendurl racket/file))
(for-label net/sendurl
scheme/file))
@title[#:tag "sendurl"]{Send URL: Opening a Web Browser} @title[#:tag "sendurl"]{Send URL: Opening a Web Browser}
@ -9,7 +7,7 @@
in the user's chosen web browser.} in the user's chosen web browser.}
See also @schememodname[browser/external], which requires See also @schememodname[browser/external], which requires
@scheme[scheme/gui], but can prompt the user for a browser if no @scheme[racket/gui], but can prompt the user for a browser if no
browser preference is set. browser preference is set.
@ -64,7 +62,7 @@ Similar to @scheme[send-url/file], but it consumes the contents of a
page to show, and displayes it from a temporary file. page to show, and displayes it from a temporary file.
If @scheme[delete-at] is a number, the temporary file is removed after If @scheme[delete-at] is a number, the temporary file is removed after
this many seconds. The deletion happens in a thread, so if mzscheme this many seconds. The deletion happens in a thread, so if racket
exits before that it will not happen --- when this function is called exits before that it will not happen --- when this function is called
it scans old generated files (this happens randomly, not on every it scans old generated files (this happens randomly, not on every
call) and removes them to avoid cluttering the temporary directory. call) and removes them to avoid cluttering the temporary directory.

View File

@ -1,10 +1,6 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt"
(for-label net/smtp (for-label net/smtp net/smtp-unit net/smtp-sig racket/tcp openssl))
net/smtp-unit
net/smtp-sig
scheme/tcp
openssl))
@title[#:tag "smtp"]{SMTP: Sending E-Mail} @title[#:tag "smtp"]{SMTP: Sending E-Mail}

View File

@ -1,7 +1,5 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/ssl-tcp-unit net/tcp-sig))
(for-label net/ssl-tcp-unit
net/tcp-sig))
@title[#:tag "ssl-tcp-unit"]{SSL Unit: @scheme[tcp^] via SSL} @title[#:tag "ssl-tcp-unit"]{SSL Unit: @scheme[tcp^] via SSL}

View File

@ -1,21 +1,19 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" (for-label net/tcp-redirect net/tcp-sig))
(for-label net/tcp-redirect
net/tcp-sig))
@title[#:tag "tcp-redirect"]{TCP Redirect: @scheme[tcp^] via Channels} @title[#:tag "tcp-redirect"]{TCP Redirect: @scheme[tcp^] via Channels}
@defmodule[net/tcp-redirect]{The @schememodname[net/tcp-redirect] @defmodule[net/tcp-redirect]{The @schememodname[net/tcp-redirect]
library provides a function for directing some TCP port numbers to use library provides a function for directing some TCP port numbers to use
buffered channels instead of the TCP support from buffered channels instead of the TCP support from
@schememodname[scheme/tcp].} @schememodname[racket/tcp].}
@defproc[(tcp-redirect [port-numbers (listof (integer-in 0 65535))]) @defproc[(tcp-redirect [port-numbers (listof (integer-in 0 65535))])
unit?]{ unit?]{
Returns a unit that implements @scheme[tcp^]. For port numbers not Returns a unit that implements @scheme[tcp^]. For port numbers not
listed in @scheme[port-numbers], the unit's implementations are the listed in @scheme[port-numbers], the unit's implementations are the
@schememodname[scheme/tcp] implementations. @schememodname[racket/tcp] implementations.
For the port numbers listed in @scheme[port-numbers] and for For the port numbers listed in @scheme[port-numbers] and for
connections to @scheme["127.0.0.1"], the unit's implementation does connections to @scheme["127.0.0.1"], the unit's implementation does

View File

@ -1,18 +1,14 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt"
(for-label net/tcp-sig (for-label net/tcp-sig net/tcp-unit net/url-unit net/tcp-redirect
net/tcp-unit net/ssl-tcp-unit racket/tcp))
net/url-unit
net/tcp-redirect
net/ssl-tcp-unit
scheme/tcp))
@title[#:tag "tcp"]{TCP: Unit and Signature} @title[#:tag "tcp"]{TCP: Unit and Signature}
The @schememodname[net/tcp-sig] and @schememodname[net/tcp-unit] The @schememodname[net/tcp-sig] and @schememodname[net/tcp-unit]
libraries define a @scheme[tcp^] signature and @scheme[tcp@] libraries define a @scheme[tcp^] signature and @scheme[tcp@]
implementation, where the implementation uses implementation, where the implementation uses
@schememodname[scheme/tcp]. @schememodname[racket/tcp].
Some units in the @filepath{net} collection import @scheme[tcp^], so Some units in the @filepath{net} collection import @scheme[tcp^], so
that they can be used with transports other than plain TCP. For that they can be used with transports other than plain TCP. For
@ -33,7 +29,7 @@ See also @scheme[tcp-redirect] and @scheme[make-ssl-tcp@].
[hostname (or/c string? false/c) #f]) [hostname (or/c string? false/c) #f])
@#,sigelem[tcp^ tcp-listener?]]{ @#,sigelem[tcp^ tcp-listener?]]{
Like @scheme[tcp-listen] from @schememodname[scheme/tcp].} Like @scheme[tcp-listen] from @schememodname[racket/tcp].}
@defproc[(tcp-connect [hostname string?] @defproc[(tcp-connect [hostname string?]
[port-no (and/c exact-nonnegative-integer? [port-no (and/c exact-nonnegative-integer?
@ -45,7 +41,7 @@ Like @scheme[tcp-listen] from @schememodname[scheme/tcp].}
#f]) #f])
(values input-port? output-port?)]{ (values input-port? output-port?)]{
Like @scheme[tcp-connect] from @schememodname[scheme/tcp].} Like @scheme[tcp-connect] from @schememodname[racket/tcp].}
@defproc[(tcp-connect/enable-break [hostname string?] @defproc[(tcp-connect/enable-break [hostname string?]
[port-no (and/c exact-nonnegative-integer? [port-no (and/c exact-nonnegative-integer?
@ -56,33 +52,33 @@ Like @scheme[tcp-connect] from @schememodname[scheme/tcp].}
false/c)]) false/c)])
(values input-port? output-port?)]{ (values input-port? output-port?)]{
Like @scheme[tcp-connect/enable-break] from @schememodname[scheme/tcp].} Like @scheme[tcp-connect/enable-break] from @schememodname[racket/tcp].}
@defproc[(tcp-accept [listener @#,sigelem[tcp^ tcp-listener?]]) @defproc[(tcp-accept [listener @#,sigelem[tcp^ tcp-listener?]])
(values input-port? output-port?)]{ (values input-port? output-port?)]{
Like @scheme[tcp-accept] from @schememodname[scheme/tcp].} Like @scheme[tcp-accept] from @schememodname[racket/tcp].}
@defproc[(tcp-accept/enable-break [listener @#,sigelem[tcp^ tcp-listener?]]) @defproc[(tcp-accept/enable-break [listener @#,sigelem[tcp^ tcp-listener?]])
(values input-port? output-port?)]{ (values input-port? output-port?)]{
Like @scheme[tcp-accept/enable-break] from @schememodname[scheme/tcp].} Like @scheme[tcp-accept/enable-break] from @schememodname[racket/tcp].}
@defproc[(tcp-accept-ready? [listener @#,sigelem[tcp^ tcp-listener?]]) boolean?]{ @defproc[(tcp-accept-ready? [listener @#,sigelem[tcp^ tcp-listener?]]) boolean?]{
Like @scheme[tcp-accept-ready?] from @schememodname[scheme/tcp].} Like @scheme[tcp-accept-ready?] from @schememodname[racket/tcp].}
@defproc[(tcp-close [listener @#,sigelem[tcp^ tcp-listener?]]) void?]{ @defproc[(tcp-close [listener @#,sigelem[tcp^ tcp-listener?]]) void?]{
Like @scheme[tcp-close] from @schememodname[scheme/tcp].} Like @scheme[tcp-close] from @schememodname[racket/tcp].}
@defproc[(tcp-listener? [v any/c]) boolean?]{ @defproc[(tcp-listener? [v any/c]) boolean?]{
Like @scheme[tcp-listener?] from @schememodname[scheme/tcp].} Like @scheme[tcp-listener?] from @schememodname[racket/tcp].}
@defproc[(tcp-abandon-port [tcp-port port?]) void?]{ @defproc[(tcp-abandon-port [tcp-port port?]) void?]{
Like @scheme[tcp-abandon-port] from @schememodname[scheme/tcp].} Like @scheme[tcp-abandon-port] from @schememodname[racket/tcp].}
@defproc[(tcp-addresses [tcp-port port?] @defproc[(tcp-addresses [tcp-port port?]
[port-numbers? any/c #f]) [port-numbers? any/c #f])
@ -90,7 +86,7 @@ Like @scheme[tcp-abandon-port] from @schememodname[scheme/tcp].}
(values string? (integer-in 1 65535) (values string? (integer-in 1 65535)
string? (integer-in 1 65535)))]{ string? (integer-in 1 65535)))]{
Like @scheme[tcp-addresses] from @schememodname[scheme/tcp].} Like @scheme[tcp-addresses] from @schememodname[racket/tcp].}
} }
@ -101,4 +97,4 @@ Like @scheme[tcp-addresses] from @schememodname[scheme/tcp].}
@defthing[tcp@ unit?]{ @defthing[tcp@ unit?]{
Imports nothing and exports @scheme[tcp^], implemented using Imports nothing and exports @scheme[tcp^], implemented using
@schememodname[scheme/tcp].} @schememodname[racket/tcp].}

View File

@ -1,11 +1,7 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" scribble/bnf scribble/eval
scribble/bnf
scribble/eval
(for-label net/url (for-label net/url
net/uri-codec net/uri-codec net/uri-codec-unit net/uri-codec-sig))
net/uri-codec-unit
net/uri-codec-sig))
@(define uri-codec-eval (make-base-eval)) @(define uri-codec-eval (make-base-eval))
@interaction-eval[#:eval uri-codec-eval (require net/uri-codec)] @interaction-eval[#:eval uri-codec-eval (require net/uri-codec)]

View File

@ -1,11 +1,6 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt" scribble/bnf
scribble/bnf (for-label net/url net/url-unit net/url-sig net/head net/uri-codec))
(for-label net/url
net/url-unit
net/url-sig
net/head
net/uri-codec))
@title[#:tag "url"]{URLs and HTTP} @title[#:tag "url"]{URLs and HTTP}

View File

@ -1,10 +1,7 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss" @(require "common.rkt"
scribble/bnf scribble/bnf
(for-label net/url (for-label net/url unstable/contract web-server/http racket/list
unstable/contract
web-server/http
racket/list
racket/async-channel racket/async-channel
(prefix-in raw: (for-label net/tcp-unit)) (prefix-in raw: (for-label net/tcp-unit))
net/websocket net/websocket

View File

@ -1,5 +1,5 @@
#lang scheme/base #lang racket/base
(require scheme/unit "sendmail-sig.ss" "sendmail-unit.ss") (require racket/unit "sendmail-sig.rkt" "sendmail-unit.rkt")
(define-values/invoke-unit/infer sendmail@) (define-values/invoke-unit/infer sendmail@)

View File

@ -1,4 +1,4 @@
;; The main client of this module is browser/external.ss ;; The main client of this module is browser/external.rkt
;; (others just use the (send-url url [new?]) interface.) ;; (others just use the (send-url url [new?]) interface.)
#lang racket/base #lang racket/base
@ -188,7 +188,7 @@
;; if it's a known browser, then it must be an existing one at this point ;; if it's a known browser, then it must be an existing one at this point
[(not exe) (error 'send-url "internal error")] [(not exe) (error 'send-url "internal error")]
;; if it's gone throw an error (refiltering will break assumptions of ;; if it's gone throw an error (refiltering will break assumptions of
;; browser/external.ss, and we really mimic the Win/Mac case where there ;; browser/external.rkt, and we really mimic the Win/Mac case where there
;; should be some builtin facility that doesn't change) ;; should be some builtin facility that doesn't change)
[(not (file-exists? exe)) (error 'send-url "executable vanished: ~a" exe)] [(not (file-exists? exe)) (error 'send-url "executable vanished: ~a" exe)]
;; finally, deal with the actual browser process ;; finally, deal with the actual browser process

View File

@ -1,5 +1,5 @@
#lang scheme/base #lang racket/base
(require scheme/unit "smtp-sig.ss" "smtp-unit.ss") (require racket/unit "smtp-sig.rkt" "smtp-unit.rkt")
(define-values/invoke-unit/infer smtp@) (define-values/invoke-unit/infer smtp@)

View File

@ -1,11 +1,10 @@
#lang scheme/base #lang racket/base
(provide make-ssl-tcp@) (provide make-ssl-tcp@)
(require scheme/unit (require racket/unit "tcp-sig.rkt" openssl/mzssl)
"tcp-sig.ss"
openssl/mzssl)
(define (make-ssl-tcp@ (define (make-ssl-tcp@
server-cert-file server-key-file server-root-cert-files server-suggest-auth-file server-cert-file server-key-file server-root-cert-files
server-suggest-auth-file
client-cert-file client-key-file client-root-cert-files) client-cert-file client-key-file client-root-cert-files)
(unit (unit
(import) (import)

View File

@ -1,10 +1,7 @@
#lang scheme/base #lang racket/base
(provide tcp-redirect) (provide tcp-redirect)
(require scheme/unit (require racket/unit racket/tcp racket/async-channel "tcp-sig.rkt")
scheme/tcp
scheme/async-channel
"tcp-sig.ss")
(define raw:tcp-abandon-port tcp-abandon-port) (define raw:tcp-abandon-port tcp-abandon-port)
(define raw:tcp-accept tcp-accept) (define raw:tcp-accept tcp-accept)
@ -46,7 +43,7 @@
(define (tcp-accept/enable-break tcp-listener) (define (tcp-accept/enable-break tcp-listener)
(cond (cond
[(pipe-listener? tcp-listener) [(pipe-listener? tcp-listener)
;; XXX put this into async-channel.ss as async-channel-get/enable-break ;; XXX put this into async-channel.rkt as async-channel-get/enable-break
(sync/enable-break (sync/enable-break
(handle-evt (handle-evt
(pipe-listener-channel tcp-listener) (pipe-listener-channel tcp-listener)

View File

@ -1,4 +1,4 @@
#lang scheme/signature #lang racket/signature
tcp-abandon-port tcp-abandon-port
tcp-accept tcp-accept

View File

@ -1,6 +1,6 @@
#lang scheme/base #lang racket/base
(provide tcp@) (provide tcp@)
(require scheme/unit scheme/tcp "tcp-sig.ss") (require racket/unit racket/tcp "tcp-sig.rkt")
(define-unit-from-context tcp@ tcp^) (define-unit-from-context tcp@ tcp^)

View File

@ -1,11 +1,7 @@
#lang mzscheme #lang racket/base
(require net/base64 (require net/base64 net/qp racket/string)
net/qp
mzlib/string)
(provide encode-for-header (provide encode-for-header decode-for-header generalize-encoding)
decode-for-header
generalize-encoding)
(define re:ascii #rx"^[\u0-\u7F]*$") (define re:ascii #rx"^[\u0-\u7F]*$")
@ -51,23 +47,17 @@
;; ---------------------------------------- ;; ----------------------------------------
(define re:us-ascii #rx#"^(?i:us-ascii)$")
(define re:iso #rx#"^(?i:iso-8859-1)$")
(define re:gb #rx#"^(?i:gb(?:2312)?)$")
(define re:ks_c #rx#"^(?i:ks_c_5601-1987)$")
(define re:utf-8 #rx#"^(?i:utf-8)$")
(define re:encoded #rx#"^(.*?)=[?]([^?]+)[?]([qQbB])[?](.*?)[?]=(.*)$") (define re:encoded #rx#"^(.*?)=[?]([^?]+)[?]([qQbB])[?](.*?)[?]=(.*)$")
(define (generalize-encoding encoding) (define (generalize-encoding encoding)
;; Treat Latin-1 as Windows-1252 and also threat GB and GB2312 ;; Treat Latin-1 as Windows-1252 and also threat GB and GB2312
;; as GBK, because some mailers are broken. ;; as GBK, because some mailers are broken.
(cond [(or (regexp-match? re:iso encoding) (cond [(or (regexp-match? #rx#"^(?i:iso-8859-1)$" encoding)
(regexp-match? re:us-ascii encoding)) (regexp-match? #rx#"^(?i:us-ascii)$" encoding))
(if (bytes? encoding) #"WINDOWS-1252" "WINDOWS-1252")] (if (bytes? encoding) #"WINDOWS-1252" "WINDOWS-1252")]
[(regexp-match? re:gb encoding) [(regexp-match? #rx#"^(?i:gb(?:2312)?)$" encoding)
(if (bytes? encoding) #"GBK" "GBK")] (if (bytes? encoding) #"GBK" "GBK")]
[(regexp-match? re:ks_c encoding) [(regexp-match? #rx#"^(?i:ks_c_5601-1987)$" encoding)
(if (bytes? encoding) #"CP949" "CP949")] (if (bytes? encoding) #"CP949" "CP949")]
[else encoding])) [else encoding]))
@ -88,7 +78,7 @@
(decode-for-header (bytes->string/latin-1 (cadr m))) (decode-for-header (bytes->string/latin-1 (cadr m)))
(let ([encoding (generalize-encoding encoding)]) (let ([encoding (generalize-encoding encoding)])
(cond (cond
[(regexp-match? re:utf-8 encoding) [(regexp-match? #rx#"^(?i:utf-8)$" encoding)
(bytes->string/utf-8 s #\?)] (bytes->string/utf-8 s #\?)]
[else (let ([c (bytes-open-converter [else (let ([c (bytes-open-converter
(bytes->string/latin-1 encoding) (bytes->string/latin-1 encoding)