libguac 1.5.5
Loading...
Searching...
No Matches
Enumerations
protocol-types.h File Reference

Type definitions related to the Guacamole protocol. More...

Go to the source code of this file.

Enumerations

enum  guac_protocol_status {
  GUAC_PROTOCOL_STATUS_SUCCESS = 0x0000 , GUAC_PROTOCOL_STATUS_UNSUPPORTED = 0x0100 , GUAC_PROTOCOL_STATUS_SERVER_ERROR = 0x0200 , GUAC_PROTOCOL_STATUS_SERVER_BUSY = 0x0201 ,
  GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT = 0x0202 , GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR = 0x0203 , GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND = 0x0204 , GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT = 0x0205 ,
  GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED = 0x0206 , GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND = 0x0207 , GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE = 0x0208 , GUAC_PROTOCOL_STATUS_SESSION_CONFLICT = 0x0209 ,
  GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT = 0x020A , GUAC_PROTOCOL_STATUS_SESSION_CLOSED = 0x020B , GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST = 0x300 , GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED = 0x0301 ,
  GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN = 0x0303 , GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT = 0x308 , GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN = 0x30D , GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE = 0x30F ,
  GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY = 0x31D
}
 Set of all possible status codes returned by protocol operations. More...
 
enum  guac_composite_mode {
  GUAC_COMP_ROUT = 0x2 , GUAC_COMP_ATOP = 0x6 , GUAC_COMP_XOR = 0xA , GUAC_COMP_ROVER = 0xB ,
  GUAC_COMP_OVER = 0xE , GUAC_COMP_PLUS = 0xF , GUAC_COMP_RIN = 0x1 , GUAC_COMP_IN = 0x4 ,
  GUAC_COMP_OUT = 0x8 , GUAC_COMP_RATOP = 0x9 , GUAC_COMP_SRC = 0xC
}
 Composite modes used by Guacamole draw instructions. More...
 
enum  guac_transfer_function {
  GUAC_TRANSFER_BINARY_BLACK = 0x0 , GUAC_TRANSFER_BINARY_WHITE = 0xF , GUAC_TRANSFER_BINARY_SRC = 0x3 , GUAC_TRANSFER_BINARY_DEST = 0x5 ,
  GUAC_TRANSFER_BINARY_NSRC = 0xC , GUAC_TRANSFER_BINARY_NDEST = 0xA , GUAC_TRANSFER_BINARY_AND = 0x1 , GUAC_TRANSFER_BINARY_NAND = 0xE ,
  GUAC_TRANSFER_BINARY_OR = 0x7 , GUAC_TRANSFER_BINARY_NOR = 0x8 , GUAC_TRANSFER_BINARY_XOR = 0x6 , GUAC_TRANSFER_BINARY_XNOR = 0x9 ,
  GUAC_TRANSFER_BINARY_NSRC_AND = 0x4 , GUAC_TRANSFER_BINARY_NSRC_NAND = 0xB , GUAC_TRANSFER_BINARY_NSRC_OR = 0xD , GUAC_TRANSFER_BINARY_NSRC_NOR = 0x2 ,
  GUAC_TRANSFER_BINARY_NDEST_AND = 0x2 , GUAC_TRANSFER_BINARY_NDEST_NAND = 0xD , GUAC_TRANSFER_BINARY_NDEST_OR = 0xB , GUAC_TRANSFER_BINARY_NDEST_NOR = 0x4
}
 Default transfer functions. More...
 
enum  guac_line_cap_style { GUAC_LINE_CAP_BUTT = 0x0 , GUAC_LINE_CAP_ROUND = 0x1 , GUAC_LINE_CAP_SQUARE = 0x2 }
 Supported line cap styles.
 
enum  guac_line_join_style { GUAC_LINE_JOIN_BEVEL = 0x0 , GUAC_LINE_JOIN_MITER = 0x1 , GUAC_LINE_JOIN_ROUND = 0x2 }
 Supported line join styles.
 
enum  guac_protocol_version {
  GUAC_PROTOCOL_VERSION_UNKNOWN = 0x000000 , GUAC_PROTOCOL_VERSION_1_0_0 = 0x010000 , GUAC_PROTOCOL_VERSION_1_1_0 = 0x010100 , GUAC_PROTOCOL_VERSION_1_3_0 = 0x010300 ,
  GUAC_PROTOCOL_VERSION_1_5_0 = 0x010500
}
 The set of protocol versions known to guacd to handle negotiation or feature support between differing versions of Guacamole clients and guacd. More...
 
