changeset 451:83cfffb2878a

2004-3-26 Brian Masney <masneyb@gftp.org> * lib/ftps.c lib/gftp.h lib/rfc959.c - when reestablishing a connection to a FTPS host, make sure the initial commands are sent over in plaintext * lib/protocols.c - make sure the port is displayed to the user in the proper byte order when getaddrinfo() is not included on the system * lib/misc.c (gftp_copy_request) - make sure req->init is not NULL before attempting to initialize the new request structure. This fixes a segfault that happened when viewing/editing a local file (from Chelban Vasile <mail4509@pochtamt.ru>) * docs/website/generate-gftp-website.pl - updated the STABLE_I386DEB filename * docs/website/index.html.in - updated the main website * docs/website/announce.txt - announcement for the 2.0.17 release
author masneyb
date Fri, 26 Mar 2004 21:03:51 +0000
parents 8a44a7a730f0
children 037e904642e8
files ChangeLog docs/website/announce.txt docs/website/generate-gftp-website.pl docs/website/index.html.in lib/ftps.c lib/gftp.h lib/misc.c lib/protocols.c lib/rfc959.c src/uicommon/gftpui.c src/uicommon/gftpui.h
diffstat 11 files changed, 113 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Mar 24 11:06:41 2004 +0000
+++ b/ChangeLog	Fri Mar 26 21:03:51 2004 +0000
@@ -1,3 +1,23 @@
+2004-3-26 Brian Masney <masneyb@gftp.org>
+	* lib/ftps.c lib/gftp.h lib/rfc959.c - when reestablishing a connection
+	to a FTPS host, make sure the initial commands are sent over in
+	plaintext
+
+	* lib/protocols.c - make sure the port is displayed to the user in the
+	proper byte order when getaddrinfo() is not included on the system
+
+	* lib/misc.c (gftp_copy_request) - make sure req->init is not NULL
+	before attempting to initialize the new request structure. This fixes
+	a segfault that happened when viewing/editing a local file
+	(from Chelban Vasile <mail4509@pochtamt.ru>)
+
+	* docs/website/generate-gftp-website.pl - updated the STABLE_I386DEB
+	filename
+
+	* docs/website/index.html.in - updated the main website
+
+	* docs/website/announce.txt - announcement for the 2.0.17 release
+
 2004-3-21 Brian Masney <masneyb@gftp.org>
 	* lib/ftps.c (ftps_auth_tls_start) - if the server rejects the
 	PROT C command, disconnect from the server
@@ -2373,7 +2393,7 @@
 
 	* cvsclean - added this script
 
