{"shas":[["7ed7dad3b4379306c189efed45abf6f8d823b55c","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","cpp: s/#elsif/#elif\n\nThis looks like a typo as #elsif is not really C...","Daniel Stenberg"],["b0c32a85fc7556f45369a883aa6e543f4505d725","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","sftp_write_sliding.c: new example\n\nThis is an example that is very similar to sftp_write_nonblock.c, with\nthe exception that this uses\n\n1 - a larger upload buffer\n\n2 - a sliding buffer mechnism to allow the app to keep sending lots of\ndata to libssh2 without having to first drain the buffer.\n\nThese are two key issues to make libssh2 SFTP uploads really perform\nwell at this point in time.","Daniel Stenberg"],["fa07d9fefce9ba46b8208204dfd88bd898bb2a2f","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","MAX_SFTP_OUTGOING_SIZE: 30000\n\nI ran SFTP upload tests against localhost. It showed that to make the\napp reach really good speeds, I needed to do a little code tweak and\nchange MAX_SFTP_OUTGOING_SIZE from 4000 to 30000. The tests I did before\nwith the high latency tests didn't show any real difference whatever I\nhad that size set to.\n\nThis number is the size in bytes that libssh2 cuts off the large input\nbuffer and sends off as an individual sftp packet.","Daniel Stenberg"],["499b989d4605d18d00aa6dbd29154401d170ebc8","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","sftp_append: new example doing SFTP append","Daniel Stenberg"],["0cc14be09dbd388edb7816f70b1a9dbfea2277d1","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","sftp_seek: fix\n\nThe new SFTP write code caused a regression as the seek function no\nlonger worked as it didn't set the write position properly.\n\nIt should be noted that seeking is STRONGLY PROHIBITED during upload, as\nthe upload magic uses two different offset positions and the multiple\noutstanding packets etc make them sensitive to change in the midst of\noperations.\n\nThis functionality was just verified with the new example code\nsftp_append. This bug was filed as bug #202:\n\nBug: http://trac.libssh2.org/ticket/202","Daniel Stenberg"],["6875285b7184c72184a6d39b1aaed97dd6486661","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","libssh2_sftp_seek64: new man page\n\nSplit off libssh2_sftp_seek64 from the libssh2_sftp_seek man page, and\nmentioned that we consider the latter deprecated. Also added a mention\nabout the dangers of doing seek during writing or reading.","Daniel Stenberg"],["811cce09b5c885a40b6b3ee6cf4a1562322f4b2d","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","_libssh2_channel_close: don't call transport read if disconnected\n\nThe loop that waits for remote.close to get set may end up looping\nforever since session->socket_state gets set to\nLIBSSH2_SOCKET_DISCONNECTED by the packet_add() function called from the\ntransport_read() function and after having been set to\nLIBSSH2_SOCKET_DISCONNECTED, the transport_read() function will only\nreturn 0.\n\nBug: http://trac.libssh2.org/ticket/198","Daniel Stenberg"],["92ea3bda606eecc6edf0381b9f3e450eeabf6f38","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","sftp_write: removed unused variable","Daniel Stenberg"],["1b65c6ae26503aba131cafb6ceed74dab1342531","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","sftp_read: pipeline reads\n\nThe SFTP read function now does transfers the same way the SFTP write\nfunction was made to recently: it creates a list of many outgoing\nFXP_READ packets that each asks for a small data chunk. The code then\ntries to keep sending read request while collecting the acks for the\nprevious requests and returns the received data.","Daniel Stenberg"],["c1683ae92c9802fe3e58547571d8b1f1bcd9ee33","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","sftp_close_handle: packet list is generic\n\nFix comment, simplify the loop logic","Daniel Stenberg"],["1b1ff333e4e2bd722336347d1e0b42d9ced57bb0","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","SFTP: fix memory leaks\n\nMake sure that we cleanup remainders when the handle is closed and when\nthe subsystem is shutdown.\n\nExisting flaw: if a single handle sends packets that haven't been\nreplied to yet at the time when the handle is closed, those packets will\narrive later and end up in the generic packet brigade queue and they\nwill remain in there until flushed. They will use unnecessary memory,\nmake things slower and they will ruin the SFTP handling if the\nrequest_id counter ever wraps (highly unlikely to every happen).","Daniel Stenberg"],["47b4e627808637d5289518028935d2ef6b9828ba","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","SFTP: unify the READ/WRITE chunk structs","Daniel Stenberg"],["75909e05a93d040acefc4f8d06c68d021634dcd5","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","libssh2_sftp_open_ex: man page extended and cleaned up\n\nI added the missing documentation for the 'flags' argument.","Daniel Stenberg"],["2f0c0cef7653dd643aa3c170df33d09d7dfef63f","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","SFTP: store request_id separately in packets\n\nBy using a new separate struct for incoming SFTP packets and not sharing\nthe generic packet struct, we can get rid of an unused field and add a\nnew one dedicated for holding the request_id for the incoming\npackage. As sftp_packet_ask() is called fairly often, a \"mere\" integer\ncomparison is MUCH faster than the previous memcmp() of (typically) 5\nbytes.","Daniel Stenberg"],["3faa8bc9400fdc2f67181bfb3da482baeaad9263","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","SFTP: request_ids are uint32_t\n\nI went over the code and made sure we use uint32_t all over for the\nrequest_id data. It is an unsigned 32bit value on the wire.","Daniel Stenberg"],["b3e832172b69bea675601ff6b4e6f5fc6cd7723f","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","SFTP: more types to uint32_t\n\nThe 'num_names' field in the SSH_FXP_NAME response is an unsigned 32bit\nvalue so we make sure to treat it like that.","Daniel Stenberg"],["121237ce2fb90928c6dfdcd03cc18297aadc7ca1","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","uint32: more longs converted to proper types\n\nI also moved the MAC struct over to the mac.h header file and made sure\nthat the users of that struct include that file.","Daniel Stenberg"],["2165ceacd37d266fecb3d1298ea260ce0e334267","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","_libssh2_packet_add: fix SSH_MSG_DEBUG weirdness\n\nI believe I may have caused this weird typo style error when I cleaned\nup this function a while ago. Corrected now.","Daniel Stenberg"],["5ee38702a08e48e338acb73688654ae7e8bc551f","3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@haxx.se","ssh2_echo: Value stored to 'exitcode' is never read","Daniel Stenberg"],["5b1a7ec2f139d13b8213fc5a5b87f05ea3a30a40","f293e288c9b71913014f2d9111db2bd271c4d4f3@avcosystems.co.uk","userauth: derive publickey from private\n\nPass a NULL pointer for the publickey parameter of\nlibssh2_userauth_publickey_fromfile and\nlibssh2_userauth_hostbased_fromfile functions.  In this case, the\nfunctions recompute the public key from the private key file data.\n\nThis is work done by Jean-Louis CHARTON\n<Jean-Louis.CHARTON@oikialog.com>, then adapted by Mark Smith and\nslightly edited further by me Daniel.\n\nWARNING: this does leave the feature NOT WORKING when libssh2 is built\nto use libgcrypt instead of OpenSSL simply due to lack of\nimplementation.","Mark Smith"]],"repo":"songdongsheng/libssh2","actor":"songdongsheng","ref":"refs/heads/master","size":45,"head":"dba748b42ed3b84b083a5f3b3376282b19ff4142","actor_gravatar":"f5ae8e70856feb8d3dd7e338b132ce23","push_id":28016571}