changeset 307:76c912483d1d

2003-11-5 Brian Masney <masneyb@gftp.org> * TODO - updated * configure.in - updated version to 2.0.16. * configure.in docs/Makefile.am - Added check for the db2html command (from gtk+ configure) * docs/gftp-faq.sgml - updated with more informationA * docs/website/index.html.in - updated list of translations * lib/misc.c (expand_path) - expand paths with double slashes properly to support Novell directory listings. (gftp_build_path) - better checking of paths that end in /. (gftp_info) - show if _REENTRANT was defined when it was compiled. * README - removed, this is automatically generated now.
author masneyb
date Thu, 06 Nov 2003 03:19:04 +0000
parents 8978792d0855
children 758d9d648cc0
files ChangeLog README TODO configure.in docs/Makefile.am docs/gftp-faq.sgml docs/website/index.html.in lib/misc.c
diffstat 8 files changed, 404 insertions(+), 333 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Nov 04 02:56:11 2003 +0000
+++ b/ChangeLog	Thu Nov 06 03:19:04 2003 +0000
@@ -1,3 +1,22 @@
+2003-11-5 Brian Masney <masneyb@gftp.org>
+	* TODO - updated
+
+	* configure.in - updated version to 2.0.16.
+
+	* configure.in docs/Makefile.am - Added check for the db2html
+	command (from gtk+ configure)
+
+	* docs/gftp-faq.sgml - updated with more informationA
+
+	* docs/website/index.html.in - updated list of translations
+
+	* lib/misc.c (expand_path) - expand paths with double slashes
+	properly to support Novell directory listings.
+	(gftp_build_path) - better checking of paths that end in /.
+	(gftp_info) - show if _REENTRANT was defined when it was compiled.
+
+	* README - removed, this is automatically generated now.
+
 2003-11-3 Brian Masney <masneyb@gftp.org>
 	* docs/gftp-faq.sgml docs/Makefile.am - added initial SGML version
 	of the gFTP FAQ. I used the same format as the GTK+ FAQ.
@@ -1690,7 +1709,7 @@
 
 	* cvsclean - added this script
 