-	* *.[ch] - added $Id: ChangeLog,v 1.252 2004/03/22 00:04:55 masneyb Exp $ tags
+	* *.[ch] - added $Id: ChangeLog,v 1.253 2004/03/26 21:03:48 masneyb Exp $ tags
 
 	* debian/* - updated files from Debian maintainer
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/website/announce.txt	Fri Mar 26 21:03:51 2004 +0000
@@ -0,0 +1,59 @@
+I am pleased to announce the availability of gFTP 2.0.17. Here is a summarized
+list of changes since version 2.0.16. For a full list of changes, please see
+the ChangeLog file that is included with the source distribution.
+
+* Separated out more of the UI independent code in the GTK+ and Text ports and
+  created a user interface common repository. Cleaned up some of the existing
+  GTK+ code. The GTK+ port can now be controlled from a command line interface
+  in the GUI. There is an option you have to enable in the options dialog for
+  this. (enable manual commands in GUI)
+* Added support for the FTPS protocol. The control connection is the only
+  one encrypted at the moment.
+* When viewing/editing a file, the temporary file that is created is created
+  with the same extension as the remote file so that syntax highlighting works
+* File transfers can be resumed/skipped/overwritten in the text port and
+  whenever files are dropped on gftp in the GTK+ port.
+* FTP: Added support for MVS directory listings
+* FTP: Fix for FXP transfers
+* SSH2: fix for resuming uploads
+* Added option to show the transfer status in the title bar.
+* Added option to disable IPV6 support.
+* Fixed the wrong date being displayed when a file was modified last year
+* 64 bit cleanups. This also fixed a SSH segfault that was happening on
+  FreeBSD
+* Look for the .gmo translation files in the proper directory
+* If a bookmark-ed site has it's password saved in the config file, then the
+  passwords are written out in a scrambled format. This isn't secure, but
+it'll
+  prevent someone from casually looking over your shoulder and seeing your
+  password. I still do not recommend saving your passwords to disk.
+* Fix for systems that do not support the %'ld format argument
+* The startup directory option is now expanded so that an option like
+  ~/src can be specified
+* New language translations and updates (ca cs de ga hr hu nl pt_BR sr sr@Latn
+  ta th)
+* Many other small changes and improvements. See the ChangeLog file in the
+  distribution for a detailed list of changes.
+
+MD5SUMs:
+
+
+I would like to thank the following people that have contributed code to gFTP
+since 2.0.16:
+
+Gwenole Beauchesne, Jamil Geor, Aurelien Jarno, Oliver Lehmann,
+Hans-J?rgen Sch?ler, Nam SungHyun and Chelban Vasile
+
+I would also like to thank the following people that have contributed
+translations to gFTP since 2.0.16:
+
+Danilo Ã~EÂ| egan, Vincent van Adrighem, Albert Astals Cid, Bernd Leibing,
+Duarte Loreto, Alastair McKinstry, Robert Sedak, Francisco Javier F. Serrador,
+Andras Timar, Miloslav Trmac, Murugapandian, Paisa Seeluangsawat,
+JoÃ~C£o Paulo Gomes Vanzuita, Gustavo Maciel Dias Vieira
+
+Also, thanks to everyone that has submitted bug reports or offered ideas for
+improvements.
+
+Brian
+
--- a/docs/website/generate-gftp-website.pl	Wed Mar 24 11:06:41 2004 +0000
+++ b/docs/website/generate-gftp-website.pl	Fri Mar 26 21:03:51 2004 +0000
@@ -14,7 +14,7 @@
            "STABLE_GZ" => "gftp-" . $version . ".tar.gz",
            "STABLE_I386RPM" => "gftp-" . $version . "-1.i386.rpm",
            "STABLE_SRCRPM" => "gftp-" . $version . "-1.src.rpm",
-           "STABLE_I386DEB" => "gftp_" . $version . "-1_i386.deb",
+           "STABLE_I386DEB" => "gftp_" . $version . "-1_all.deb",
            "STABLE_I386DEB_COMMON" => "gftp-common_" . $version . "-1_i386.deb",
            "STABLE_I386DEB_GTK" => "gftp-gtk_" . $version . "-1_i386.deb",
            "STABLE_I386DEB_TEXT" => "gftp-text_" . $version . "-1_i386.deb"); 
--- a/docs/website/index.html.in	Wed Mar 24 11:06:41 2004 +0000
+++ b/docs/website/index.html.in	Fri Mar 26 21:03:51 2004 +0000
@@ -35,26 +35,18 @@
 gFTP is a <a href="http://www.gnu.org/philosophy/free-sw.html">free</a> multithreaded ftp client for *NIX based machines running X11R6 or later. It has the following features:
 <UL>
 <LI>Distributed under the terms of the <a href="http://www.gnu.org/copyleft/gpl.html">GNU Public License Agreement</a>
-<LI>Written in C and has a text interface and a GTK+ 1.2/2.0 interface
-<LI>Supports the FTP, HTTP and SSH protocols
+<LI>Written in C and has a text interface and a GTK+ 1.2/2.x interface
+<LI>Supports the FTP, FTPS (control connection only), HTTP, HTTPS and SSH protocols
+<LI>FTP and HTTP proxy server support
 <LI>Supports FXP file transfers (transfering files between 2 remote servers via FTP)
-<LI>Multithreaded to allow for simultaneous downloads
-<LI>File transfer queues to allow for downloading multiple files
-<LI>Supports downloading entire directories and subdirectories
+<LI>Supports UNIX, EPLF, Novell, MacOS, VMS, MVS and NT (DOS) style directory listings
 <LI>Bookmarks menu to allow you to quickly connect to remote sites
-<LI>Supports resuming interrupted file transfers
-<LI>Supports caching of remote directory listings
-<LI>Drag-N-Drop support
-<LI>FTP and HTTP proxy server support
-<LI>Allows for passive and non-passive file transfers
-<LI>Supports UNIX, EPLF, Novell, MacOS, VMS, MVS and NT (DOS) style directory listings
-<LI>Full graphical configuration
 <LI>Fully Internationalized. I currently have a Amharic (am), Arabic (ar), Azerbaijani (az), Bangla (bn), Belarusian (be), Bulgarian (bg), Catalan (ca), Chinese (zh_TW,zh_CN), Croatian (hr), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Hungarian (hu), Irish (ga), Italian (it), Korean (ko), Japanese (ja), Macedonian (mk), Malayalam (ml), Malay (ms), Norwegian (no), Polish (pl), Portuguese (pt,pt_BR), Romanian (ro), Russian (ru), Serbian (sr,sr@Latn), Slovak (sk), Spanish (es), Swedish (sv), Tamil (ta), Thai (th), Turkish (tr) and Ukrainian (uk) translations available.
 </UL>
 
 <H2>Requirements</H2>
 <UL>
-<LI>GTK+ 1.2.3 or higher. GTK+/Glib is included with most systems now. If you don't have it installed, you may want to check to see if your vendor has a package available. If not, you can download the latest version of GTK+ and Glib from <A HREF="ftp://ftp.gtk.org/pub/gtk">ftp://ftp.gtk.org/pub/gtk</A>. gFTP will work with version 1.2 or 2.0 of GTK+, I would suggest using GTK+ 2.0, but installing GTK+ 2.0 does require installing more packages onto your system.
+<LI>GTK+ 1.2.3 or higher. GTK+/Glib is included with most systems now. If you don't have it installed, you may want to check to see if your vendor has a package available. If not, you can download the latest version of GTK+ and Glib from <A HREF="ftp://ftp.gtk.org/pub/gtk">ftp://ftp.gtk.org/pub/gtk</A>. gFTP will work with version 1.2 or 2.x of GTK+, I would suggest using GTK+ 2.x, but installing GTK+ 2.x does require installing more packages onto your system.
 <LI>pthread libraries. If you have a libc6 based machine (Debian 2.x+, Red Hat 5.x+), you should already have the pthread libraries installed. If you have a libc5 based machine, you will need to install LinuxThreads. You can download it from my website <A HREF="ftp://www.gftp.org/pub/gftp/libs/linuxthreads.tar.gz">here</A>. If you are running a pretty modern Linux distribution, this shouldn't be an issue. Also, if you don't have LinuxThreads installed, you most likely don't have thread safe X libraries. You must have thread safe X libraries or gFTP will constantly crash. You can download some thread safe X libraries off my website <A HREF="ftp://gftp.seul.org/pub/gftp/libs/XFree86-libs-3.3-2_threading.i386.tgz">here</A>. If you are on a platform other than GNU/Linux, you may want to take a look at the <A HREF="http://www.informatik.hu-berlin.de/~mueller/pthreads/">FSU Pthreads library</A>.
 <LI>I would recommend running X in at least 800x600 mode.
 </UL>
--- a/lib/ftps.c	Wed Mar 24 11:06:41 2004 +0000
+++ b/lib/ftps.c	Fri Mar 26 21:03:51 2004 +0000
@@ -113,6 +113,19 @@
 }
 
 
+static int
+ftps_connect (gftp_request * request)
+{
+  if (request->datafd > 0)
+    return (0);
+
+  request->read_function = gftp_fd_read;
+  request->write_function = gftp_fd_write;
+
+  return (rfc959_connect (request));
+}
+
+
 int
 ftps_init (gftp_request * request)
 {
@@ -128,6 +141,7 @@
   params = request->protocol_data;
   request->protonum = GFTP_FTPS_NUM;
   request->init = ftps_init;
+  request->connect = ftps_connect;
   params->auth_tls_start = ftps_auth_tls_start;
   request->get_next_file = ftps_get_next_file;
   request->post_connect = NULL;
--- a/lib/gftp.h	Wed Mar 24 11:06:41 2004 +0000
+++ b/lib/gftp.h	Fri Mar 26 21:03:51 2004 +0000
@@ -786,6 +786,8 @@
 					  gftp_file *fle, 
 					  int fd );
 
+int rfc959_connect 			( gftp_request * request );
+
 int ftps_init 				( gftp_request * request );
 
 void ftps_register_module		( void );
--- a/lib/misc.c	Wed Mar 24 11:06:41 2004 +0000
+++ b/lib/misc.c	Fri Mar 26 21:03:51 2004 +0000
@@ -615,7 +615,7 @@
                            req->local_options_vars,
                            req->num_local_options_vars);
 
-  if (req->init (newreq) < 0)
+  if (req->init != NULL && req->init (newreq) < 0)
     {
       gftp_request_destroy (newreq, 1);
       return (NULL);
--- a/lib/protocols.c	Wed Mar 24 11:06:41 2004 +0000
+++ b/lib/protocols.c	Fri Mar 26 21:03:51 2004 +0000
@@ -2076,16 +2076,14 @@
           close (sock);
           return (GFTP_EFATAL);
         }
-      else
-        {
-          port = serv_struct.s_port;
-          request->port = ntohs (serv_struct.s_port);
-        }
+
+      port = ntohs (serv_struct.s_port);
 
       if (!request->use_proxy)
-        request->port = ntohs (port);
+        request->port = port;
     }
-  remote_address.sin_port = port;
+
+  remote_address.sin_port = htons (port);
 
   if (request->hostp == NULL)
     {
@@ -2110,7 +2108,7 @@
               request->host.h_length);
       request->logging_function (gftp_logging_misc, request,
                                  _("Trying %s:%d\n"),
-                                 request->host.h_name, ntohs (port));
+                                 request->host.h_name, port);
 
       if (connect (sock, (struct sockaddr *) &remote_address,
                    sizeof (remote_address)) == -1)
@@ -2127,7 +2125,6 @@
       close (sock);
       return (GFTP_ERETRYABLE);
     }
-  port = ntohs (port);
 #endif /* HAVE_GETADDRINFO */
 
   if (fcntl (sock, F_SETFD, 1) == -1)
