Update of /cvsroot/scsh/scsh-0.6/scsh
In directory usw-pr-cvs1:/tmp/cvs-serv4766
Modified Files:
network.scm network1.c
Log Message:
Switched back to integers as internet-host-addresses.
Index: network.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/network.scm,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** network.scm 2001/01/01 17:34:08 1.14
--- network.scm 2001/04/02 14:57:25 1.15
***************
*** 2,5 ****
--- 2,6 ----
;;; Copyright (c) 1994-1995 by Brian D. Carlstrom.
;;; Copyright (c) 1994 by Olin Shivers.
+ ;;; See file COPYING.
;;; Scheme48 implementation.
***************
*** 22,43 ****
"" )
- (define (byte-vector->integer bv)
- (let ((number (byte-vector-ref bv 0)))
- (set! number (bitwise-ior number (arithmetic-shift (byte-vector-ref bv 1)
- 8)))
- (set! number (bitwise-ior number (arithmetic-shift (byte-vector-ref bv 2)
- 16)))
- (bitwise-ior number (arithmetic-shift (byte-vector-ref bv 3)
- 24))))
-
- (define (integer->byte-vector number)
- (let ((bv (make-byte-vector 4 0)))
- (byte-vector-set! bv 0 (bitwise-and number #xff))
- (byte-vector-set! bv 1 (bitwise-and (arithmetic-shift number -8) #xff))
- (byte-vector-set! bv 2 (bitwise-and (arithmetic-shift number -16) #xff))
- (byte-vector-set! bv 3 (bitwise-and (arithmetic-shift number -24) #xff))
- bv))
-
-
;;;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
;;; High Level Prototypes
--- 23,26 ----
***************
*** 74,80 ****
(lambda () #f)
(lambda () (connect-socket sock addr) (set! connected #t))
! (lambda () #f
! ;(if (not connected)
! ; (close-socket sock))
))
(if connected
--- 57,63 ----
(lambda () #f)
(lambda () (connect-socket sock addr) (set! connected #t))
! (lambda ()
! (if (not connected)
! (close-socket sock))
))
(if connected
***************
*** 130,172 ****
;;; Socket Address Routines
;;;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- (define (internet-host-address-from-number address32)
- (integer->byte-vector address32))
-
- (define (internet-host-address-from-bytes b4 b3 b2 b1)
- (let ((bv (make-byte-vector 4 0)))
- (byte-vector-set! bv 0 b1)
- (byte-vector-set! bv 1 b2)
- (byte-vector-set! bv 2 b3)
- (byte-vector-set! bv 3 b4)
- bv))
-
- (define (internet-host-address-to-bytes address)
- (list (byte-vector-ref address 3)
- (byte-vector-ref address 2)
- (byte-vector-ref address 1)
- (byte-vector-ref address 0)))
-
- ;;; This proc and its inverse should be in a general IP module.
- (define (internet-host-address->dotted-string bv)
- (let* ((byte0 (byte-vector-ref bv 0))
- (byte1 (byte-vector-ref bv 1))
- (byte2 (byte-vector-ref bv 2))
- (byte3 (byte-vector-ref bv 3)))
- (string-append (number->string byte3) "." (number->string byte2) "."
- (number->string byte1) "." (number->string byte0))))
-
- (define (internet-host-address-to-number address)
- (byte-vector->integer address))
-
- (set! internet-address/any
- (internet-host-address-from-number internet-address/any ))
- (set! internet-address/loopback
- (internet-host-address-from-number internet-address/loopback ))
- (set! internet-address/broadcast
- (internet-host-address-from-number internet-address/broadcast ))
-
(define (internet-address->socket-address address32 port16)
! (cond ((not (and (byte-vector? address32)
! (= (byte-vector-length address32) 4)))
(error "internet-address->socket-address: address out of range ~s"
address32))
--- 113,118 ----
;;; Socket Address Routines
;;;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
(define (internet-address->socket-address address32 port16)
! (cond ((not (<= 0 address32 #xffffffff))
(error "internet-address->socket-address: address out of range ~s"
address32))
***************
*** 761,766 ****
(define (address->network-info addr)
! (if (not (byte-vector? addr))
! (error "address->network-info: byte-vector expected ~s" addr)
(%net-address->network-info addr)))
--- 707,712 ----
(define (address->network-info addr)
! (if (not (integer? addr))
! (error "address->network-info: integer expected ~s" addr)
(%net-address->network-info addr)))
Index: network1.c
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/network1.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -r1.17 -r1.18
*** network1.c 2001/01/01 17:34:08 1.17
--- network1.c 2001/04/02 14:57:25 1.18
***************
*** 28,50 ****
#define SET_LONG(x,n,v) GET_LONG((x),(n))=(u_long)(v);
- s48_value long2byte_vector (u_long number)
- {
- s48_value bv = s48_make_byte_vector (4, 0);
- S48_BYTE_VECTOR_SET(bv, 0, number & 0xff);
- S48_BYTE_VECTOR_SET(bv, 1, (number >> 8) & 0xff);
- S48_BYTE_VECTOR_SET(bv, 2, (number >> 16) & 0xff);
- S48_BYTE_VECTOR_SET(bv, 3, (number >> 24) & 0xff);
- return bv;
- }
-
- u_long byte_vector2long (s48_value bv)
- {
- u_long number = (u_char) S48_BYTE_VECTOR_REF (bv, 0);
- number |= (((u_char) S48_BYTE_VECTOR_REF (bv, 1)) << 8);
- number |= (((u_char) S48_BYTE_VECTOR_REF (bv, 2)) << 16);
- number |= (((u_char) S48_BYTE_VECTOR_REF (bv, 3)) << 24);
- return number;
- }
-
/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
s48_value scheme_bind(s48_value sock, s48_value family, s48_value scheme_name)
--- 28,31 ----
***************
*** 73,77 ****
struct sockaddr_in name;
! u_long addr = htonl(byte_vector2long (S48_CAR (scheme_name)));
u_short port = htons(s48_extract_fixnum (S48_CDR (scheme_name)));
--- 54,58 ----
struct sockaddr_in name;
! u_long addr = htonl(s48_extract_unsigned_integer (S48_CAR
(scheme_name)));
u_short port = htons(s48_extract_fixnum (S48_CDR (scheme_name)));
***************
*** 128,132 ****
struct sockaddr_in name;
! u_long addr= htonl(byte_vector2long (S48_CAR (scheme_name)));
u_short port= htons(s48_extract_fixnum (S48_CDR (scheme_name)));
--- 109,113 ----
struct sockaddr_in name;
! u_long addr= htonl(s48_extract_unsigned_integer (S48_CAR
(scheme_name)));
u_short port= htons(s48_extract_fixnum (S48_CDR (scheme_name)));
***************
*** 199,203 ****
fcntl(newsockfd, F_SETFL, O_NONBLOCK);
S48_GC_PROTECT_2 (result, sock_addr);
! sock_addr = long2byte_vector (ntohl(name.sin_addr.s_addr));
result = s48_cons (sock_addr, s48_enter_fixnum (ntohs(name.sin_port)));
--- 180,184 ----
fcntl(newsockfd, F_SETFL, O_NONBLOCK);
S48_GC_PROTECT_2 (result, sock_addr);
! sock_addr = s48_enter_unsigned_integer (ntohl(name.sin_addr.s_addr));
result = s48_cons (sock_addr, s48_enter_fixnum (ntohs(name.sin_port)));
***************
*** 219,223 ****
S48_DECLARE_GC_PROTECT(2);
S48_GC_PROTECT_2 (result, sock_addr);
! sock_addr = long2byte_vector (ntohl (net_s_addr));
result = s48_cons (sock_addr, s48_enter_fixnum (ntohs (net_s_port)));
--- 200,204 ----
S48_DECLARE_GC_PROTECT(2);
S48_GC_PROTECT_2 (result, sock_addr);
! sock_addr = s48_enter_unsigned_integer (ntohl (net_s_addr));
result = s48_cons (sock_addr, s48_enter_fixnum (ntohs (net_s_port)));
***************
*** 358,362 ****
{
struct sockaddr_in name;
! u_long addr = htonl (byte_vector2long (S48_CAR (scheme_name)));
u_short port = htons(s48_extract_fixnum (S48_CDR (scheme_name)));
name.sin_family=AF_INET;
--- 339,343 ----
{
struct sockaddr_in name;
! u_long addr = htonl (s48_extract_unsigned_integer (S48_CAR
(scheme_name)));
u_short port = htons(s48_extract_fixnum (S48_CDR (scheme_name)));
name.sin_family=AF_INET;
***************
*** 542,546 ****
{
list =
! s48_cons (long2byte_vector (ntohl (*(long *)(host->h_addr_list[i]))),
list);
ptr++;
--- 523,527 ----
{
list =
! s48_cons (s48_enter_unsigned_integer (ntohl (*(long
*)(host->h_addr_list[i]))),
list);
ptr++;
***************
*** 559,563 ****
struct hostent *host;
! u_long addr = htonl(byte_vector2long (S48_CAR (addr_port)));
name.s_addr = addr;
--- 540,544 ----
struct hostent *host;
! u_long addr = htonl(s48_extract_unsigned_integer (S48_CAR (addr_port)));
name.s_addr = addr;
***************
*** 618,622 ****
S48_RECORD_SET (network_info, 1, list);
! S48_RECORD_SET (network_info, 2, long2byte_vector (net->n_net));
S48_GC_UNPROTECT ();
--- 599,603 ----
S48_RECORD_SET (network_info, 1, list);
! S48_RECORD_SET (network_info, 2, s48_enter_unsigned_integer
(net->n_net));
S48_GC_UNPROTECT ();
***************
*** 629,633 ****
struct netent *net;
// expects host byte order :
! net=getnetbyaddr(byte_vector2long (net_addr),AF_INET);
return netent2net_info (net);
--- 610,614 ----
struct netent *net;
// expects host byte order :
! net=getnetbyaddr(s48_extract_unsigned_integer (net_addr),AF_INET);
return netent2net_info (net);
|