Try to stick to specification of NETRC:PARSE: always return a netrc-record.
This commit is contained in:
parent
e961d4f595
commit
9d496f8d6f
51
netrc.scm
51
netrc.scm
|
@ -1,6 +1,6 @@
|
|||
;;; netrc.scm -- parse authentication information contained in ~/.netrc
|
||||
;;
|
||||
;; $Id: netrc.scm,v 1.6 2002/04/04 22:39:15 interp Exp $
|
||||
;; $Id: netrc.scm,v 1.7 2002/04/04 23:22:28 interp Exp $
|
||||
;;
|
||||
;; Please send suggestions and bug reports to <emarsden@mail.dotcom.fr>
|
||||
|
||||
|
@ -228,33 +228,44 @@
|
|||
(with-handler
|
||||
(lambda (error more)
|
||||
(if (netrc-refuse? error)
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
"netrc: Warning: ~a~%"
|
||||
(car (condition-stuff error)))
|
||||
(exit (local-default-netrc-record)))))
|
||||
(format (current-error-port)
|
||||
"netrc: Warning: ~a~%"
|
||||
(car (condition-stuff error)))
|
||||
(format (current-error-port)
|
||||
"netrc: Warning: Unexpected error encountered: ~s~%"
|
||||
error))
|
||||
(exit (local-default-netrc-record)))
|
||||
(lambda ()
|
||||
(with-errno-handler*
|
||||
(lambda (errno packet)
|
||||
(if (= errno errno/noent)
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
"netrc: Warning: no such file or directory: ~a~%"
|
||||
file-name)
|
||||
(exit (local-default-netrc-record)))))
|
||||
(format (current-error-port)
|
||||
"netrc: Warning: no such file or directory: ~a~%"
|
||||
file-name)
|
||||
(format (current-error-port)
|
||||
"netrc: Warning: Error accessing file ~s~%"
|
||||
file-name))
|
||||
(exit (local-default-netrc-record)))
|
||||
(lambda ()
|
||||
(let ((netrc-record
|
||||
(netrc:try-parse file-name default-password default-login)))
|
||||
(if netrc-record
|
||||
netrc-record
|
||||
; If we get a netrc-record, we return it after
|
||||
; checking default login and default password settings.
|
||||
; Otherwise, we return the default record with
|
||||
; file-name stored.
|
||||
; This is sub-optimal, as we may throw away badly
|
||||
; structured .netrc-files silently. We need an error
|
||||
; checking mechanism.
|
||||
(if (netrc? netrc-record)
|
||||
(begin
|
||||
(set-netrc:default-password
|
||||
netrc-record
|
||||
(or default-password (local-default-password)))
|
||||
(set-netrc:default-login
|
||||
netrc-record
|
||||
(or default-login (local-default-login)))
|
||||
netrc-record))))))))))))
|
||||
(if (eq? (netrc:default-login netrc-record) #f)
|
||||
(set-netrc:default-login (local-default-login)))
|
||||
(if (eq? (netrc:default-password netrc-record) #f)
|
||||
(set-netrc:default-password (local-default-password)))
|
||||
netrc-record)
|
||||
(let ((default-netrc-record (local-default-netrc-record)))
|
||||
(set-netrc:file-name default-netrc-record file-name)
|
||||
default-netrc-record))))))))))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; nothing exported below
|
||||
|
|
Loading…
Reference in New Issue