enum  guac_message_type { GUAC_MESSAGE_USER_JOINED = 0x0001 , GUAC_MESSAGE_USER_LEFT = 0x0002 }
 A type that represents codes for human-readable messages sent by the "msg" instruction to the Client, that will be displayed in the client's browser. More...
 

Detailed Description

Type definitions related to the Guacamole protocol.

Enumeration Type Documentation

◆ guac_composite_mode

Composite modes used by Guacamole draw instructions.

Each composite mode maps to a unique channel mask integer.

◆ guac_message_type

A type that represents codes for human-readable messages sent by the "msg" instruction to the Client, that will be displayed in the client's browser.

The codes will be interpreted by the client into translatable messages, and make take arguments, as noted below.

Enumerator
GUAC_MESSAGE_USER_JOINED 

A message that notifies the owner of a connection that another user has joined their connection.

There should be a single argument provided, the name of the user who has joined.

GUAC_MESSAGE_USER_LEFT 

A message that notifies the owner of a connection that another user has left their connection.

There should be a single argument provided, the name of the user who has left.

◆ guac_protocol_status

Set of all possible status codes returned by protocol operations.

These codes relate to Guacamole server/client communication, and not to internal communication of errors within libguac and linked software.

In general:

0x0000 - 0x00FF: Successful operations.
0x0100 - 0x01FF: Operations that failed due to implementation status.
0x0200 - 0x02FF: Operations that failed due to remote state/environment.
0x0300 - 0x03FF: Operations that failed due to user/client action.

There is a general correspondence of these status codes with HTTP response codes.

Enumerator
GUAC_PROTOCOL_STATUS_SUCCESS 

The operation succeeded.

GUAC_PROTOCOL_STATUS_UNSUPPORTED 

The requested operation is unsupported.

GUAC_PROTOCOL_STATUS_SERVER_ERROR 

The operation could not be performed due to an internal failure.

GUAC_PROTOCOL_STATUS_SERVER_BUSY 

The operation could not be performed due as the server is busy.

GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT 

The operation could not be performed because the upstream server is not responding.

GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR 

The operation was unsuccessful due to an error or otherwise unexpected condition of the upstream server.

GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND 

The operation could not be performed as the requested resource does not exist.

GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT 

The operation could not be performed as the requested resource is already in use.

GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED 

The operation could not be performed as the requested resource is now closed.

GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND 

The operation could not be performed because the upstream server does not appear to exist.

GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE 

The operation could not be performed because the upstream server is not available to service the request.

GUAC_PROTOCOL_STATUS_SESSION_CONFLICT 

The session within the upstream server has ended because it conflicted with another session.

GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT 

The session within the upstream server has ended because it appeared to be inactive.

GUAC_PROTOCOL_STATUS_SESSION_CLOSED 

The session within the upstream server has been forcibly terminated.

GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST 

The operation could not be performed because bad parameters were given.

GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED 

Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in, for example).

GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN 

Permission was denied to perform the operation, and this permission will not be granted even if the user is authorized.

GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT 

The client took too long to respond.

GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN 

The client sent too much data.

GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE 

The client sent data of an unsupported or unexpected type.

GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY 

The operation failed because the current client is already using too many resources.

◆ guac_protocol_version

The set of protocol versions known to guacd to handle negotiation or feature support between differing versions of Guacamole clients and guacd.

Enumerator
GUAC_PROTOCOL_VERSION_UNKNOWN 

An unknown version of the Guacamole protocol.

GUAC_PROTOCOL_VERSION_1_0_0 

Original protocol version 1.0.0, which lacks support for negotiating parameters and protocol version, and requires that parameters in the client/server handshake be delivered in order.

GUAC_PROTOCOL_VERSION_1_1_0 

Protocol version 1.1.0, which includes support for parameter and version negotiation and for sending timezone information from the client to the server.

GUAC_PROTOCOL_VERSION_1_3_0 

Protocol version 1.3.0, which supports the "required" instruction, allowing connections in guacd to request information from the client and await a response.

GUAC_PROTOCOL_VERSION_1_5_0 

Protocol version 1.5.0, which supports the "msg" instruction, allowing messages to be sent to the client, and adds support for the "name" handshake instruction.

◆ guac_transfer_function

Default transfer functions.

There is no current facility in the Guacamole protocol to define custom transfer functions.