[prev in list] [next in list] [prev in thread] [next in thread]
List: kfm-devel
Subject: Re: KFM and PASV uploading
From: David Faure <faure () alpha ! tat ! physik ! uni-tuebingen ! de>
Date: 1999-05-26 20:01:49
[Download RAW message or body]
On Wed, May 26, 1999 at 12:16:35PM -0700, Gordon Messmer wrote:
> Greets, list members
>
> When Red Hat 6.0 was released (and during the starbuck pre-release
> series) I got a chance to evaluate the new release and the KDE rpms it
> contained. KFM had problems uploading files, and continued to do so
> after I updated to the 1.1.1 release.
Yes.
> I browsed the archived messages from this list and found that Dave Faure
My name is David ;)
> suggested
> #defining DONT_TRY_PASV in one of the header files. Sho' nuff kfm
^^^^^^^^^
??
> resumed it's normal operation. If it's relevant, the ftp server I was
> trying to send files to was wu-ftpd-2.4.2vr17-3.
>
> I originally tried to email Dave directly, but that didn't work, so I've
Don't get fooled by alpha.tat.... buggy headers. faure@kde.org is the answer ;)
> joined the list. If I can help you debug this, let me know, eh?
It has been solved already.
The fix is in CVS.
Patch attached, if you have 1.1.1 sources at hand.
--
David FAURE
david.faure@insa-lyon.fr, faure@kde.org
http://www.insa-lyon.fr/People/AEDI/dfaure/index.html
KDE, Making The Future of Computing Available Today
["ftp.cpp.diff" (text/plain)]
Index: ftp.cpp
===================================================================
RCS file: /home/kde/kdebase/kfm/kioslave/ftp.cpp,v
retrieving revision 1.21.4.4
retrieving revision 1.21.4.6
diff -u -p -r1.21.4.4 -r1.21.4.6
--- ftp.cpp 1999/04/06 14:37:47 1.21.4.4
+++ ftp.cpp 1999/05/20 18:50:43 1.21.4.6
@@ -349,7 +349,7 @@ int KProtocolFTP::ftpPasv(void)
struct sockaddr sa;
struct sockaddr_in in;
} sin;
- struct linger lng = { 0, 0 };
+ struct linger lng = { 1, 120 };
pasv=1;
if (sDatal != -1)
@@ -400,6 +400,8 @@ int KProtocolFTP::ftpPasv(void)
return 0;
}
+ if (setsockopt(sDatal, SOL_SOCKET, SO_KEEPALIVE, (char *) &on, (int) sizeof(on)) < 0)
+ perror("Keepalive not allowed.");
if (setsockopt(sDatal, SOL_SOCKET,SO_LINGER, (char *) &lng,(int) sizeof (lng)) < 0)
perror("Linger mode was not allowed.");
return 1;
@@ -460,14 +462,14 @@ int KProtocolFTP::ftpMkdir( const char *
FD_ZERO(&mask);
FD_SET(sDatal,&mask);
+ if (pasv == 1)
+ {
+ return sDatal;
+ }
if (select( sDatal + 1, &mask,NULL,NULL, 0L) == 0)
{
close(sDatal);
return -2;
- }
- if (pasv == 1)
- {
- return sDatal;
}
l = sizeof(addr);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic