[sword-devel] SFTP Support

Troy A. Griffitts scribe at crosswire.org
Sun Dec 30 20:11:36 MST 2012


OK Greg,

I've hacked detection of CURL SFTP into the autotools build (hopefully-- 
it works for me).

I've added a new compile time define with -DCURLSFTPAVAILABLE to go 
along with the existing -DCURLAVAILABLE

If you'd like to update the sftp patch to conditionally compile support 
in based on this define, that would be cool.  I'll do it myself soon if 
you don't have time.

Troy


On 12/28/2012 11:42 AM, Greg Hellings wrote:
> Further digging with help from our friends has revealed this nugget:
>
> $ curl-config --protocols
>
> produces a newline-delimited list of protocols that the particular
> build of libcurl supports. curl-config is a shell script which can be
> run on the build system and should satisfy both the requirements of
> native builds and cross-compiling support. We could use this to set a
> compiler macro indicating support (or not) for SFTP in the target
> libcurl library.
>
> If someone wants to tackle that in the autotools world, I can add
> detection to CMake as well. A simple command such as
> $ curl-config --protocols | grep SFTP | wc -l
> 1
>
> in Fedora will result in a value of 1 or greater if SFTP is supported
> while it should produce 0 if SFTP support is left out. An Ubuntu
> system produce this output:
> $ curl-config --protocols | grep SFTP | wc -l
> 0
>
> And it even works for cross-compiling:
> $ /usr/i686-w64-mingw32/sys-root/mingw/bin/curl-config --protocols |
> grep SFTP | wc -l
> 1
>
>
> This appears to be our best way forward if we want to enable
> compile-time enabling or disabling of this option.
>
> --Greg
>
> On Mon, Dec 24, 2012 at 8:43 AM, Greg Hellings <greg.hellings at gmail.com> wrote:
>> Troy,
>>
>> On Sun, Dec 23, 2012 at 10:39 PM, Troy A. Griffitts
>> <scribe at crosswire.org> wrote:
>>> Dear Greg,
>>>
>>> Looking to apply this SFTP patch, could you give me some background as to
>>> why the check to ignore across all transports for '.' and '..'?
>> Our downloading method runs recursively from the given directory until
>> it runs out of directory depth. FTP servers don't usually seem to
>> return . and .. as valid paths, and the HTTP(S) transport attempts to
>> parse the returned HTML page to avoid the link to the parent
>> directory. But whatever options are passed by cURL to the SFTP
>> transport resulted in it returning . and .. as paths within the
>> current directory. Because '.' came first in the list, the installmgr
>> was running through an infinite loop whenever it tried to pull data
>> from the server.
>>
>> I added it at the level of all transports because we don't want to
>> either loop infinitely on '.' or accidentally pull a whole server
>> recursively by following '..' to the root of the server. It might be a
>> server config option that permits it, but I wanted to avoid the
>> possibility of the InlstallMgr class getting choked up on it.
>>
>> --Greg
>>
>>> Thanks,
>>>
>>> Troy
>>>
>>>
>>>
>>>
>>> On 12/03/2012 04:06 PM, Greg Hellings wrote:
>>>
>>> The attached patch will introduce support for SFTPSource transports in
>>> the SWORD engine, allowing a user to access remote repositories over
>>> SFTP (which is enabled by default when a user enables SSH).
>>>
>>> --Greg
>>>
>>>
>>>
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>>
>>>
>>>
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page




More information about the sword-devel mailing list