Article delegate-en/3381 of [1-5169] on the server localhost:119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A3378@delegate-en.ML_>]
Newsgroups: mail-lists.delegate-en

[DeleGate-En] Re: Constructing a virtual origin FTP server fails on symlinks crossing "MOUNT=" points
11 Jul 2006 15:40:42 GMT feedback@delegate.org (Yutaka Sato)
The DeleGate Project


Hi,

In message <_A3378@delegate-en.ML_> on 07/11/06(19:49:27) I wrote:
...
 |Your case might include multiple problems.  At least I found that
 |a problem can be reproduced as this:
...

I uploaded the fixed version as 9.2.3-pre12 at
ftp://ftp.delegate.org/pub/DeleGate/alpha/

pre12 includes another fix, which seems not relevant with your case.
It can be reproduced as this:

  % delegated -v -P9999 SERVER=ftp MOUNT="/pub/* file:/*"

and inputs to this DeleGate:

  USER ftp
  PASS test
  MLST //server
  CWD //server
  CWD pub        ... it should be at "ftp://server/pub/" but "file:/"
  MLST
  QUIT

When a FTP server is switched with non-CWD command, as "MLST //server"
above, the virtual CWD for the client is not be changed to make
relative pathes in the next commands be interpreted correcly.
But after a CWD (into the server) is done, the virtual CWD should be
changed to point the directory in the server.
This fix is done as this.

*** 5808,5813 ****
--- 5871,5882 ----
  		if( path == NULL || path[0] == 0 || strcmp(path,"/") == 0 ){
  			fputs(resp,tc);
  			fflush(tc);
+ 			if( (ClientFlags & PF_AS_PROXY) == 0 ){
+ 				ClientFlags |= PF_AS_PROXY;
+ 			}
  			continue;
  		}
  		if( path[0] == '/' )


Cheers,
Yutaka
--
  9 9   Yutaka Sato <y.sato@delegate.org> http://delegate.org/y.sato/
 ( ~ )  National Institute of Advanced Industrial Science and Technology
_<   >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan
Do the more with the less -- B. Fuller

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V