Note it does at least one thing wrong (besides what's noted in PLT's
documentation):
> (dns-get-address "macon" "ftp.uni-tuebingen.de")
"8.115.111.102"
(The original version also does this. I assume it has something to do
with recursive queries.)
a default netrc-record:
* the specified file does not exist
* the file does exist but does not have the correct permissions
In both cases a warning is printed on (current-error-port)
So, netrc:parse always returns a usable record.
If you want to catch the errors use netrc:try-parse
- changes to make Eric's code fit our desires:
. functional concept (netrc:parse returns a record that has to be carried with)
. usual errors (no such file, no such machine) are caught and handled adequately
(nevertheless the user can get the errors, if he wants to)
. netrc:parse works when no ~/.netrc file exists
. default-values (file-name, login, password) can be set while
calling netrc:parse
. netrc:lookup, netrc:lookup-password, netrc:lookup-login return
default-values by default (can be switched off)
- removed bug in netrc:lookup
* in modules.scm:
new export in netrc-interface: netrc:try-parse (returns error if
file does not exist)
* in ecm-utilities:
rewrote nslookup-fqdn: uses host-info now
* Added further features from Eric Marsden:
* ftp.scm -- a module for transfering files using the FTP protocol
* pop3.scm -- a module for accessing a maildrop using the POP3
protocol
* netrc.scm -- a module for parsing users' ~/.netrc files to
obtain authentication information
* nettime.scm -- a module for obtaining the time from remote
machines, using either the Time (rfc868) or the NetTime (rfc867)
protocols.
Unfortunetaly,
pop3.scm needs further revision because of undefined procedures and
netrc.scm needs further revision.
Nevertheless they were added because, beside the problems, they fit
scsh 0.6.
explicitly named every interface
moved TOOTHLESS.SCM to MODULES.SCM
removed macros from CONDITIONALS.SCM (UNLESS, WHEN, ?, SWITCH, SWITCHQ)
thereby removed conditionals.scm and the modules SWITCH-SYNTAX and CONDHAX.
changes concerning CONNECTIONS and the PUT (STOR) command are logged as NOTICE
GET (RETR) command and all other commands are logged as INFO
every thing else is logged as DEBUG
internal errors, unix errors and the reaching of unreachable case-branches are logged as NOTICE
success (as long as interesting) and failure of commands are logged as INFO
the debug messages are to used in cooperation with the other levels, so if you want to do debugging, let all messages be put in one file.
* trim-spaces doesn't throw exception on emtpy strings any more
* spawn-thunk in FTPD moved to new procedure
* always catching SOCKET->STRING errors
* log-calls don't produce extra calculations anymore
* consequently logging reply codes
: ----------------------------------------------------------------------
Previously, it tried to write a final reply even into a socket which
had been shut down from the other end. This would terminate the
connection thread and prevent a regular close.
So we introduce an IRREGULAR-QUIT condition for this purpose and guard against EOF better.
Also, revert to not using INTERNET-HOST-ADDRESS-TO-BYTES.