From 862d2479f686abaa4d1881ad6eafb689bec157e8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 22 Nov 2015 14:35:28 +0100 Subject: ftp-client: Default port for 'ftp-open' is now "ftp". * guix/ftp-client.scm (ftp-open): Change default #:port to "ftp". * guix/scripts/lint.scm (probe-uri): Remove 'port' parameter to 'ftp-open'. --- guix/ftp-client.scm | 9 ++++++--- guix/scripts/lint.scm | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'guix') diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm index a6a54a4d9c..22d4c7dde2 100644 --- a/guix/ftp-client.scm +++ b/guix/ftp-client.scm @@ -121,15 +121,18 @@ seconds to wait for the connection to succeed." (raise-error errno))))) (connect s sockaddr))) -(define* (ftp-open host #:optional (port 21) #:key timeout) +(define* (ftp-open host #:optional (port "ftp") #:key timeout) "Open an FTP connection to HOST on PORT (a service-identifying string, or a TCP port number), and return it. When TIMEOUT is not #f, it must be a (possibly inexact) number denoting the maximum duration in seconds to wait for the connection to complete; passed TIMEOUT, an ETIMEDOUT error is raised." - ;; Use 21 as the default PORT instead of "ftp", to avoid depending on - ;; libc's NSS, which is not available during bootstrap. + ;; Using "ftp" for PORT instead of 21 allows 'getaddrinfo' to return only + ;; TCP/IP addresses (otherwise it would return SOCK_DGRAM and SOCK_RAW + ;; addresses as well.) With our bootstrap Guile, which includes a + ;; statically-linked NSS, resolving "ftp" works well, as long as + ;; /etc/services is available. (define addresses (getaddrinfo host diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index a7618ee286..034f0f95ee 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -316,7 +316,7 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed." ('ftp (catch #t (lambda () - (let ((conn (ftp-open (uri-host uri) 21 #:timeout timeout))) + (let ((conn (ftp-open (uri-host uri) #:timeout timeout))) (define response (dynamic-wind (const #f) -- cgit v1.2.3