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