Scott, I do not see where, after the sub-port
has been closed that it is attempted to be used.
Can you point it out, please?
It looks to me like data-connect would reconnect
the sub-port before it is used again.

Anton.

> Carl Read wrote:
> > Grrrr!
> 
> Grrrr is right!
> 
> You were correct in that the error occurs in the parse-dir-list 
> function in the 
> ftp protocol.  The code closes the "port/sub-port" and then tries 
> to use that 
> port/sub-port specification.  Whoops!
> 
> The corrected function is as follows (as usual watch for line wraps):
> 
> parse-dir-list: func [] [
>     all [not passive not proxy listen-port port/sub-port: first 
> listen-port] 
>     if all [not passive proxy listen-port] [
>         net-utils/accept-proxy port/sub-port
>     ] 
>     temp: 'list 
>     file-list: make string! 2000 
>     while [line: system/words/pick port/sub-port 1] [append 
> file-list join 
> line "^/"] 
>     net-utils/confirm/multiline port/locals/cmd-port transfer-check 
>     if empty? file-list [
>         data-connect 
>         port/locals/dir-cache: system/words/copy [] 
>         insert port/locals/cmd-port "NLST" 
>         if (first system/words/pick port/locals/cmd-port 1) <> #"5" [
>             while [line: system/words/pick port/sub-port 1] [
>             append file-list join line "^/"
>         ] 
>         temp: 'nlist 
>         net-utils/confirm/multiline port/locals/cmd-port transfer-check
>     ]
>     system/words/close port/sub-port 
>     port/locals/dir-cache: parse-files file-list temp 
>     foreach temp [%./ %../] [
>         if loc: find port/locals/dir-cache temp [loop 2 
> [system/words/remove 
> loc]]
>     ] 
>     port/state/tail: length? port/locals/dir-cache
> ]
> 
> My bindology skills are rusty at best, so perhaps a bindologist 
> would be so 
> kind as to create a patch for this.  The way I do it, when I 
> forget bindology 
> (which is usually within two days of learning it), is to print 
> the network 
> scheme to disk, patch the scheme and then read it back in.
> 
> One way to do this is to:
> 
> 1) at a console prompt:
>     type "echo %/path-to-file/ftp-scheme.txt"
>     type "probe system/schemes/ftp"
>     type "quit"
> 2) open the ftp-scheme.txt file and change the opening to read:
>   system/schemes/ftp: make object! [
>     scheme: 'FTP
>     host: none ...
> 3) replace the parse-dir-list function
> 4) clean the ">> " from the end of the file and save.
> 5) this file may be then pasted into a console or "do" the file 
> (adding a rebol 
> header)
> 
> I look forward to seeing the "bind" version of the patch (I don't 
> have time to 
> refigure out the bind command again).
> 
> Hope that helps!
> 
> --Scott Jones

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to