Mercurial > gftp.yaz
changeset 309:cc2eeb30b793
2003-11-7 Brian Masney <masneyb@gftp.org>
* lib/gftp.h lib/local.c lib/protocols.c lib/rfc2068.c lib/rfc959.c
lib/sshv2.c - added copy_param_options method to gftp_request
structure. When a gftp_request structure is copied, if a
copy_param_options method exists, this will be called so that the
local protocol data can be copied over. This is only used by the
FTP protocol at the moment to save the current state of Ascii or
Binary transfers.
* src/gtk/transfer.c (transfer_done) - when a transfer is
completed, copy the local protocol options back to the main window
* lib/rfc959.c (gftp_set_data_type) - check the return value of
rfc959_send_command() and if there is an error, return that
error.
* configure.in - added 'hr' to ALL_LINGUAS
author | masneyb |
---|---|
date | Sat, 08 Nov 2003 12:23:21 +0000 |
parents | 758d9d648cc0 |
children | cf283d076239 |
files | ChangeLog configure.in lib/gftp.h lib/local.c lib/misc.c lib/protocols.c lib/rfc2068.c lib/rfc959.c lib/sshv2.c src/gtk/transfer.c |
diffstat | 10 files changed, 84 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Nov 07 18:10:04 2003 +0000 +++ b/ChangeLog Sat Nov 08 12:23:21 2003 +0000 @@ -1,3 +1,21 @@ +2003-11-7 Brian Masney <masneyb@gftp.org> + * lib/gftp.h lib/local.c lib/protocols.c lib/rfc2068.c lib/rfc959.c + lib/sshv2.c - added copy_param_options method to gftp_request + structure. When a gftp_request structure is copied, if a + copy_param_options method exists, this will be called so that the + local protocol data can be copied over. This is only used by the + FTP protocol at the moment to save the current state of Ascii or + Binary transfers. + + * src/gtk/transfer.c (transfer_done) - when a transfer is + completed, copy the local protocol options back to the main window + + * lib/rfc959.c (gftp_set_data_type) - check the return value of + rfc959_send_command() and if there is an error, return that + error. + + * configure.in - added 'hr' to ALL_LINGUAS + 2003-11-5 Brian Masney <masneyb@gftp.org> * TODO - updated @@ -1709,7 +1727,7 @@ * cvsclean - added this script - * *.[ch] - added $Id: ChangeLog,v 1.168 2003/11/06 03:19:00 masneyb Exp $ tags + * *.[ch] - added $Id: ChangeLog,v 1.169 2003/11/08 12:23:20 masneyb Exp $ tags * debian/* - updated files from Debian maintainer
--- a/configure.in Fri Nov 07 18:10:04 2003 +0000 +++ b/configure.in Sat Nov 08 12:23:21 2003 +0000 @@ -28,7 +28,7 @@ AC_SUBST(VERSION) AC_SUBST(PREFIX) -ALL_LINGUAS="am az ar be bg bn ca cs da de el es fi fr hu it ja ko mk ml ms nl no pl pt pt_BR ro ru sk sr sr@Latn sv tr uk zh_CN zh_TW" +ALL_LINGUAS="am az ar be bg bn ca cs da de el es fi fr hr hu it ja ko mk ml ms nl no pl pt pt_BR ro ru sk sr sr@Latn sv tr uk zh_CN zh_TW" AC_DEFINE(_GNU_SOURCE, 1, [Define for setting a GNU environment]) @@ -285,4 +285,4 @@ AC_CHECK_PROG(DB2HTML, db2html, true, false) AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML) -AC_OUTPUT(Makefile docs/Makefile docs/sample.gftp/Makefile lib/Makefile src/gftp src/Makefile src/gtk/Makefile src/text/Makefile gftp.spec intl/Makefile po/Makefile.in) +AC_OUTPUT(Makefile docs/Makefile docs/sample.gftp/Makefile lib/Makefile src/gftp src/Makefile src/gtk/Makefile src/text/Makefile gftp.spec intl/Makefile po/Makefile.in intl/Makefile po/Makefile.in )
--- a/lib/gftp.h Fri Nov 07 18:10:04 2003 +0000 +++ b/lib/gftp.h Sat Nov 08 12:23:21 2003 +0000 @@ -350,6 +350,8 @@ void *user_data; int (*init) ( gftp_request * request ); + void (*copy_param_options) ( gftp_request * dest_request, + gftp_request * src_request ); ssize_t (*read_function) ( gftp_request * request, void *ptr, size_t size, @@ -763,6 +765,9 @@ void gftp_request_destroy ( gftp_request * request, int free_request ); +void gftp_copy_param_options ( gftp_request * dest_request, + gftp_request * src_request ); + void gftp_file_destroy ( gftp_file *file ); int gftp_connect ( gftp_request * request );
--- a/lib/local.c Fri Nov 07 18:10:04 2003 +0000 +++ b/lib/local.c Sat Nov 08 12:23:21 2003 +0000 @@ -638,6 +638,7 @@ request->protonum = GFTP_LOCAL_NUM; request->init = local_init; + request->copy_param_options = NULL; request->destroy = local_destroy; request->read_function = gftp_fd_read; request->write_function = gftp_fd_write;
--- a/lib/misc.c Fri Nov 07 18:10:04 2003 +0000 +++ b/lib/misc.c Sat Nov 08 12:23:21 2003 +0000 @@ -667,6 +667,8 @@ return (NULL); } + gftp_copy_param_options (newreq, req); + return (newreq); }
--- a/lib/protocols.c Fri Nov 07 18:10:04 2003 +0000 +++ b/lib/protocols.c Sat Nov 08 12:23:21 2003 +0000 @@ -83,6 +83,22 @@ } +/* This function is called to copy protocol specific data from one request + structure to another. This is typically called when a file transfer is + completed, state information can be copied back to the main window */ +void +gftp_copy_param_options (gftp_request * dest_request, + gftp_request * src_request) +{ + g_return_if_fail (dest_request != NULL); + g_return_if_fail (src_request != NULL); + g_return_if_fail (dest_request->protonum == src_request->protonum); + + if (dest_request->copy_param_options) + dest_request->copy_param_options (dest_request, src_request); +} + + void gftp_file_destroy (gftp_file * file) {
--- a/lib/rfc2068.c Fri Nov 07 18:10:04 2003 +0000 +++ b/lib/rfc2068.c Sat Nov 08 12:23:21 2003 +0000 @@ -912,6 +912,7 @@ request->protonum = GFTP_HTTP_NUM; request->init = rfc2068_init; + request->copy_param_options = NULL; request->read_function = rfc2068_chunked_read; request->write_function = gftp_fd_write; request->destroy = rfc2068_destroy;
--- a/lib/rfc959.c Fri Nov 07 18:10:04 2003 +0000 +++ b/lib/rfc959.c Sat Nov 08 12:23:21 2003 +0000 @@ -1001,15 +1001,15 @@ } -static void +static int rfc959_set_data_type (gftp_request * request, const char *filename) { rfc959_parms * parms; - int new_ascii; + int new_ascii, ret; char *tempstr; - g_return_if_fail (request != NULL); - g_return_if_fail (request->protonum == GFTP_FTP_NUM); + g_return_val_if_fail (request != NULL, GFTP_EFATAL); + g_return_val_if_fail (request->protonum == GFTP_FTP_NUM, GFTP_EFATAL); parms = request->protocol_data; new_ascii = rfc959_is_ascii_transfer (request, filename); @@ -1027,10 +1027,11 @@ parms->is_ascii_transfer = 0; } - rfc959_send_command (request, tempstr, 1); + if ((ret = rfc959_send_command (request, tempstr, 1)) < 0) + return (ret); } - return; + return (0); } @@ -1051,7 +1052,8 @@ if (fd > 0) parms->data_connection = fd; - rfc959_set_data_type (request, filename); + if ((ret = rfc959_set_data_type (request, filename)) < 0) + return (ret); if (parms->data_connection < 0 && (ret = rfc959_data_connection_new (request)) < 0) @@ -1125,7 +1127,8 @@ if (fd > 0) fd = parms->data_connection; - rfc959_set_data_type (request, filename); + if ((ret = rfc959_set_data_type (request, filename)) < 0) + return (ret); if (parms->data_connection < 0 && (ret = rfc959_data_connection_new (request)) < 0) @@ -1690,6 +1693,19 @@ } +void +rfc959_copy_param_options (gftp_request * dest_request, + gftp_request * src_request) +{ + rfc959_parms * dparms, * sparms; + + dparms = dest_request->protocol_data; + sparms = src_request->protocol_data; + + dparms->is_ascii_transfer = sparms->is_ascii_transfer; +} + + int rfc959_init (gftp_request * request) { @@ -1719,6 +1735,7 @@ request->protonum = GFTP_FTP_NUM; request->init = rfc959_init; + request->copy_param_options = rfc959_copy_param_options; request->destroy = rfc959_request_destroy; request->read_function = gftp_fd_read; request->write_function = gftp_fd_write;
--- a/lib/sshv2.c Fri Nov 07 18:10:04 2003 +0000 +++ b/lib/sshv2.c Sat Nov 08 12:23:21 2003 +0000 @@ -2263,6 +2263,7 @@ request->protonum = GFTP_SSHV2_NUM; request->init = sshv2_init; + request->copy_param_options = NULL; request->destroy = sshv2_destroy; request->read_function = gftp_fd_read; request->write_function = gftp_fd_write;
--- a/src/gtk/transfer.c Fri Nov 07 18:10:04 2003 +0000 +++ b/src/gtk/transfer.c Sat Nov 08 12:23:21 2003 +0000 @@ -1227,15 +1227,23 @@ if (GFTP_IS_SAME_HOST_STOP_TRANS ((gftp_window_data *) tdata->fromwdata, tdata->fromreq)) - gftp_swap_socks (((gftp_window_data *) tdata->fromwdata)->request, - tdata->fromreq); + { + gftp_copy_param_options (((gftp_window_data *) tdata->fromwdata)->request, tdata->fromreq); + + gftp_swap_socks (((gftp_window_data *) tdata->fromwdata)->request, + tdata->fromreq); + } else gftp_disconnect (tdata->fromreq); if (GFTP_IS_SAME_HOST_STOP_TRANS ((gftp_window_data *) tdata->towdata, tdata->toreq)) - gftp_swap_socks (((gftp_window_data *) tdata->towdata)->request, - tdata->toreq); + { + gftp_copy_param_options (((gftp_window_data *) tdata->towdata)->request, tdata->toreq); + + gftp_swap_socks (((gftp_window_data *) tdata->towdata)->request, + tdata->toreq); + } else gftp_disconnect (tdata->toreq);