Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » SFTP or full SSH2 support for U++? (Discussion about implementing the SSH2 protocol using libssh2)
Re: SFTP or full SSH2 support for U++? [message #48862 is a reply to message #45813] Sun, 15 October 2017 23:10 Go to previous messageGo to previous message
Oblivion is currently offline  Oblivion
Messages: 1094
Registered: August 2007
Senior Contributor
Hello Mirek, Tom, Koldo, and everyone,

It's been a while since I last updated the package.

SSH package's been through a major rewrite, and I wanted to have a solid foundation to build it upon. Well, I believe it is finally here.

New design hopefullt fixes the main problems of the previous one. To do this I focused on the major component of SSH package: SFtp, since it was the most complex part of it.

I am here to share the results. Below package contains only Ssh and SFtp components for the time being. But please take your time to examine and test SFtp. It can do some

nice tricks easily, such as peeking and poking at files, or -experimental- multithreading support (we'll return to that later.).

I also included a simple testcase where you can see how SFtp class behaves. Note that, every other component (be it SCP, channel, exec) will behave in a similar way. Smile

Here is the highlights, and changes:

         1) This version brings a major redesign of overall components. SSH package's classes
             are redesigned around a core class named SshCore. SshCore allows a uniform interface
             for both blocking and non-blocking modes of operation. Visible result of this new 
             design is a single set of methods for both modes of operation for each class. Methods
             starting with "Start" prefix are removed in favor of a simple "NonBlocking()" switch.

             2) In accordance with this behaviour, a sort of "feature parity" is successfully 
                kept, thanks to the new design. Namely, in non-blocking mode, any result can be
                gathered using the new GetResult() method, which returns Value.

	     3) All SSH package classes now has pick semantics.
            
	     4) New design allows creation of higher-level ("complex") SFTP methods where needed.
                Unlike the simple SFTP methods, which work on file handles, Complex methods take 
                care of (allocate/free) file handles internally.
            
	     5) Experimental multithreading support is added (using AsyncWork). This is still
                at a primitive stage. 
	
	     6) Network proxy support is added. This new feature uses NetProxy (Http/Socks4/4a/5)
		package It works through a plugin, provided via Ssh::WhenProxy callback. And it
                is completely optional.

             7) Cancellation mechanism is added. Any operation can be cancelled at any time using
                the Cancel() method.

             8) SFtp::DirEntry class now has a ToString() method. (It will also gain an ToXml()
                method.) This method will give an output similar to Unix ls command.

             9) libssh2 configured to use OpenSSL by default (WinCNG will be made a compile-time
                option in the next release).


The code is not entirely cleaned-up, so there maybe also small cosmetic issues (for now.)

I appreciate feedbacks, patches, criticism, etc.

[ See below posts for updated package]

Cheers!

Oblivion


[Updated on: Wed, 18 October 2017 23:57]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Help needed with link errors (serversocket)
Next Topic: Ultimate++ repo and chat?
Goto Forum:
  


Current Time: Tue Jun 11 02:40:57 CEST 2024

Total time taken to generate the page: 0.02288 seconds