Re: [Ssh-sftp-perl-users] Getting SETSTAT failures from sftp-put SOLVED
Brought to you by:
dbrobins
From: Bob G. <sta...@ga...> - 2010-07-21 14:43:24
|
Salva, Everything I'd previously read suggested using Compat so the local implementation of OpenSSH would be used instead of the perl-implementation. The logic being that OpenSSH is more rigorously kept patched with security updates. Your suggested change to the 'new' and 'put' arguments does indeed seem to work on the new host and seems to work just fine with all the others as well. Thank you very very much. -- Bob Si vis pacem, para bellum Salva wrote: > You will have to switch to the real thing and use Net::SFTP::Foreign in order to > solve your problem: > > $sftp = Net::SFTP::Foreign->new($RHNAME, user => $RHUSER, port => $RHPORT); > $sftp->put($SAF, $DAF, copy_perms => 0, copy_time => 0); > > Cheers, > - Salva > > > > ----- Original Message ---- >> From: Bob >> To: ssh...@li... >> Sent: Wed, July 21, 2010 2:20:54 PM >> Subject: [Ssh-sftp-perl-users] Getting SETSTAT failures from sftp-put >> >> Dear perl-gods, >> I have a daemon, written in perl, that SFTP's files to target hosts >> based upon an INI file of local-directories to watch, and target-hosts. >> It has been working fine for some time. >> >> I am using Perl v5.8.8, Net::SFTP::Foreign v1.51 & ::Compat v1.36 >> >> The relevant code is: >> %LIBARGS=('user'+>$RHUSER,'port'=>$RHPORT,'late_setperm'=>1); >> $SLC = Net::SFTP::Foreign::Compat->new($RHNAME, %LIBARGS); >> my $FXSTAT = $SLC->put($SAF, $DAF); >> >> A new host to which I must now send things is a relatively new SFTP >> implementation and has internal processes that move files as soon as >> received. I suspect this is the reason I am getting an error: >> "Couldn't setstat remote file (setstat)': Specified file path is invalid" >> ...even though the file was received by the remote host. >> >> This new host also does not permit changing perms on open files so the >> "late_setperm" argument must be used (as is required on all my other hosts). >> Given a choice between error 3 "The requested operation cannot be >> performed because there is a file transfer in progress" or error 2 >> "Specified file path is invalid", I've opted to put in a workaround (the >> logic handling $FXSTAT values) to disregard error 2 from this particular >> host. >> I'd prefer eliminating the error. >> >> I am not talented enough to interpret all that is going on in >> Net/SFTP/Foreign/Compat.pm >> but I believe it is setting permissions and such, whether that is needed >> or not, and this is what is actually failing. >> I absolutely do NOT want to modify Compat.pm or any other parts of the >> module, for a variety of reasons. >> I am hoping there is some option to disable the setting of attributes. > |