Hi Emmanuel, In message <_A3630@delegate-en.ML_> on 02/10/07(18:38:03) you Emmanuel Bailleul <pfyhabdyi-mxhgu427z33w.ml@delegate.org> wrote: |I have been testing delegate as a ftp proxy recently without a problem, |until someone reported me a problem regarding a ftp site that is using a |username containing a "/" (slash). |After doing some tracing, I found that delegate did not send the right |part of the username (after the /) to the destination ftp server. |However, I found this article : |http://www.delegate.org/mail-lists/delegate-en/01899 which said this was |patch in recent versions of delegate. I even was able to confirm this |patch was applied in latest version which I'm using (9.3.2), but that |does not seem to do the trick. Hmm... It seems that I disabled it in 8.6.0 when I added a feature to send ACCT command in 8.6.0, and added the stab MOUNT in 9.2.2. I'll fix it as the enclosed patch in 9.4.4 which will be released tomorrow. Cheers, Yutaka -- 9 9 Yutaka Sato <pfqcabdyi-mxhgu427z33w.ml@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 diff -cr delegate9.4.4-pre2/src/ftp.c delegate9.4.4/src/ftp.c *** delegate9.4.4-pre2/src/ftp.c Wed Feb 7 15:40:34 2007 --- delegate9.4.4/src/ftp.c Sun Feb 11 23:59:03 2007 *************** *** 2680,2687 **** --- 2680,2689 ---- if( Mounted() ) /* if mounted */{ if( strcasecmp(com,"USER") == 0 && strchr(arg,'@') ){ + url_escapeX(arg,AVStr(arg),sizeof(arg),"/?",":@"); port = decomp_ftpsite(FS,AVStr(arg),&ident); wordScan(ident.i_user,cuser); + nonxalpha_unescape(cuser,AVStr(cuser),1); textScan(ident.i_pass,cpass); wordScan(ident.i_Host,host); if( *host && *cuser ){ *************** *** 5168,5174 **** --- 5170,5179 ---- if( xuser[0] == 0 ) xuser = pFC->fc_user; + /* if( strpbrk(xuser,"~/") ){ + */ + if( strpbrk(xuser,"~") ){ scan_namebody(xuser,AVStr(user),sizeof(user),"~/", AVStr(FS->fs_acct),sizeof(FS->fs_acct),""); sv1log("##ACCT got[%s] USER[%s]\n",FS->fs_acct,xuser);