Article delegate-en/4889 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:<_A4888@delegate-en.ML_>]
Newsgroups: mail-lists.delegate-en

[DeleGate-En] Re: EPSV support in DeleGate
23 Aug 2010 14:41:02 GMT feedback@delegate.org (Yutaka Sato)
The DeleGate Project


Hi,

In message <AANLkTimynQmktR0V6s=7DQ2Zc9tb2v64W62BLc=Hdp1H@mail.gmail.com> on 08/23/10(20:15:46)
you James <pbeiqbdyi-6rjyzcptr43r.ml@ml.delegate.org> wrote:
 |I have an issue with the following setup
 |
 |client -> ftp -> DeleGate -> ftps -> Origin Server
 |
 |The Origin Server is behind a NAT router and the server does support
 |EPSV.however Delegate doesn't seem to negotiate it.
 |The PASV negotaition results in Delegate trying to connect to the
 |RFC1918 address of the server rather
 |than the public ip address.  Is there anyway to force Delegate to
 |negotiate EPSV ?
 |
 |I noticed the doepsv option  to FTPCONF but I am not entirely sure how
 |it works ?  Is it designed for this scenario ?

It will be realized with the enclosed patch enabled with an option:

  FTPCONF=doepsv:sv

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

*** dist/src/delegate9.9.8-pre12/src/ftp.c	Sun Jun 13 21:03:52 2010
--- ./src/ftp.c	Mon Aug 23 23:33:03 2010
***************
*** 72,77 ****
--- 72,78 ----
  	int	fc_noxdcSV;	/* don't use XDC with server */
  	int	fc_noxdcCL;
  	int	fc_doepsvCL;
+ 	int	fc_doepsvSV;	/* do EPSV with server */
  	int	fc_noepsvCL;
  	int	fc_nopasvSV;	/* don't use PASV with server */
  	int	fc_nopasvCL;
***************
*** 391,396 ****
--- 392,398 ----
  	}else
  	if( strcaseeq(what,"DOEPSV") ){
  		if( *val == 0 || strcaseeq(val,"cl") ) FCF.fc_doepsvCL = 1;
+ 		if( *val == 0 || strcaseeq(val,"sv") ) FCF.fc_doepsvSV = 1;
  	}else
  	if( strcaseeq(what,"NOEPSV") ){
  		if( *val == 0 || strcaseeq(val,"cl") ) FCF.fc_noepsvCL = 1;
***************
*** 3645,3650 ****
--- 3647,3655 ----
  	int psock;
  	int timeout,stimeout;
  
+ 	if( FCF.fc_doepsvSV ){
+ 		put_serv(0,ts,"EPSV\r\n");
+ 	}else
  	if( sock_isv6(ServSock(Conn,ts,"mkPASV")) ){
  		put_serv(0,ts,"EPSV\r\n");
  	}else

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