scheme/net/address.scm: a couple of arguments' order mismatch bugs
Ivan Shmakov <[email protected]>
| Newsgroups | gmane.lisp.scheme.scheme48 |
|---|---|
| Message-ID | <[email protected]> |
Please consider the patch below. At least, it makes the following bit to work. Welcome to Scheme 48 1.9T (made by ivan on 2009-08-17) Copyright (c) 1993-2008 by Richard Kelsey and Jonathan Rees. Please report bugs to [email protected]. Get more information at http://www.s48.org/. Type ,? (comma question-mark) for help. > ,new-package 266> ,structure foo (export) foo> ,open net-addresses net-sockets srfi-61 foo> (let* ((a/i (get-address-info "waterlily.ip.uusia.org" #f (address-info-flags) (address-family inet6) ;; NB: IPv6 (socket-type stream))) (a-1 (car a/i)) (dst1 (address-info-socket-address a-1)) (dst (make-ipv6-socket-address 80 (socket-address-ipv6-address dst1) (socket-address-ipv6-scope-id dst1))) (sock (make-socket (address-info-family a-1) (address-info-socket-type a-1)))) ; (write `(connecting-to: ,dst ...)) (newline) (socket-connect sock dst) (let ((i (socket-input-port sock)) (o (socket-output-port sock))) (display (string-append "GET /" (string #\newline)) o) (newline o) (let loop () (cond ((read-char i) (lambda (o) (not (eof-object? o))) => (lambda (c) (display c) (loop)))))) (close-socket sock)) <html><body><h1>It works!</h1></body></html> #{Unspecific} foo> scheme/net/address.scm (socket-address-data/ipv6->raw): Fixed the order of values passed to `external-make-sockaddr-in6-raw'. (raw->socket-address): Fixed the order of values passed to `make-socket-address-data/ipv6'. diff -r feb2dd47df29 scheme/net/address.scm --- a/scheme/net/address.scm Fri Aug 14 17:21:46 2009 +0200 +++ b/scheme/net/address.scm Mon Aug 17 22:42:49 2009 +0700 @@ -200,8 +200,8 @@ (define (socket-address-data/ipv6->raw data) (external-make-sockaddr-in6-raw + (ipv6-address-elements (socket-address-data/ipv6-address data)) (socket-address-data/ipv6-port data) - (ipv6-address-elements (socket-address-data/ipv6-address data)) (socket-address-data/ipv6-scope-id data))) (import-lambda-definition-2 external-make-sockaddr-in6-raw (addr port scope-id) @@ -259,8 +259,8 @@ (vector-ref raw 2))) ((inet6) (make-socket-address-data/ipv6 + (make-ipv6-address (vector-ref raw 3)) (vector-ref raw 2) - (make-ipv6-address (vector-ref raw 3)) (vector-ref raw 4))) ((unix) (make-socket-address-data/unix -- FSF associate member #7257