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

[DeleGate-En] Re: DeleGate/9.5.3 (STABLE) -- minor fixes for JP char. conv., recv. via slow line
22 Mar 2007 19:31:22 GMT feedback@delegate.org (Yutaka Sato)
The DeleGate Project


Hi Stefano,

In message <_A3669@delegate-en.ML_> on 03/22/07(20:14:54)
you Stefano Mason <pw4eabdyi-dyd2yvgdwvxr.ml@ml.delegate.org> wrote:
 |   I found a possible bug.
 |Free from this bug: 9.1.1
 |9.1.2  to 9.5.0 no check
 |Affected: 9.5.1 - 9.5.2 - 9.5.3
 |Landscape:
 |Delegate configured for a FTP proxy in cascade mode:
 |
 |/firewall/# delegated -P21 SERVER=ftp PERMIT="ftp:*:/internal/"
 |/internal/# delegated -P21 SERVER=ftp PROXY=/firewall/:21
...
 |03/22 11:44:25.08 [8807] 2+0/12/9: FTP-CACHE: STOR [SkypeSetup.exe] = [][]:0
 |03/22 11:44:25.08 [8807] 2+0/12/9: -- PASVserv to XDCclnt
 |03/22 11:44:25.08 [8807] 2+0/12/9: --- XDC data_relay SERVER (STOR).
 |03/22 11:44:25.15 [8807] 2+0/12/9: relayABORT[1 0 1]: recvPeek: 0.000 
 |pcc=31 [32 59 46 A 4D 44 42 6D 70 00 00 00 00 XA 4C 41 71 6F 74 39 2B
 |41 4E 39 43 48 6B 48 4D 63 44]

I've thought the problem was fixed in 9.2.5 but not.
You can escape the problem in existing versions with a option as follows:

  FTPCONF=noxdc

or you can fix it with the enclosed patch (to be applied to the next release).

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


*** /Users/yutaka/dist/src/delegate9.6.0-pre3/src/ftp.c	Tue Feb 27 16:49:38 2007
--- src/ftp.c	Fri Mar 23 04:23:12 2007
***************
*** 3283,3286 ****
--- 3283,3287 ----
  	FtpStat    *a_FS;
  	FILE       *a_dfs;  /* data file source */
+ 	FILE	   *a_fc;   /* from client */
  	FILE	   *a_fs;   /* from server */
  	FILE	   *a_tc;   /* to client */
***************
*** 3312,3315 ****
--- 3313,3317 ----
  			Ra.a_FS = 0;
  			Ra.a_dfs = fs;
+ 			Ra.a_fc = 0;
  			Ra.a_fs = fs;
  			Ra.a_tc = 0;
***************
*** 3386,3389 ****
--- 3388,3394 ----
  		/* XDC + STOR ... no ABOR */
  	}else
+ 	if( Ra->a_fc == Ra->a_dfs ){
+ 		/* XDC + STOR ... no ABOR */
+ 	}else
  	if( inputReady(ClientSock,NULL) ){
  		if( Ra->a_FS != NULL ){
***************
*** 3460,3463 ****
--- 3465,3469 ----
  		*/
  		Ra.a_dfs = fc;
+ 		Ra.a_fc = fc;
  		Ra.a_tc = tc;
  		xc = getMessageFX(fc,cachefp,timeout,relay1,dfp,(char*)&Ra,encode);
***************
*** 3556,3559 ****
--- 3562,3566 ----
  		Ra.a_FS = FS;
  		Ra.a_dfs = fs;
+ 		Ra.a_fc = fc;
  		Ra.a_fs = fs;
  		Ra.a_tc = tc;

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