--- a/lib/rfc959.c	Wed Mar 24 11:06:41 2004 +0000
+++ b/lib/rfc959.c	Fri Mar 26 21:03:51 2004 +0000
@@ -426,7 +426,7 @@
 }
 
 
-static int
+int
 rfc959_connect (gftp_request * request)
 {
   char tempchar, *startpos, *endpos, *tempstr, *email, *proxy_hostname, *utf8;
--- a/src/uicommon/gftpui.c	Wed Mar 24 11:06:41 2004 +0000
+++ b/src/uicommon/gftpui.c	Fri Mar 26 21:03:51 2004 +0000
@@ -92,7 +92,7 @@
 {
   int ret;
 
-  if (gftpui_check_reconnect (cdata) < 0)
+  if (!cdata->dont_check_connection && gftpui_check_reconnect (cdata) < 0)
     return (0);
 
   if (gftp_protocols[cdata->request->protonum].use_threads)
@@ -647,6 +647,7 @@
   cdata->uidata = uidata;
   cdata->run_function = gftpui_common_run_connect;
   cdata->retries = retries;
+  cdata->dont_check_connection = 1;
 
   gftpui_common_run_callback_function (cdata);
 
--- a/src/uicommon/gftpui.h	Wed Mar 24 11:06:41 2004 +0000
+++ b/src/uicommon/gftpui.h	Fri Mar 26 21:03:51 2004 +0000
@@ -35,6 +35,7 @@
   GList * files;
   int retries;
   int (*run_function) (gftpui_callback_data * cdata);
+  unsigned int dont_check_connection : 1;
 };