Hi Mikhail,
thank you for your fast answer. I didn't make this patch, so I apologies
for any errors. I removed that garbage, as you advised me. Fixed patch
is below.
Regards,
Lubos
Signed-off-by: Lubos Uhliarik <uhliarik_at_seznam.cz>
--- diff -Naur libssh2-1.4.3/include/libssh2.h libssh2-1.4.3_datacount/include/libssh2.h --- libssh2-1.4.3/include/libssh2.h 2012-11-27 22:45:21.000000000 +0100 +++ libssh2-1.4.3_datacount/include/libssh2.h 2014-08-13 16:01:51.571211593 +0200 @@ -241,10 +241,10 @@ /* I/O callbacks */ #define LIBSSH2_RECV_FUNC(name) ssize_t name(libssh2_socket_t socket, \ void *buffer, size_t length, \ - int flags, void **abstract) + int flags, void **abstract, LIBSSH2_SESSION *session) #define LIBSSH2_SEND_FUNC(name) ssize_t name(libssh2_socket_t socket, \ const void *buffer, size_t length,\ - int flags, void **abstract) + int flags, void **abstract, LIBSSH2_SESSION *session) /* libssh2_session_callback_set() constants */ #define LIBSSH2_CALLBACK_IGNORE 0 @@ -1157,6 +1157,12 @@ LIBSSH2_API int libssh2_keepalive_send (LIBSSH2_SESSION *session, int *seconds_to_next); +LIBSSH2_API long long +libssh2_session_recv_data(LIBSSH2_SESSION *session); + +LIBSSH2_API long long +libssh2_session_send_data(LIBSSH2_SESSION *session); + /* NOTE NOTE NOTE libssh2_trace() has no function in builds that aren't built with debug enabled diff -Naur libssh2-1.4.3/src/libssh2_priv.h libssh2-1.4.3_datacount/src/libssh2_priv.h --- libssh2-1.4.3/src/libssh2_priv.h 2012-10-08 14:54:30.000000000 +0200 +++ libssh2-1.4.3_datacount/src/libssh2_priv.h 2014-08-13 16:05:15.232059547 +0200 @@ -184,9 +184,9 @@ (channel), &(channel)->abstract) #define LIBSSH2_SEND_FD(session, fd, buffer, length, flags) \ - session->send(fd, buffer, length, flags, &session->abstract) + session->send(fd, buffer, length, flags, &session->abstract, session) #define LIBSSH2_RECV_FD(session, fd, buffer, length, flags) \ - session->recv(fd, buffer, length, flags, &session->abstract) + session->recv(fd, buffer, length, flags, &session->abstract, session) #define LIBSSH2_SEND(session, buffer, length, flags) \ LIBSSH2_SEND_FD(session, session->socket_fd, buffer, length, flags) @@ -809,6 +809,8 @@ int keepalive_interval; int keepalive_want_reply; time_t keepalive_last_sent; + long long recv_data; + long long send_data; }; /* session.state bits */ @@ -1000,9 +1002,9 @@ #define SSH_OPEN_RESOURCE_SHORTAGE 4 ssize_t _libssh2_recv(libssh2_socket_t socket, void *buffer, - size_t length, int flags, void **abstract); + size_t length, int flags, void **abstract, LIBSSH2_SESSION *session); ssize_t _libssh2_send(libssh2_socket_t socket, const void *buffer, - size_t length, int flags, void **abstract); + size_t length, int flags, void **abstract, LIBSSH2_SESSION *session); #define LIBSSH2_READ_TIMEOUT 60 /* generic timeout in seconds used when waiting for more data to arrive */ diff -Naur libssh2-1.4.3/src/misc.c libssh2-1.4.3_datacount/src/misc.c --- libssh2-1.4.3/src/misc.c 2011-08-25 19:59:47.000000000 +0200 +++ libssh2-1.4.3_datacount/src/misc.c 2014-08-13 16:01:51.571211593 +0200 @@ -94,7 +94,7 @@ * Replacement for the standard recv, return -errno on failure. */ ssize_t -_libssh2_recv(libssh2_socket_t sock, void *buffer, size_t length, int flags, void **abstract) +_libssh2_recv(libssh2_socket_t sock, void *buffer, size_t length, int flags, void **abstract, LIBSSH2_SESSION *session) { ssize_t rc = recv(sock, buffer, length, flags); #ifdef WIN32 @@ -117,6 +117,7 @@ return -errno; } #endif + session->recv_data += rc; return rc; } @@ -126,7 +127,7 @@ */ ssize_t _libssh2_send(libssh2_socket_t sock, const void *buffer, size_t length, - int flags, void **abstract) + int flags, void **abstract, LIBSSH2_SESSION *session) { ssize_t rc = send(sock, buffer, length, flags); #ifdef WIN32 @@ -143,6 +144,7 @@ if (rc < 0 ) return -errno; #endif + session->send_data += rc; return rc; } diff -Naur libssh2-1.4.3/src/session.c libssh2-1.4.3_datacount/src/session.c --- libssh2-1.4.3/src/session.c 2012-07-25 01:03:27.000000000 +0200 +++ libssh2-1.4.3_datacount/src/session.c 2014-08-13 16:01:51.571211593 +0200 @@ -1749,3 +1749,20 @@ return (const char *) session->remote.banner; } + +LIBSSH2_API long long +libssh2_session_recv_data(LIBSSH2_SESSION *session) +{ + long long recv; + recv = session->recv_data; + session->recv_data = 0; + return recv; +} + +LIBSSH2_API long long +libssh2_session_send_data(LIBSSH2_SESSION *session){ + long long send; + send = session->send_data; + session->send_data = 0; + return send; +} Mikhail Gusarov píše v St 13. 08. 2014 v 15:42 +0200: > Hi Lubos, > > > /* Hostkey Types */ > > -#define LIBSSH2_HOSTKEY_TYPE_UNKNOWN 0 > > -#define LIBSSH2_HOSTKEY_TYPE_RSA 1 > > -#define LIBSSH2_HOSTKEY_TYPE_DSS 2 > > +#define LIBSSH2_HOSTKEY_TYPE_UNKNOWN 0 > > +#define LIBSSH2_HOSTKEY_TYPE_RSA 1 > > +#define LIBSSH2_HOSTKEY_TYPE_DSS 2 > > Please remove this hunk. > > > +LIBSSH2_API long long > > +libssh2_session_send_data(LIBSSH2_SESSION *session){ > > + long long send; > > + send = session->send_data; > > + session->send_data = 0; > > + return send; > > +} > > \ No newline at end of file > > And add a missing newline. > _______________________________________________ > libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-develReceived on 2014-08-13