Merge pull request #26 from glyptodon/improved-auth
GUAC-1331: Document support for multiple auth extensions
diff --git a/src/chapters/images/file-browser.png b/src/chapters/images/file-browser.png
new file mode 100644
index 0000000..f531374
--- /dev/null
+++ b/src/chapters/images/file-browser.png
Binary files differ
diff --git a/src/chapters/images/file-transfers.png b/src/chapters/images/file-transfers.png
new file mode 100644
index 0000000..3566bc5
--- /dev/null
+++ b/src/chapters/images/file-transfers.png
Binary files differ
diff --git a/src/chapters/images/guacamole-client-interface.png b/src/chapters/images/guacamole-client-interface.png
index 5a9e327..5596c9d 100644
--- a/src/chapters/images/guacamole-client-interface.png
+++ b/src/chapters/images/guacamole-client-interface.png
Binary files differ
diff --git a/src/chapters/images/guacamole-drive-download.png b/src/chapters/images/guacamole-drive-download.png
new file mode 100644
index 0000000..1b16ca0
--- /dev/null
+++ b/src/chapters/images/guacamole-drive-download.png
Binary files differ
diff --git a/src/chapters/images/guacamole-drive.png b/src/chapters/images/guacamole-drive.png
new file mode 100644
index 0000000..8395e4b
--- /dev/null
+++ b/src/chapters/images/guacamole-drive.png
Binary files differ
diff --git a/src/chapters/using.xml b/src/chapters/using.xml
index 8297e5f..ae072c1 100644
--- a/src/chapters/using.xml
+++ b/src/chapters/using.xml
@@ -121,7 +121,7 @@
desktop</para>
</listitem>
<listitem>
- <para>Uploading files and monitoring file transfer progress</para>
+ <para>Uploading and downloading files</para>
</listitem>
<listitem>
<para>Selecting alternative methods of typing or controlling the mouse,
@@ -183,30 +183,99 @@
</indexterm>
<para>You can transfer files back and forth between your local computer and the remote
desktop if it is supported by the underlying protocol and enabled on the connection.
- Currently, both RDP and SSH have support for file transfer, though with slightly
- different semantics. RDP provides file transfer by emulating a virtual drive, while SSH
- provides file transfer by using SFTP.</para>
- <para>To transfer files to the remote computer, drag the files into your browser window, or
- use the "Upload Files" button within the Guacamole menu. If file transfer is enabled,
- you will see a progress indicator appear within the menu. If file transfer is not
- enabled or not supported, you will instead see a notification with an error message
- describing the problem. Completed transfers can be removed from the list by clicking
- "Clear Completed Transfers".</para>
- <para>The method for downloading files from the remote computer depends on the protocol. In
- the case of RDP, you must drag, copy, move, or save the files into the special
- "Download" folder located in the virtual drive. All files dropped into this folder will
- automatically begin uploading to the client, and thus downloading through your
- browser.</para>
- <para><indexterm>
- <primary>guacctl</primary>
- </indexterm>To download files over SSH, you must use the <command>guacctl</command>
- utility. The <command>guacctl</command> utility is a simple shell script that is <link
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xlink:href="https://raw.githubusercontent.com/glyptodon/guacamole-server/master/bin/guacctl"
- >included with Guacamole</link> and allows you to initiate a file download or to
- change the directory in which uploaded files will be placed:</para>
- <informalexample>
- <screen><prompt>$</prompt> <userinput>guacctl</userinput>
+ Currently, Guacamole supports file transfer for VNC, RDP, and SSH, using either the
+ native file transfer support of the protocol or SFTP.</para>
+ <para>Files can be transferred to the remote computer by dragging and dropping the files
+ into your browser window, or through using the file browser located in the Guacamole
+ menu.</para>
+ <section xml:id="file-browser">
+ <title>Using the file browser</title>
+ <para>If file transfer is enabled on the connection, you will see one or more filesystem
+ devices listed within the Guacamole menu. Clicking on one of the filesystems opens a
+ file browser which lists the files and directories within that filesystem.</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/file-browser.png" format="PNG" contentwidth="3in"/>
+ </imageobject>
+ <caption>
+ <para>The file browser within the Guacamole menu.</para>
+ </caption>
+ </mediaobject>
+ <para>Double-clicking on any directory will change the current location of the file
+ browser to that directory, updating the list of files shown as well as the
+ "breadcrumbs" at the top of the file browser. Clicking on any of the directory names
+ listed in the breadcrumbs will bring you back to that directory, and clicking on the
+ drive icon on the far left will bring you all the way back to the root level.</para>
+ <para>Downloads are initiated by double-clicking on any file shown, while uploads are
+ initiated by clicking the "Upload Files" button. Clicking "Upload Files" will open a
+ file browsing dialog where you can choose one or more files from your local
+ computer, ultimately uploading the selected files to the directory currently
+ displayed within the file browser.</para>
+ <para>The state of all file transfers can be observed within the notification dialog
+ that appears once a download or upload begins, and completed file transfers can be
+ cleared by clicking the "Clear" button within the notification dialog.</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/file-transfers.png" format="PNG" contentwidth="3in"/>
+ </imageobject>
+ <caption>
+ <para>In-progress and completed file transfers.</para>
+ </caption>
+ </mediaobject>
+ <para>When you are done browsing the filesystem and transferring files, click "Back" to
+ return to the Guacamole menu.</para>
+ </section>
+ <section xml:id="rdp-virtual-drive">
+ <title>The RDP virtual drive</title>
+ <para>RDP provides its own native support for file transfer called "drive redirection"
+ or "RDPDR". Guacamole provides support for this mechanism by emulating a virtual
+ drive. Typically, this virtual drive will appear as a network drive within the RDP
+ session. Files uploaded and downloaded will be preserved within this drive, even
+ after disconnecting.</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guacamole-drive.png" format="PNG" contentwidth="5in"
+ />
+ </imageobject>
+ <caption>
+ <para>The Guacamole drive within a Windows RDP session.</para>
+ </caption>
+ </mediaobject>
+ <para>Files can be downloaded from this drive using the file browser in the Guacamole
+ menu or using the special "Download" folder within the virtual drive. All files
+ dropped into this folder will automatically begin uploading to the client, and thus
+ downloading through the browser.</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guacamole-drive-download.png" format="PNG"
+ contentwidth="5in"/>
+ </imageobject>
+ <caption>
+ <para>The Guacamole drive's "Download" folder.</para>
+ </caption>
+ </mediaobject>
+ </section>
+ <section xml:id="guacctl">
+ <title><command>guacctl</command> / <command>guacget</command></title>
+ <para><indexterm>
+ <primary><command>guacctl</command></primary>
+ </indexterm><indexterm>
+ <primary><command>guacget</command></primary>
+ </indexterm><indexterm>
+ <primary>SSH</primary>
+ <secondary><command>guacctl</command></secondary>
+ </indexterm><indexterm>
+ <primary>SSH</primary>
+ <secondary><command>guacget</command></secondary>
+ </indexterm>In addition to traditional drag-and-drop and the file browser,
+ Guacamole's SSH support can be used with the <command>guacctl</command> utility. The
+ <command>guacctl</command> utility is a simple shell script <link
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xlink:href="https://raw.githubusercontent.com/glyptodon/guacamole-server/master/bin/guacctl"
+ >included with Guacamole</link> which allows you to use and configure file
+ transfer directly from the command line within the SSH session:</para>
+ <informalexample>
+ <screen><prompt>$</prompt> <userinput>guacctl</userinput>
<computeroutput>guacctl 0.8.0, Guacamole SSH session control utility.
Usage: guacctl [OPTION] [FILE]...
@@ -216,11 +285,13 @@
<prompt>$</prompt> <userinput>guacctl -d <replaceable>FILENAME</replaceable></userinput>
<prompt>$</prompt> <userinput>guacctl -s <replaceable>DIRECTORY</replaceable></userinput>
$</screen>
- </informalexample>
- <para>You may also create a symbolic link or alias to <command>guacctl</command> called
- <command>guacget</command>. When run as <command>guacget</command>, it behaves as if
- the <option>--download</option> option was supplied and initiates a download for each
- file specified on the command line.</para>
+ </informalexample>
+ <para>For convenience, you may also create a symbolic link or alias to
+ <command>guacctl</command> called <command>guacget</command>. When run as
+ <command>guacget</command>, the utility behaves as if the
+ <option>--download</option> option were supplied and initiates a download for
+ each file specified on the command line.</para>
+ </section>
</section>
<section xml:id="using-the-osk">
<title>On-screen keyboard</title>