-	* *.[ch] - added $Id: ChangeLog,v 1.167 2003/11/04 02:56:10 masneyb Exp $ tags
+	* *.[ch] - added $Id: ChangeLog,v 1.168 2003/11/06 03:19:00 masneyb Exp $ tags
 
 	* debian/* - updated files from Debian maintainer
 
--- a/README	Tue Nov 04 02:56:11 2003 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-gFTP README
------------
-
-[Requirements]
-
-* 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 ftp://ftp.gtk.org/pub/gtk. gFTP will work with either version 1.2 
-  or 2.0 of GTK+, but I would recommend using GTK+ 2.0.
-* pthread libraries. Most systems already satisfy this requirement. If you are
-  on a platform other than Linux, you may want to take a look at the FSU 
-  Pthreads library at http://www.informatik.hu-berlin.de/~mueller/pthreads.
-
-[Installation Instructions]
-
-* If you do not want to compile gFTP yourself, you can check my webpage. I have
-  DEBs for Debian and RPMs for RedHat available. If you're looking for Solaris
-  binaries, check out http://www.sunfreeware.com.
-* If you are compiling gFTP yourself, extract the files from the distribution 
-  with tar -zxvf gftp-<version>.tar.gz
-* Go to the gftp-<version> directory and type 
-	
-	./configure
-	make
-
-  The configure script will generate a Makefile for your machine, and make
-  will compile a binary for your machine. By default, when you run
-  configure, it will install gFTP with the prefix /usr/local, so the gFTP
-  binary will be /usr/local/bin/gftp. You can change this by typing 
-  configure --prefix=/usr, and it will then install the gFTP binary to
-  /usr/bin/gftp.
-* If the compile suceeds without any errors, you can type make install to 
-  install the binary. This will also copy some necessary
-  files to <install prefix>/share/gftp. If you do not have root on your 
-  machine to install these files, copy the contents of the docs/sample.gftp/ 
-  directory to ~/.gftp.
-* You may want to glance at the USERS-GUIDE file that comes with this
-  distribution. It contains a little bit of information about how to use it.
-
-[Frequently Asked Questions]
-
-Here is a list of frequently asked questions about gFTP. You can always find
-the latest version of this FAQ on my website.
-
-*******************************************************************************
-
-Q: What systems is gFTP known to run on?
-
-A: I develop gFTP on a Debian GNU/Linux machine. Here is a list of other 
-   platforms I have received successful compile reports: 
-
-     * FreeBSD/NetBSD/OpenBSD/BSDI
-     * Solaris 
-     * IRIX
-     * Digital UNIX
-     * HP/UX 11
-
-   If gFTP compiles and runs on a platform not listed here, please email me 
-   about it and I'll add it to this list. If you are having problems compiling 
-   GTK+ or gFTP on another platform, try using GNU make instead of your vendor 
-   supplied make.
-
-*******************************************************************************
-
-Q: I'm having problems getting SSH2 transfers to work. I keep getting the error:
-   Error: Message size XXXXXXXX too big from server
-
-A: What probably is the problem, sftp-server isn't in your path on the remote
-   server. When you try to connect to the remote server, you'll see the command
-   gFTP is trying to run, and it'll look something like:
-
-   ssh -e none -l username hostname "echo -n xsftp ;  sftp-server"
-
-   Try running this command. If you get a prompt asking:
-
-   The authenticity of host 'hostname (###.###.###.###)' can't be established.
-   RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
-   Are you sure you want to continue connecting (yes/no)?
-
-   Tell it yes. gFTP won't even try to answer this question for you at the
-   moment. Then, if you get the following output:
-
-   Enter passphrase for key '/home/brian/.ssh/id_dsa':
-   xsftp
-   bash: sftp-server: command not found
-
-   You'll have to set the path to the sftp-server program. Alternatively you 
-   could go under FTP->Options->SSH and enable Use sftp subsys. If you enable
-   this, then you don't have to know the remote path to your sftp executable.
-   But if you enable this, gFTP won't be able to send your password over to
-   the ssh client. So if you're not using ssh-agent, then ssh will spawn the
-   ssh-askpass program to grab your password.
-
-*******************************************************************************
-
-Q: How do I force running the text or gtk+ version of gFTP?
-
-A: To run the text port, you can type gftp-text or to run the gtk+ port, you
-   can run the gftp-gtk. The gftp command is just a shell script that checks
-   if your DISPLAY variable is set, and if so it'll run the appropriate version.
-
-*******************************************************************************
-
-Q: Is there a way for gFTP to download a bunch of files/directories and then
-   exit when it's completed?
-
-A: Yes, the text port of gFTP supports this well. You can type:
-
-   gftp-text -d ftp://ftp.somesite.com/someplace
-
-   If someplace is a directory, it'll automatically download all of its 
-   subdirectories as well. If you want to transfer a file through ssh instead 
-   of ftp, just change the ftp:// to ssh://.
-
-*******************************************************************************
-
-Q: In the GTK+ version of gFTP, do I have to enter a port, username and password
-   to connect to a ftp server?
-
-A: No you don't. If you leave the port blank, it'll default to the default port
-   for the protocol you selected (port 21 for FTP). If you leave the username
-   blank, it will default to logging in as anonymous.
-
-*******************************************************************************
-
-Q: How do I set up my HTTP Proxy server?
-
-A: Go under FTP->Options and hit the FTP tab. Enter HTTP as the proxy type
-   and fill in your proxy server info on that screen. Then hit the HTTP tab
-   and enter your same proxy server info there.
-
-*******************************************************************************
-
-Q: When gFTP tries to get the remote directory listing, the remote server 
-   complains about either the -a or -L argument to LIST.
-
-A: If the server is complaining about the -L option, go under FTP->Options->FTP
-   and disable resolve remote symlinks. If it is complaining about the -a
-   option, go to FTP->Options->General and disable show hidden files.
-
-*******************************************************************************
-
-Q: When gFTP tries to get the remote directory listing, I receive the error:
-   Cannot create a data connection: Connection refused
-
-A: Go under FTP->Options and turn off passive file transfers. Instead of 
-   sending the PASV command to open up the data connection on the server side,
-   the data connection will be opened up on the client side, and the PORT
-   command will be sent to the server instead.
-
-*******************************************************************************
-
-Q: When I try to compile gFTP, I get some errors. One of them is undefined
-   symbol LC_ALL.
-
-A: Try running make distclean ; configure --with-included-gettext. You could 
-   alternatively pass --disable-nls to configure, and internationalization
-   support will not be compiled in.
-
-*******************************************************************************
-
-Q: How do I report bugs in gFTP?
-
-A: If you find ANY bugs in gFTP, please check to make sure that you are using
-   the latest version of gFTP. If you are, please submit all bug reports to
-   GNOME's Bugzilla. When sending in bug reports, please try to be as 
-   descriptive as possible. Send me what OS/version you are running, what 
-   compiler you are compiling with, and any other important information. If
-   you get gFTP to crash, it would be very helpful if you could send me a 
-   backtrace. If you do not know how to do a backtrace, download the source
-   code from my website. Edit the Makefile, and make sure that -g appear in 
-   the CFLAGS variable. Then recompile gFTP, but do NOT do a make install 
-   because it will install a stripped binary in $PREFIX/bin. Then type 
-   gdb ./gftp. Once you have a (gdb) prompt, type r. When gFTP crashes, 
-   go back to that terminal window, and type bt, and put that output in the
-   bug that you file with bugzilla.
-
-   I also have a gftp-users mailinglist setup. I have a link to the archives
-   on my main webpage.
-
-*******************************************************************************
-
-Q: Where does gFTP store it's options?
-
-A: gFTP will automatically create a ~/.gftp directory when it is first run.
-   Your config file is ~/.gftp/gftprc, and this is where all of gFTP's
-   settings are stored. The config file is well commented, so take a glance
-   at it and see if there is anything you want to change. Your bookmarks are
-   stored in the file ~/.gftp/bookmarks
-
-*******************************************************************************
-
-Q: I am trying to compile your program and I get some parse errors before
-   GdkDragContext. What's wrong?
-
-A: You have an older version of gtk installed on your system. If you are
-   using Red Hat or Debian Linux, simply remove the gtk and glib devel
-   packages. You can still leave the gtk 1.0 libraries installed.
-
-*******************************************************************************
-
-Q: I am having a hard time using the drag and drop in gFTP. How do I use it?
-
-A: To drag from the file listboxes in gFTP, you have to drag with button #3.
-   On a two button mouse, you have to hold down both buttons. For this to work
-   tho, you have to edit your XF86Config file, and go to the Pointer section.
-   You have to make sure Emulate3Buttons is in there. Here's the section out of
-   my config file:
-
-   Section "Pointer"
-      Protocol        "PS/2"             # This will depend on your mouse
-      Device          "/dev/mouse"       # This will also depend on your mouse
-      Emulate3Buttons                    # You need this for a 2 button mouse
-   EndSection
-
-*******************************************************************************
-
-Q: I have a libc 5 based machine and everytime I run gFTP it instantly crashes. 
-   I get an error something like: Gdk-ERROR **: an x io error occurred 
-   What's wrong?
-
-A: Your X libraries are not thread safe. They must be compiled with 
-   -D_REENTRANT. You can either recompile your X libraries, or you can
-   download some from my webpage at
-   http://www.gftp.org/XFree86-libs-3.3-2_threading.i386.tgz
-
-
-Brian Masney <masneyb@gftp.org> 
-gFTP Official Webpage - http://www.gftp.org/
-
--- a/TODO	Tue Nov 04 02:56:11 2003 +0000
+++ b/TODO	Thu Nov 06 03:19:04 2003 +0000
@@ -2,24 +2,13 @@
 of gFTP. If there is something you feel should be included in a future
 version of gFTP, please email me about it.
 
-Items to fix for 2.0.16:
-
-* Edit, if there is a timeout on the remote side hwen you go to upload, it waits
-  for 30 secs
-* ASCII transfers corrupt the file
-* FreeBSD SSHV2 upload crash. I can't reproduce this under Linux
-* HTTP Support: The following directory listing does not work:
-  http://ftp.redhat.com/pub/redhat/linux/updates/9/en/os/i386
-* When getting the list of files/directories, don't make the window always
-  stay on top. It's annoying for large directory listings
-
-Other items for a later version:
-
 * I need to be able to send an event from the core library to the presentation
   layer to have it ask the user a question. I need this for the SSL layer so 
   that if an unknown certificate authority signed the certificate, the user
   can be prompted whether or not to accept it. Also, it would be handy to 
   prompt the user for their password if a bad password was entered. 
+* Text Port - resume transfers, add --mirror option, --continue option
+  and --background options to the command line.
 * DND - be able to resume transfers
 * HTTP - keepalive
 * Support tabbed interface in GTK+ port
@@ -40,9 +29,9 @@
 * Make it execute a program on a url (say rpm -qpi ftp://site.com/file.rpm)
 * Full Gnome compatibility.
 * Add registered file extensions to options dialog
-* VMS directory listings
-* Add automatic refresh interval (maybe, this could be used to get around 
-  timeouts remote servers may set)
+* Multiline VMS directory listings
+  BIN.DIR;1               
+       2/35         24-JUL-2003 10:51:02  [TST,JAQUAY_TST]    (RWE,RWE,RWE,RE)
 * HTTP: Support CONNECT method in Squid proxy
 * Add support for SRP protocol (http://srp.stanford.edu/srp)
 * Add support for DAV protocol
--- a/configure.in	Tue Nov 04 02:56:11 2003 +0000
+++ b/configure.in	Thu Nov 06 03:19:04 2003 +0000
@@ -3,7 +3,7 @@
 AC_INIT(lib/gftp.h)
 
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(gftp,2.0.16pre0)
+AM_INIT_AUTOMAKE(gftp,2.0.16)
 
 AC_ARG_ENABLE(gtk20, 
               [  --disable-gtk20	  Don't look for GTK+ 2.0 libraries], 
@@ -282,4 +282,7 @@
 
 AM_GNU_GETTEXT
 
-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_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)
--- a/docs/Makefile.am	Tue Nov 04 02:56:11 2003 +0000
+++ b/docs/Makefile.am	Thu Nov 06 03:19:04 2003 +0000
@@ -10,3 +10,41 @@
 
 Iconsdir = $(datadir)/pixmaps
 Icons_DATA = gftp.png
+
+if HAVE_DOCBOOK
+
+html:
+	if test -w $(srcdir); then \
+		(cd $(srcdir); \
+		db2html -u gftp-faq.sgml); \
+	fi
+
+pdf:
+	if test -w $(srcdir); then \
+		(cd $(srcdir); db2pdf gftp-faq.sgml); \
+	fi
+
+dist-hook: html
+	cp $(srcdir)/gftp-faq/gftp-faq.html $(distdir)/../README.html
+	html2text -nobs -o $(distdir)/../README -style pretty $(srcdir)/gftp-faq/gftp-faq.html 
+
+else
+
+html:
+	echo "***"
+	echo "*** Warning: FAQ not built"
+	echo "***"
+
+pdf:
+	echo "***"
+	echo "*** Warning: FAQ not built"
+	echo "***"
+
+dist-hook:
+	echo "***"
+	echo "*** Warning: FAQ not built"
+	echo "*** DISTRIBUTION IS INCOMPLETE"
+	echo "***"
+
+endif
+
--- a/docs/gftp-faq.sgml	Tue Nov 04 02:56:11 2003 +0000
+++ b/docs/gftp-faq.sgml	Thu Nov 06 03:19:04 2003 +0000
@@ -1,8 +1,12 @@
 <!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" []>
+
+<!-- Note: I used the format of the GTK+ FAQ to build this document -->
+<!-- Please let me know if there are other ways to improve upon this -->
+
 <book>
 
 <bookinfo>
-  <date>October 31st 2003</date>
+  <date>November 5th 2003</date>
   <title>gFTP FAQ</title>
   <authorgroup>
     <author>
@@ -10,21 +14,110 @@
       <surname>Masney</surname>
     </author>
   </authorgroup>
+
+  <abstract>
+    <para>This document is intended to answer questions that are
+    likely to be frequently asked by users of gFTP.</para>
+  </abstract>
+
 </bookinfo>
 
 <toc></toc>
 
 <!-- ***************************************************************** -->
+
 <chapter>
 <title>General Information</title>
 
 <!-- ----------------------------------------------------------------- -->
 
 <sect1>
+<title>What are the requirements to run gFTP?</title>
+
+<para>
+<itemizedlist>
+<listitem><simpara>
+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 
+<ulink url="ftp://ftp.gtk.org/pub/gtk">ftp://ftp.gtk.org/pub/gtk</ulink>.
+gFTP will work with either version 1.2 or 2.0 of GTK+, but I would recommend
+using GTK+ 2.0.
+</simpara></listitem>
+<listitem><simpara>
+pthread libraries. Most systems already satisfy this requirement. If you are
+on a platform other than Linux, you may want to take a look at the FSU
+Pthreads library at <ulink url="http://www.informatik.hu-berlin.de/~mueller/pthreads">http://www.informatik.hu-berlin.de/~mueller/pthreads</ulink>.
+</simpara></listitem>
+</itemizedlist>
+</para>
+
+</sect1>
+
+<!-- ----------------------------------------------------------------- -->
+
+<sect1>
+<title>How do I install gFTP?</title>
+
+<para>
+<itemizedlist>
+
+<listitem><simpara>
+If you do not want to compile gFTP yourself, you can check my webpage. I have
+DEBs for Debian and RPMs for RedHat available. If you're looking for Solaris
+binaries, check out <ulink url="http://www.sunfreeware.com">http://www.sunfreeware.com</ulink>.
+</simpara></listitem>
+
+<listitem><simpara>
+If you are compiling gFTP yourself, extract the files from the distribution
+with tar -zxvf gftp-&lt;version&gt;.tar.gz
+</simpara></listitem>
+
+<listitem><simpara>
+Go to the gftp-&lt;version&gt; directory and type 
+</simpara>
+
+<literallayout>
+<literal>./configure</literal>
+<literal>make</literal>
+</literallayout>
+
+<simpara>
+The configure script will generate a Makefile for your machine, and make
+will compile a binary for your machine. By default, when you run
+configure, it will install gFTP with the prefix /usr/local, so the gFTP
+binary will be /usr/local/bin/gftp. You can change this by typing
+configure --prefix=/usr, and it will then install the gFTP binary to
+/usr/bin/gftp.
+</simpara>
+</listitem>
+
+<listitem><simpara>
+If the compile suceeds without any errors, you can type make install to 
+install the binary. This will also copy some necessary
+files to &lt;install prefix&gt;/share/gftp. If you do not have root on your
+machine to install these files, copy the contents of the docs/sample.gftp/
+directory to ~/.gftp. 
+</simpara></listitem>
+<listitem><simpara>
+You may want to glance at the USERS-GUIDE file that comes with this
+distribution. It contains a little bit of information about how to use it.
+</simpara></listitem>
+
+</itemizedlist>
+</para>
+
+</sect1>
+
+<!-- ----------------------------------------------------------------- -->
+
+<sect1>
 <title>What systems is gFTP known to run on?</title>
 
-<para>I develop gFTP on a Debian GNU/Linux machine. Here is a list of other
-platforms I have received successful compile reports:</para>
+<para>I develop gFTP on a Debian GNU/Linux machine. It should run under
+any other Linux distributions. Here is a list of other platforms I have
+received successful compile reports:</para>
 
 <itemizedlist>
 <listitem><simpara>FreeBSD/NetBSD/OpenBSD/BSDI</simpara></listitem>
@@ -43,39 +136,65 @@
 <!-- ----------------------------------------------------------------- -->
 
 <sect1>
-<title>I'm having problems getting SSH2 transfers to work. I keep getting the
-error: <emphasis>Error: Message size XXXXXXXX too big from server</emphasis>
-</title>
+<title>Does gFTP have a CVS repository?</title>
+
+<para>gFTP is stored in GNOME's CVS repository. For instructions on how to
+setup your CVS client, you can visit the webpage
+<ulink url="http://developer.gnome.org/tools/cvs.html">http://developer.gnome.org/tools/cvs.html</ulink> for instructions. In a nutshell, you will need to run
+the following commands (this assumes you are using the <emphasis>bash</emphasis>
+shell):</para>
+
+<para>
+
+<literallayout>
+<literal>export CVSROOT=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome"</literal>
+<literal>cvs login</literal>
+</literallayout>
 
-<para>What probably is the problem, sftp-server isn't in your path on the
-remote server. When you try to connect to the remote server, you'll see the
-command gFTP is trying to run, and it'll look something like:</para>
+Just hit enter at the password prompt since there is no password.
+
+<literallayout>
+<literal>cvs co gftp</literal>
+</literallayout>
 
-<para><literallayout><literal>ssh -e none -l username hostname "echo -n xsftp ;  sftp-server"</literal></literallayout</para>
+</para>
 
-<para>Try running this command. If you get a prompt asking:</para>
+<para>
+To compile the CVS code, you will need <emphasis>autoconf</emphasis>,
+<emphasis>automake 1.4</emphasis> and <emphasis>gettext</emphasis>
+installed on your system. To generate a configure script, you will
+need to run <emphasis>autogen.sh</emphasis>. Once this script is
+generated, you can follow the normal installation instructions.
 
-<para><literallayout><literal>
-The authenticity of host 'hostname (###.###.###.###)' can't be established.
-RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
-Are you sure you want to continue connecting (yes/no)?
-</literal></literallayout></para>
+</sect1>
 
-<para>Tell it yes. gFTP won't even try to answer this question for you at the
-moment. Then, if you get the following output:</para>
+<!-- ----------------------------------------------------------------- -->
+
+<sect1>
+<title>How do I report bugs in gFTP?</title>
 
-<para><literallayout><literal>
-Enter passphrase for key '/home/brian/.ssh/id_dsa':
-xsftp
-bash: sftp-server: command not found
-</literal></literallayout></para>
+<para>If you find ANY bugs in gFTP, please check to make sure that you are using
+the latest version of gFTP. If you are, please submit all bug reports to
+GNOME's Bugzilla. When sending in bug reports, please try to be as
+descriptive as possible. Send me what OS/version you are running, what
+compiler you are compiling with, the output of <emphasis>gftp --info</emphasis>
+and any other important information. If you get gFTP to crash, it would be very
+helpful if you could send me a backtrace. If you do not know how to do a
+backtrace, download the source code from my website. Edit the Makefile, and
+make sure that -g appears in the CFLAGS variable. Then recompile gFTP, but do
+NOT run make install because it will install a stripped binary in $PREFIX/bin.
+Then type gdb ./gftp. Once you have a (gdb) prompt, type r. When gFTP crashes,
+go back to that terminal window, and type bt, and put that output in the bug
+that you file with bugzilla.</para>
 
-<para>You'll have to set the path to the sftp-server program. Alternatively
-you could go under FTP->Options->SSH and enable Use sftp subsys. If you enable
-this, then you don't have to know the remote path to your sftp executable.
-But if you enable this, gFTP won't be able to send your password over to
-the ssh client. So if you're not using ssh-agent, then ssh will spawn the
-ssh-askpass program to grab your password.</para>
+<para>I also have a gftp-users mailinglist setup. I have a link to the archives
+on my main webpage. If it is strictly a bug report, please submit it to
+Bugzilla instead of the mailinglist. Bugs that are submitted to bugzilla are
+much easier for me to track.</para>
+
+<para>Also, if you do not get a response back from me immediately, that is not
+uncommon. I usually stay very busy and I don't get to work on gFTP all of the
+time.</para>
 
 </sect1>
 
@@ -128,16 +247,25 @@
 <!-- ----------------------------------------------------------------- -->
 
 <sect1>
-<title>How do I set up my HTTP Proxy server?</title>
+<title>Where does gFTP store it's options?</title>
 
-<para>Go under <emphasis>FTP->Options</emphasis> and hit the FTP tab. Enter
-HTTP as the proxy type and fill in your proxy server info on that screen.
-Then hit the HTTP tab and enter your same proxy server info there.</para>
+<para>gFTP will automatically create a ~/.gftp directory when it is first run.
+Your config file is ~/.gftp/gftprc, and this is where all of gFTP's
+settings are stored. The config file is well commented, so take a glance
+at it and see if there is anything you want to change. Your bookmarks are
+stored in the file ~/.gftp/bookmarks</para>
 
 </sect1>
 
 <!-- ----------------------------------------------------------------- -->
 
+</chapter>
+
+<!-- ***************************************************************** -->
+
+<chapter>
+<title>FTP Protocol</title>
+
 <sect1>
 <title>When gFTP tries to get the remote directory listing, the remote server
 complains about either the -a or -L argument to LIST.</title>
@@ -166,9 +294,81 @@
 
 <!-- ----------------------------------------------------------------- -->
 
+</chapter>
+
+<!-- ***************************************************************** -->
+
+<chapter>
+<title>SSH Protocol</title>
+
 <sect1>
-<title>When I try to compile gFTP, I get some errors. One of them is undefined
-symbol LC_ALL.</title>
+<title>I'm having problems getting SSH2 transfers to work. I keep getting the
+error: <emphasis>Error: Message size XXXXXXXX too big from server</emphasis>
+</title>
+
+<para>What probably is the problem, sftp-server isn't in your path on the
+remote server. When you try to connect to the remote server, you'll see the
+command gFTP is trying to run, and it'll look something like:</para>
+
+<para><literallayout><literal>ssh -e none -l username hostname "echo -n xsftp ;  sftp-server"</literal></literallayout</para>
+
+<para>Try running this command. If you get a prompt asking:</para>
+
+<para><literallayout>
+<literal>The authenticity of host 'hostname (###.###.###.###)' can't be established.</literal>
+<literal>RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.</literal>
+<literal>Are you sure you want to continue connecting (yes/no)?</literal>
+</literallayout></para>
+
+<para>Tell it yes. gFTP won't even try to answer this question for you at the
+moment. Then, if you get the following output:</para>
+
+<para><literallayout>
+<literal>Enter passphrase for key '/home/brian/.ssh/id_dsa':</literal>
+<literal>xsftp</literal>
+<literal>bash: sftp-server: command not found</literal>
+</literallayout></para>
+
+<para>You'll have to set the path to the sftp-server program. Alternatively
+you could go under FTP->Options->SSH and enable Use sftp subsys. If you enable
+this, then you don't have to know the remote path to your sftp executable.
+But if you enable this, gFTP won't be able to send your password over to
+the ssh client. So if you're not using ssh-agent, then ssh will spawn the
+ssh-askpass program to grab your password.</para>
+
+</sect1>
+
+<!-- ----------------------------------------------------------------- -->
+
+</chapter>
+
+<!-- ***************************************************************** -->
+
+<chapter>
+<title>HTTP Protocol</title>
+
+<sect1>
+<title>How do I set up my HTTP Proxy server?</title>
+
+<para>Go under <emphasis>FTP->Options</emphasis> and hit the FTP tab. Enter
+HTTP as the proxy type and fill in your proxy server info on that screen.
+Then hit the HTTP tab and enter your same proxy server info there.</para>
+
+</sect1>
+
+<!-- ----------------------------------------------------------------- -->
+
+</chapter>
+
+<!-- ***************************************************************** -->
+
+<chapter>
+<title>Compiling Problems</title>
+
+<sect1>
+<title>When I try to compile gFTP, I see undefined symbol
+<emphasis>libintl_gettext</emphasis>. Or, another error is
+<emphasis>undefined symbol LC_ALL.</emphasis></title>
 
 <para>Try running
 
@@ -189,43 +389,6 @@
 <!-- ----------------------------------------------------------------- -->
 
 <sect1>
-<title>How do I report bugs in gFTP?</title>
-
-<para>If you find ANY bugs in gFTP, please check to make sure that you are using
-the latest version of gFTP. If you are, please submit all bug reports to
-GNOME's Bugzilla. When sending in bug reports, please try to be as
-descriptive as possible. Send me what OS/version you are running, what
-compiler you are compiling with, and any other important information. If
-you get gFTP to crash, it would be very helpful if you could send me a
-backtrace. If you do not know how to do a backtrace, download the source
-code from my website. Edit the Makefile, and make sure that -g appear in
-the CFLAGS variable. Then recompile gFTP, but do NOT do a make install
-because it will install a stripped binary in $PREFIX/bin. Then type
-gdb ./gftp. Once you have a (gdb) prompt, type r. When gFTP crashes,
-go back to that terminal window, and type bt, and put that output in the
-bug that you file with bugzilla.</para>
-
-<para>I also have a gftp-users mailinglist setup. I have a link to the archives
-on my main webpage.</para>
-
-</sect1>
-
-<!-- ----------------------------------------------------------------- -->
-
-<sect1>
-<title>Where does gFTP store it's options?</title>
-
-<para>gFTP will automatically create a ~/.gftp directory when it is first run.
-Your config file is ~/.gftp/gftprc, and this is where all of gFTP's
-settings are stored. The config file is well commented, so take a glance
-at it and see if there is anything you want to change. Your bookmarks are
-stored in the file ~/.gftp/bookmarks</para>
-
-</sect1>
-
-<!-- ----------------------------------------------------------------- -->
-
-<sect1>
 <title>I am trying to compile your program and I get some parse errors before
 GdkDragContext. What's wrong?</title>
 
@@ -239,4 +402,83 @@
 
 </chapter>
 
+<!-- ***************************************************************** -->
+
+<chapter>
+<title>Issues for older releases</title>
+
+<sect1>
+<title>What is the difference between the SSH and SSH2 protocols?</title>
+
+<para>The SSH protocol uses sftp >= 0.7 from 
+<ulink url="http://www.xbill.org/sftp">http://www.xbill.org/sftp</ulink>.
+SSH2 uses the native file transfers found in the commercial SSH2 and in later
+versions of OpenSSH. The SSH2 protocol uses the sftp-server executable on
+the remote host and the SSH protocol uses the sftpserv executable.</para>
+
+<para>Note: Due to confusion, the origional SSH protocol was removed in gFTP
+2.0.15. It is not shown in gFTP 2.0.14, but there is a config option called
+enable_old_ssh to enable this protocol.</para>
+
+</sect1>
+
+<!-- ----------------------------------------------------------------- -->
+
+<sect1>
+<title>I downloaded a binary off the internet and everytime I run gFTP I get an
+error saying: <emphasis>undefined symbol :__register_frame_info</emphasis></title>
+   
+<para>ObiTuarY &lt;obituary@freshmeat.net&gt; says:</para>
+
+<para>This happens when you compile a library with egcs. The library then has 
+the __register_frame_info symbol. If you link a program to it, it will
+require this symbol. Now if you have the exact same library compiled with
+gcc 2.7.2.3 it won't have this symbol. The thing about glibc 2.1 under Red
+Hat 6 is it was compiled with egcs and glibc 2.0.x under Red Hat 5.x was
+compiled with gcc 2.7.2.3, therefore it's not an incompatibility between
+glibc 2.0.x and 2.1.x. What some people do for that is they get the .o file
+of egcs with __register_frame_info in it and link into the program so it's
+always there, that way it works with libs compiled with egcs or gcc 2.7.2.3.
+(in /usr/lib/gcc-lib/i386-*-linux/egcs-*/ )"</para>
+
+<para>Another alternative, is to recompile gFTP on your machine, or you can
+download some RPMs off my website that were compiled against Red Hat
+5.2.</para>
+
+</sect1>
+
+<!-- ----------------------------------------------------------------- -->
+
+<sect1>
+<title>I upgraded to a newer version of gFTP and now I am getting some warnings
+about some config file lines not having enough arguments, and it cannot find
+html.xpm.</title>
+
+<para>This is from upgrading from a very old version of gFTP to a newer version.
+I removed some icons from the distribution (0.20 to 0.21). Edit your
+~/.gftp/gftprc file. At the bottom of the file, there are some ext= lines.
+Some of them have html.xpm, rpm.xpm and pdf.xpm. Remove these lines and gFTP
+will startup fine. Don't worry about fixing he warnings...they will go away
+themselves whenever you change an option in gFTP.</para>
+
+</sect1>
+
+<!-- ----------------------------------------------------------------- -->
+
+<sect1>
+<title>I have a libc 5 based machine and everytime I run gFTP it instantly
+crashes.  I get an error something like:
+<emphasis>Gdk-ERROR **: an x io error occurred</emphasis></title>
+
+<para>Your X libraries are not thread safe. They must be compiled with
+-D_REENTRANT. You can either recompile your X libraries, or you can download
+some from my webpage at
+<ulink url="http://www.gftp.org/XFree86-libs-3.3-2_threading.i386.tgz">http://www.gftp.org/XFree86-libs-3.3-2_threading.i386.tgz</ulink></para>
+
+</sect1>
+
+<!-- ----------------------------------------------------------------- -->
+
+</chapter>
+
 </book>
