Change socket code to accept numeric service numbers.
authorChris Hanson <org/chris-hanson/cph>
Wed, 10 Jun 1992 21:10:44 +0000 (21:10 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 10 Jun 1992 21:10:44 +0000 (21:10 +0000)
v7/src/runtime/socket.scm

index 1efa02b0f89ff3c591509afb0e78dbb946181319..2e08385ff12d3e624d5579c05333c93f17b1dc35 100644 (file)
@@ -1,8 +1,8 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/socket.scm,v 1.3 1991/11/15 05:15:24 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/socket.scm,v 1.4 1992/06/10 21:10:44 cph Exp $
 
-Copyright (c) 1990 Massachusetts Institute of Technology
+Copyright (c) 1990-92 Massachusetts Institute of Technology
 
 This material was developed by the Scheme project at the Massachusetts
 Institute of Technology, Department of Electrical Engineering and
@@ -40,7 +40,7 @@ MIT in each case. |#
 (define (open-tcp-stream-socket host-name service)
   (socket-ports
    (let ((host (vector-ref ((ucode-primitive get-host-by-name 1) host-name) 0))
-        (port ((ucode-primitive get-service-by-name 2) service "tcp")))
+        (port (tcp-service->port service)))
      (without-interrupts
       (lambda ()
        (make-channel
@@ -61,7 +61,12 @@ MIT in each case. |#
    (lambda ()
      (make-channel
       ((ucode-primitive open-tcp-server-socket 1)
-       ((ucode-primitive get-service-by-name 2) service "tcp"))))))
+       (tcp-service->port service))))))
+
+(define (tcp-service->port service)
+  (if (exact-nonnegative-integer? service)
+      service
+      ((ucode-primitive get-service-by-name 2) service "tcp")))
 
 (define (close-tcp-server-socket server-socket)
   (channel-close server-socket))