Hello,

In file byterange.py class ftpwrapper, urlgrabber use REST command and check return code to find out if the command is supported :
----
except ftplib.error_perm, reason:
    if str(reason)[:3] == '501':
        # workaround for REST not supported error
        fp, retrlen = self.retrfile(file, type)
        fp = RangeableFileObject(fp, (rest,''))
        return (fp, retrlen)
    elif str(reason)[:3] != '550':
        raise IOError, ('ftp error', reason), sys.exc_info()[2]
----

But the RFC 640 (http://www.faqs.org/rfcs/rfc640.html) gives 500, 501, 502, 421, 530 & 350 as possible return code. In these, the first three 50x may apply for an unsupported/disabled REST command :
- 500  Syntax error, command unrecognized
       [This may include errors such as command line too
       long.]
- 501  Syntax error in parameters or arguments
- 502  Command not implemented

As far as I am concerned, I would accept any 50x result to use REST-less download :
----
       5yz   Permanent Negative Completion reply

          The command was not accepted and the requested action did
          not take place.  The User-process is discouraged from
          repeating the exact request (in the same sequence).  Even
          some "permanent" error conditions can be corrected, so the
          human user may want to direct his User-process to
          reinitiate the command sequence by direct action at some
          point in the future (e.g. after the spelling has been
          changed, or the user has altered his directory status.)
----
       x0z   Syntax - These replies refer to syntax errors,
          syntactically correct  commands that don't fit any
          functional category, unimplemented or superfluous
          commands.
----

François
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel

Reply via email to