--- a/docs/website/index.html.in	Tue Nov 04 02:56:11 2003 +0000
+++ b/docs/website/index.html.in	Thu Nov 06 03:19:04 2003 +0000
@@ -50,7 +50,7 @@
 <LI>Allows for passive and non-passive file transfers
 <LI>Supports UNIX, EPLF, Novell, MacOS, and NT (DOS) style directory listings
 <LI>Full graphical configuration
-<LI>Fully Internationalized. I currently have a Amharic (am), Arabic (ar), Belarusian (be), Bulgarian (bg), Catalan (ca), Chinese (zh_TW,zh_CN), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Hungarian (hu), Italian (it), Korean (ko), Japanese (ja), Macedonian (mk), Malayalam (ml), Malay (ms), Norwegian (no), Polish (pl), Portuguese (pt_BR), Romanian (ro), Russian (ru), Serbian (sr,sr@Latn), Spanish (es), Swedish (sv) and Turkish (tr) translations available.
+<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), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Hungarian (hu), Italian (it), Korean (ko), Japanese (ja), Macedonian (mk), Malayalam (ml), Malay (ms), Norwegian (no), Polish (pl), Portuguese (pt_BR), Romanian (ro), Russian (ru), Serbian (sr,sr@Latn), Slovak (sk), Spanish (es), Swedish (sv) and Turkish (tr) translations available.
 </UL>
 
 <H2>Requirements</H2>
