Hiya, folks.  Got a few questions for you.  First, let me describe my 
situation.

I've got a project that includes a built-in terminal emulator.  The GUI 
is built using wxWidgets, and the terminal control is based on a class 
called wxTerm that was borrowed from a project called taTelnet.  wxTerm 
just interprets and displays VT100 code, and doesn't do any connection 
stuff.  For our project, we created a wxSSH subclass that, through a 
central Networking component, creates an invisible Plink process in the 
background and just pipes all communications through there (Plink is the 
command-line version of the Putty SSH client).  The Networking component 
also manages additional connections to the server, mostly one-shot 
commands like directory listings and such, each done with more Plink 
processes.

So, all this works okay, but I'd really like to rework the system so 
that all of the SSH communication is handled internally, rather than 
through an outside process.  I've been evaluating various SSH toolkits 
and trying to get a feel for how they do things.  I like some of what I 
see in libssh2, especially the fact that you have SCP support built into 
the library, but I'd like some more information before I jump in.

First, I'm wondering if there's any further documentation or examples of 
how to go about using libssh2 in a serious program, particularly for 
terminal emulation support.  The ssh2_sample.c kind of skimps out on 
that area, instead just saying that "this is where stuff happens".  The 
API documentation is decent, but there's not a lot of help in how to use 
that API.  (As a side note, any chance you could include the API docs in 
the distribution so they are available offline?  I wound up copying and 
pasting the individual wiki pages into three or four HTML documents 
earlier today so I could have them on-hand.)

Second, one of the things I'm going to want to do is send the SSH 
"window-change" command, which tells the server that the local terminal 
has been resized.  This is defined in the SSH spec as sending the words 
"window-change", followed by a series of four integers defining the new 
number of rows and columns.  Aris Adamantiadis' libssh has support for 
this (see 
http://www.koders.com/c/fidB15FF6A629FC181A68A29859F27B8A00703132D5.aspx#L554 
), but I don't see any explicit support for this in libssh2.  I'm 
guessing I'd have to set up a very specific character buffer and pass it 
to libssh2_channel_write_ex, but I'm not 100% sure on that.  Any 
suggestions?

Third, I saw a few comments about possible slowness in some connections, 
comments about blocking and non-blocking connections, and some 
discussions of possible API changes.  What's up with these areas, and 
are there any plans for major changes in the near future?

Finally, I'd appreciate any suggestions or tips you might have in going 
about this process and using the library.

Thanks in advance for any help you can give!

Mark Erikson
http://www.isquaredsoftware.com

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
libssh2-devel mailing list
libssh2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libssh2-devel

Reply via email to