1
1
Этот коммит содержится в:
Daniel Stenberg 2010-10-20 22:56:49 +02:00
родитель fac9412a74
Коммит 08ce6425f6

57
TODO
Просмотреть файл

@ -1,6 +1,9 @@
Things TODO
===========
* Fix the numerous malloc+copy operations for sending data, see below for
details
* make sure the windowing code adapts better to slow situations so that it
doesn't then use as much memory as today. Possibly by an app-controllable
"Window mode"?
@ -11,9 +14,11 @@ Things TODO
* Add more info to the man pages.
* Decrease the number of mallocs. Everywhere.
* Decrease the number of mallocs. Everywhere. Will get easier once the
buffering improvements have been done.
* Use SO_NOSIGPIPE for Mac OS/BSD systems where MSG_NOSIGNAL doesn't exist/work
* Use SO_NOSIGPIPE for Mac OS/BSD systems where MSG_NOSIGNAL doesn't
exist/work
* Extend the test suite to actually test lots of aspects of libssh2
@ -21,6 +26,9 @@ Things TODO
* Expose error messages sent by the server
* Make SFTP transfers ask for and send several packages at once so that it
doesn't have to send-waitforack-send-waitforack as much.
At next SONAME bump
===================
@ -59,3 +67,48 @@ At next SONAME bump
* remove the existing libssh2_knownhost_check() functin and rename
libssh2_knownhost_checkp() to become the new libssh2_knownhost_check instead
Buffering Improvements
======================
compression
- needs to ne able to take the input to compress from two pointers (with two
sizes) and generate a single compressed output chunk
- should also not allocate the compressed output buffer but use a single one
within the session struct (as transport_write() will copy the data off from
that buffer immediately anyway), or even better the transport_write()
function could allocate a buffer to fix an uncompressed buffer as then the
compression function can write its output directly into the allocated send
buffer
- should probably be split off into a separate compression and decompression
function instead of a single unified as they are now, to make these changes
easier
transport_write
- should accept a "packet struct" input with separate pointers to headers
and to payload (each of which may be allocated or not)
- Separating the headers from the payload will greatly enhance our ability
to use a fixed buffer within the session handle for the header part and
provide the payload part as a mere pointer.
- This function is used >30 times in the code.
- If this function gets called with a total packet size that is larger than
32K, it should create more than one SSH packet so that it keeps the largest
one below 32K
channel_write
- should not copy/allocate anything for the data, only create a header chunk
and pass on the payload data to transport_write "pointed to"
sftp_write
- should not copy/allocate anything for the data, only create a header chunk
and pass on the payload data to channel_write "pointed to"