--- a/lib/misc.c	Tue Nov 04 02:56:11 2003 +0000
+++ b/lib/misc.c	Thu Nov 06 03:19:04 2003 +0000
@@ -151,7 +151,8 @@
 char *
 expand_path (const char *src)
 {
-  char *str, *pos, *endpos, *prevpos, *newstr, *tempstr, tempchar;
+  char *str, *pos, *endpos, *prevpos, *newstr, *tempstr, *ntoken,
+       tempchar;
   struct passwd *pw;
 
   pw = NULL;
@@ -178,22 +179,28 @@
   while ((pos = strchr (endpos, '/')) != NULL)
     {
       pos++;
-      while (*pos == '/')
-        pos++;
 
-      if ((endpos = strchr (pos, '/')) == NULL)
+      for (ntoken = pos; *ntoken == '/'; ntoken++);
+
+      if ((endpos = strchr (ntoken, '/')) == NULL)
 	endpos = pos + strlen (pos);
 
       tempchar = *endpos;
       *endpos = '\0';
 
-      if (strcmp (pos, "..") == 0)
+      if (strcmp (ntoken, "..") == 0)
 	{
-	  *(pos - 1) = '\0';
 	  if (newstr != NULL && (prevpos = strrchr (newstr, '/')) != NULL)
-	    *prevpos = '\0';
+            {
+	      *prevpos = '\0';
+              if (*newstr == '\0')
+                {
+                  g_free (newstr);
+                  newstr = NULL;
+                }
+            }
 	}
-      else if (strcmp (pos, ".") != 0)
+      else if (strcmp (ntoken, ".") != 0)
 	{
 	  if (newstr == NULL)
 	    newstr = g_strdup (pos - 1);
@@ -215,7 +222,7 @@
   if (endpos != NULL && *endpos != '\0' && newstr == NULL)
     {
       if (strcmp (endpos, "..") == 0)
-        newstr = g_malloc0 (1);
+        newstr = g_strdup ("/");
       else
         newstr = g_strdup (endpos);
     }
@@ -360,6 +367,10 @@
 
   printf ("%s\n", gftp_version);
 
+#ifdef _REENTRANT
+  printf ("#define _REENTRANT\n");
+#endif
+
 #ifdef _GNU_SOURCE
   printf ("#define _GNU_SOURCE\n");
 #endif
@@ -1229,7 +1240,7 @@
     {
       len = strlen (element);
 
-      if (len > 0 && element[len - 1] == '/')
+      if (retlen > 0 && ret[retlen - 1] == '/')
         add_separator = 0;
       else
         {