aboutsummaryrefslogtreecommitdiff
path: root/guix/ftp-client.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/ftp-client.scm')
-rw-r--r--guix/ftp-client.scm7
1 files changed, 6 insertions, 1 deletions
diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm
index 761980ac8f..ab72405df0 100644
--- a/guix/ftp-client.scm
+++ b/guix/ftp-client.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2010, 2011, 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -144,6 +144,11 @@ or a TCP port number), and return it."
(define (ftp-size conn file)
"Return the size in bytes of FILE."
+
+ ;; Ask for "binary mode", otherwise some servers, such as sourceware.org,
+ ;; fail with 550 ("SIZE not allowed in ASCII mode").
+ (%ftp-command "TYPE I" 200 (ftp-connection-socket conn))
+
(let ((message (%ftp-command (string-append "SIZE " file) 213
(ftp-connection-socket conn))))
(string->number (string-trim-both message))))