Mercurial > gftp.yaz
diff lib/sshv2.c @ 518:c6a6e908dbaf
2004-7-27 Brian Masney <masneyb@gftp.org>
* lib/protocols.c lib/rfc2068.c lib/rfc959.c lib/sshv2.c
src/gtk/bookmarks.c src/gtk/dnd.c src/gtk/gftp-gtk.c src/gtk/gtui.c
src/gtk/menu-items.c src/misc-gtk.c src/gtk/options_dialog.c
src/gtk/transfer.c src/text/gftp-text.c src/uicommon/gftpui.c -
various fixes found through a static code analysis. (some
signed/unsigned fixes, removed unneeded casts, indentation fixes,
added static declaration to some functions)
author | masneyb |
---|---|
date | Wed, 28 Jul 2004 01:37:15 +0000 |
parents | 648bf2825ea9 |
children | c3edcd3e9db9 |
line wrap: on
line diff
--- a/lib/sshv2.c Tue Jul 27 20:43:39 2004 +0000 +++ b/lib/sshv2.c Wed Jul 28 01:37:15 2004 +0000 @@ -69,9 +69,9 @@ char handle[SSH_MAX_HANDLE_SIZE + 4], /* We'll encode the ID in here too */ *read_buffer; - gint32 handle_len, - id, + gint32 id, count; + size_t handle_len; sshv2_message message; unsigned int initialized : 1, @@ -493,20 +493,6 @@ } -#ifdef G_HAVE_GINT64 - -static gint64 -hton64 (gint64 val) -{ - if (G_BYTE_ORDER != G_BIG_ENDIAN) - return (GINT64_TO_BE (val)); - else - return (val); -} - -#endif - - static void sshv2_log_command (gftp_request * request, gftp_logging_level level, char type, char *message, size_t length) @@ -710,7 +696,8 @@ { char buf[6], error_buffer[255], *pos; sshv2_params * params; - ssize_t numread, rem; + ssize_t numread; + size_t rem; params = request->protocol_data; @@ -1853,6 +1840,40 @@ } +#ifdef G_HAVE_GINT64 + +static gint64 +hton64 (gint64 val) +{ + if (G_BYTE_ORDER != G_BIG_ENDIAN) + return (GINT64_TO_BE (val)); + else + return (val); +} + +#endif + + +static void +sshv2_setup_file_offset (sshv2_params * params) +{ + guint32 hinum, lownum; +#ifdef G_HAVE_GINT64 + gint64 offset; + + offset = hton64 (params->offset); + lownum = offset & 0xffffffff; + hinum = offset >> 32; +#else + hinum = 0; + lownum = htonl (params->offset); +#endif + + memcpy (params->read_buffer + params->handle_len, &hinum, 4); + memcpy (params->read_buffer + params->handle_len + 4, &lownum, 4); +} + + static ssize_t sshv2_get_next_file_chunk (gftp_request * request, char *buf, size_t size) { @@ -1861,12 +1882,6 @@ guint32 num; int ret; -#ifdef G_HAVE_GINT64 - gint64 offset; -#else - gint32 offset; -#endif - g_return_val_if_fail (request != NULL, GFTP_EFATAL); g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, GFTP_EFATAL); g_return_val_if_fail (request->datafd > 0, GFTP_EFATAL); @@ -1884,15 +1899,8 @@ num = htonl (params->id++); memcpy (params->read_buffer, &num, 4); -#ifdef G_HAVE_GINT64 - offset = hton64 (params->offset); - memcpy (params->read_buffer + params->handle_len, &offset, 8); -#else - memset (params->read_buffer + params->handle_len, 0, 4); - offset = htonl (params->offset); - memcpy (params->read_buffer + params->handle_len + 4, &offset, 4); -#endif - + sshv2_setup_file_offset (params); + num = htonl (size); memcpy (params->read_buffer + params->handle_len + 8, &num, 4); @@ -1949,12 +1957,6 @@ size_t len; int ret; -#ifdef G_HAVE_GINT64 - gint64 offset; -#else - gint32 offset; -#endif - g_return_val_if_fail (request != NULL, GFTP_EFATAL); g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, GFTP_EFATAL); g_return_val_if_fail (request->datafd > 0, GFTP_EFATAL); @@ -1968,14 +1970,7 @@ num = htonl (params->id++); memcpy (tempstr, &num, 4); -#ifdef G_HAVE_GINT64 - offset = hton64 (params->offset); - memcpy (tempstr + params->handle_len, &offset, 8); -#else - memset (tempstr + params->handle_len, 0, 4); - offset = htonl (params->offset); - memcpy (tempstr + params->handle_len + 4, &offset, 4); -#endif + sshv2_setup_file_offset (params); num = htonl (size); memcpy (tempstr + params->handle_len + 8, &num, 4);