Mercurial > gftp.yaz
comparison 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 |
comparison
equal
deleted
inserted
replaced
517:648bf2825ea9 | 518:c6a6e908dbaf |
---|---|
67 typedef struct sshv2_params_tag | 67 typedef struct sshv2_params_tag |
68 { | 68 { |
69 char handle[SSH_MAX_HANDLE_SIZE + 4], /* We'll encode the ID in here too */ | 69 char handle[SSH_MAX_HANDLE_SIZE + 4], /* We'll encode the ID in here too */ |
70 *read_buffer; | 70 *read_buffer; |
71 | 71 |
72 gint32 handle_len, | 72 gint32 id, |
73 id, | |
74 count; | 73 count; |
74 size_t handle_len; | |
75 sshv2_message message; | 75 sshv2_message message; |
76 | 76 |
77 unsigned int initialized : 1, | 77 unsigned int initialized : 1, |
78 dont_log_status : 1; /* For uploading files */ | 78 dont_log_status : 1; /* For uploading files */ |
79 | 79 |
489 return (GFTP_EFATAL); | 489 return (GFTP_EFATAL); |
490 } | 490 } |
491 | 491 |
492 return (0); | 492 return (0); |
493 } | 493 } |
494 | |
495 | |
496 #ifdef G_HAVE_GINT64 | |
497 | |
498 static gint64 | |
499 hton64 (gint64 val) | |
500 { | |
501 if (G_BYTE_ORDER != G_BIG_ENDIAN) | |
502 return (GINT64_TO_BE (val)); | |
503 else | |
504 return (val); | |
505 } | |
506 | |
507 #endif | |
508 | 494 |
509 | 495 |
510 static void | 496 static void |
511 sshv2_log_command (gftp_request * request, gftp_logging_level level, | 497 sshv2_log_command (gftp_request * request, gftp_logging_level level, |
512 char type, char *message, size_t length) | 498 char type, char *message, size_t length) |
708 sshv2_read_response (gftp_request * request, sshv2_message * message, | 694 sshv2_read_response (gftp_request * request, sshv2_message * message, |
709 int fd) | 695 int fd) |
710 { | 696 { |
711 char buf[6], error_buffer[255], *pos; | 697 char buf[6], error_buffer[255], *pos; |
712 sshv2_params * params; | 698 sshv2_params * params; |
713 ssize_t numread, rem; | 699 ssize_t numread; |
700 size_t rem; | |
714 | 701 |
715 params = request->protocol_data; | 702 params = request->protocol_data; |
716 | 703 |
717 if (fd <= 0) | 704 if (fd <= 0) |
718 fd = request->datafd; | 705 fd = request->datafd; |
1851 | 1838 |
1852 return (0); | 1839 return (0); |
1853 } | 1840 } |
1854 | 1841 |
1855 | 1842 |
1843 #ifdef G_HAVE_GINT64 | |
1844 | |
1845 static gint64 | |
1846 hton64 (gint64 val) | |
1847 { | |
1848 if (G_BYTE_ORDER != G_BIG_ENDIAN) | |
1849 return (GINT64_TO_BE (val)); | |
1850 else | |
1851 return (val); | |
1852 } | |
1853 | |
1854 #endif | |
1855 | |
1856 | |
1857 static void | |
1858 sshv2_setup_file_offset (sshv2_params * params) | |
1859 { | |
1860 guint32 hinum, lownum; | |
1861 #ifdef G_HAVE_GINT64 | |
1862 gint64 offset; | |
1863 | |
1864 offset = hton64 (params->offset); | |
1865 lownum = offset & 0xffffffff; | |
1866 hinum = offset >> 32; | |
1867 #else | |
1868 hinum = 0; | |
1869 lownum = htonl (params->offset); | |
1870 #endif | |
1871 | |
1872 memcpy (params->read_buffer + params->handle_len, &hinum, 4); | |
1873 memcpy (params->read_buffer + params->handle_len + 4, &lownum, 4); | |
1874 } | |
1875 | |
1876 | |
1856 static ssize_t | 1877 static ssize_t |
1857 sshv2_get_next_file_chunk (gftp_request * request, char *buf, size_t size) | 1878 sshv2_get_next_file_chunk (gftp_request * request, char *buf, size_t size) |
1858 { | 1879 { |
1859 sshv2_params * params; | 1880 sshv2_params * params; |
1860 sshv2_message message; | 1881 sshv2_message message; |
1861 guint32 num; | 1882 guint32 num; |
1862 int ret; | 1883 int ret; |
1863 | 1884 |
1864 #ifdef G_HAVE_GINT64 | |
1865 gint64 offset; | |
1866 #else | |
1867 gint32 offset; | |
1868 #endif | |
1869 | |
1870 g_return_val_if_fail (request != NULL, GFTP_EFATAL); | 1885 g_return_val_if_fail (request != NULL, GFTP_EFATAL); |
1871 g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, GFTP_EFATAL); | 1886 g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, GFTP_EFATAL); |
1872 g_return_val_if_fail (request->datafd > 0, GFTP_EFATAL); | 1887 g_return_val_if_fail (request->datafd > 0, GFTP_EFATAL); |
1873 g_return_val_if_fail (buf != NULL, GFTP_EFATAL); | 1888 g_return_val_if_fail (buf != NULL, GFTP_EFATAL); |
1874 | 1889 |
1882 } | 1897 } |
1883 | 1898 |
1884 num = htonl (params->id++); | 1899 num = htonl (params->id++); |
1885 memcpy (params->read_buffer, &num, 4); | 1900 memcpy (params->read_buffer, &num, 4); |
1886 | 1901 |
1887 #ifdef G_HAVE_GINT64 | 1902 sshv2_setup_file_offset (params); |
1888 offset = hton64 (params->offset); | 1903 |
1889 memcpy (params->read_buffer + params->handle_len, &offset, 8); | |
1890 #else | |
1891 memset (params->read_buffer + params->handle_len, 0, 4); | |
1892 offset = htonl (params->offset); | |
1893 memcpy (params->read_buffer + params->handle_len + 4, &offset, 4); | |
1894 #endif | |
1895 | |
1896 num = htonl (size); | 1904 num = htonl (size); |
1897 memcpy (params->read_buffer + params->handle_len + 8, &num, 4); | 1905 memcpy (params->read_buffer + params->handle_len + 8, &num, 4); |
1898 | 1906 |
1899 if (sshv2_send_command (request, SSH_FXP_READ, params->read_buffer, | 1907 if (sshv2_send_command (request, SSH_FXP_READ, params->read_buffer, |
1900 params->handle_len + 12) < 0) | 1908 params->handle_len + 12) < 0) |
1947 char tempstr[32768]; | 1955 char tempstr[32768]; |
1948 guint32 num; | 1956 guint32 num; |
1949 size_t len; | 1957 size_t len; |
1950 int ret; | 1958 int ret; |
1951 | 1959 |
1952 #ifdef G_HAVE_GINT64 | |
1953 gint64 offset; | |
1954 #else | |
1955 gint32 offset; | |
1956 #endif | |
1957 | |
1958 g_return_val_if_fail (request != NULL, GFTP_EFATAL); | 1960 g_return_val_if_fail (request != NULL, GFTP_EFATAL); |
1959 g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, GFTP_EFATAL); | 1961 g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, GFTP_EFATAL); |
1960 g_return_val_if_fail (request->datafd > 0, GFTP_EFATAL); | 1962 g_return_val_if_fail (request->datafd > 0, GFTP_EFATAL); |
1961 g_return_val_if_fail (buf != NULL, GFTP_EFATAL); | 1963 g_return_val_if_fail (buf != NULL, GFTP_EFATAL); |
1962 g_return_val_if_fail (size <= 32500, GFTP_EFATAL); | 1964 g_return_val_if_fail (size <= 32500, GFTP_EFATAL); |
1966 memcpy (tempstr, params->handle, params->handle_len); | 1968 memcpy (tempstr, params->handle, params->handle_len); |
1967 | 1969 |
1968 num = htonl (params->id++); | 1970 num = htonl (params->id++); |
1969 memcpy (tempstr, &num, 4); | 1971 memcpy (tempstr, &num, 4); |
1970 | 1972 |
1971 #ifdef G_HAVE_GINT64 | 1973 sshv2_setup_file_offset (params); |
1972 offset = hton64 (params->offset); | |
1973 memcpy (tempstr + params->handle_len, &offset, 8); | |
1974 #else | |
1975 memset (tempstr + params->handle_len, 0, 4); | |
1976 offset = htonl (params->offset); | |
1977 memcpy (tempstr + params->handle_len + 4, &offset, 4); | |
1978 #endif | |
1979 | 1974 |
1980 num = htonl (size); | 1975 num = htonl (size); |
1981 memcpy (tempstr + params->handle_len + 8, &num, 4); | 1976 memcpy (tempstr + params->handle_len + 8, &num, 4); |
1982 memcpy (tempstr + params->handle_len + 12, buf, size); | 1977 memcpy (tempstr + params->handle_len + 12, buf, size); |
1983 | 1978 |