blob: c15d14108400811cc40170dfd20abdb22d1a79e3 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<section xml:id="ack-instruction" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en"
xmlns:xi="http://www.w3.org/2001/XInclude">
<title>ack</title>
<indexterm>
<primary>ack</primary>
</indexterm>
<para>The ack instruction acknowledges a received data blob, providing a status code and message
indicating whether the operation associated with the blob succeeded or failed. A status code
other than <constant>SUCCESS</constant> implicitly ends the stream.</para>
<variablelist>
<varlistentry>
<term><parameter>stream</parameter></term>
<listitem>
<para>The index of the stream the corresponding blob was received on.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<para>A human-readable error message. This typically is not exposed within any user
interface, and mainly helps with debugging.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>status</parameter></term>
<listitem>
<para>The Guacamole status code denoting success or failure.</para>
</listitem>
</varlistentry>
</variablelist>
<section xml:id="status-codes">
<title>Status codes</title>
<para>Several Guacamole instructions, and various other internals of the Guacamole core, use
a common set of numeric status codes. These codes denote success or failure of
operations, and can be rendered by user interfaces in a human-readable
way.<informaltable frame="all">
<tgroup cols="3">
<colspec colname="c1" colnum="1" colwidth="1.25*"/>
<colspec colname="c2" colnum="2" colwidth="3.25*"/>
<colspec colname="c3" colnum="3" colwidth="9*"/>
<thead>
<row>
<entry>Code</entry>
<entry>Name</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>0</entry>
<entry><constant>SUCCESS</constant></entry>
<entry>
<para>The operation succeeded. No error.</para>
</entry>
</row>
<row>
<entry>256</entry>
<entry><constant>UNSUPPORTED</constant></entry>
<entry>
<para>The requested operation is unsupported.</para>
</entry>
</row>
<row>
<entry>512</entry>
<entry><constant>SERVER_ERROR</constant></entry>
<entry>
<para>An internal error occurred, and the operation could not be
performed.</para>
</entry>
</row>
<row>
<entry>513</entry>
<entry><constant>SERVER_BUSY</constant></entry>
<entry>
<para>The operation could not be performed because the server is
busy.</para>
</entry>
</row>
<row>
<entry>514</entry>
<entry><constant>UPSTREAM_TIMEOUT</constant></entry>
<entry>
<para>The upstream server is not responding. In most cases, the
upstream server is the remote desktop server.</para>
</entry>
</row>
<row>
<entry>515</entry>
<entry><constant>UPSTREAM_ERROR</constant></entry>
<entry>
<para>The upstream server encountered an error. In most cases, the
upstream server is the remote desktop server.</para>
</entry>
</row>
<row>
<entry>516</entry>
<entry><constant>RESOURCE_NOT_FOUND</constant></entry>
<entry>
<para>An associated resource, such as a file or stream, could not be
found, and thus the operation failed.</para>
</entry>
</row>
<row>
<entry>517</entry>
<entry><constant>RESOURCE_CONFLICT</constant></entry>
<entry>
<para>A resource is already in use or locked, preventing the
requested operation.</para>
</entry>
</row>
<row>
<entry>518</entry>
<entry><constant>RESOURCE_CLOSED</constant></entry>
<entry>
<para>The requested operation cannot continue because the associated
resource has been closed.</para>
</entry>
</row>
<row>
<entry>519</entry>
<entry><constant>UPSTREAM_NOT_FOUND</constant></entry>
<entry>
<para>The upstream server does not appear to exist, or cannot be
reached over the network. In most cases, the upstream server is
the remote desktop server.</para>
</entry>
</row>
<row>
<entry>520</entry>
<entry><constant>UPSTREAM_UNAVAILABLE</constant></entry>
<entry>
<para>The upstream server is refusing to service connections. In
most cases, the upstream server is the remote desktop
server.</para>
</entry>
</row>
<row>
<entry>521</entry>
<entry><constant>SESSION_CONFLICT</constant></entry>
<entry>
<para>The session within the upstream server has ended because it
conflicts with another session. In most cases, the upstream
server is the remote desktop server.</para>
</entry>
</row>
<row>
<entry>522</entry>
<entry><constant>SESSION_TIMEOUT</constant></entry>
<entry>
<para>The session within the upstream server has ended because it
appeared to be inactive. In most cases, the upstream server is
the remote desktop server.</para>
</entry>
</row>
<row>
<entry>523</entry>
<entry><constant>SESSION_CLOSED</constant></entry>
<entry>
<para>The session within the upstream server has been forcibly
closed. In most cases, the upstream server is the remote desktop
server.</para>
</entry>
</row>
<row>
<entry>768</entry>
<entry><constant>CLIENT_BAD_REQUEST</constant></entry>
<entry>
<para>The parameters of the request are illegal or otherwise
invalid.</para>
</entry>
</row>
<row>
<entry>769</entry>
<entry><constant>CLIENT_UNAUTHORIZED</constant></entry>
<entry>
<para>Permission was denied, because the user is not logged in. Note
that the user may be logged into Guacamole, but still not logged
in with respect to the remote desktop server.</para>
</entry>
</row>
<row>
<entry>771</entry>
<entry><constant>CLIENT_FORBIDDEN</constant></entry>
<entry>
<para>Permission was denied, and logging in will not solve the
problem.</para>
</entry>
</row>
<row>
<entry>776</entry>
<entry><constant>CLIENT_TIMEOUT</constant></entry>
<entry>
<para>The client (usually the user of Guacamole or their browser) is
taking too long to respond.</para>
</entry>
</row>
<row>
<entry>781</entry>
<entry><constant>CLIENT_OVERRUN</constant></entry>
<entry>
<para>The client has sent more data than the protocol allows.</para>
</entry>
</row>
<row>
<entry>783</entry>
<entry><constant>CLIENT_BAD_TYPE</constant></entry>
<entry>
<para>The client has sent data of an unexpected or illegal
type.</para>
</entry>
</row>
<row>
<entry>797</entry>
<entry><constant>CLIENT_TOO_MANY</constant></entry>
<entry>
<para>The client is already using too many resources. Existing
resources must be freed before further requests are
allowed.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable></para>
</section>
</section>