mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-10-28 23:53:08 +00:00
GUACAMOLE-1293: Add common support for the name handshake instruction.
This commit is contained in:
@@ -293,7 +293,14 @@ public class ConfiguredGuacamoleSocket extends DelegatingGuacamoleSocket {
|
|||||||
if (GuacamoleProtocolCapability.TIMEZONE_HANDSHAKE.isSupported(protocolVersion)) {
|
if (GuacamoleProtocolCapability.TIMEZONE_HANDSHAKE.isSupported(protocolVersion)) {
|
||||||
String timezone = info.getTimezone();
|
String timezone = info.getTimezone();
|
||||||
if (timezone != null)
|
if (timezone != null)
|
||||||
writer.writeInstruction(new GuacamoleInstruction("timezone", info.getTimezone()));
|
writer.writeInstruction(new GuacamoleInstruction("timezone", timezone));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send client name, if supported and available
|
||||||
|
if (GuacamoleProtocolCapability.NAME_HANDSHAKE.isSupported(protocolVersion)) {
|
||||||
|
String name = info.getName();
|
||||||
|
if (name != null)
|
||||||
|
writer.writeInstruction(new GuacamoleInstruction("name", name));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send args
|
// Send args
|
||||||
|
|||||||
@@ -47,17 +47,22 @@ public class GuacamoleClientInformation {
|
|||||||
/**
|
/**
|
||||||
* The list of audio mimetypes reported by the client to be supported.
|
* The list of audio mimetypes reported by the client to be supported.
|
||||||
*/
|
*/
|
||||||
private final List<String> audioMimetypes = new ArrayList<String>();
|
private final List<String> audioMimetypes = new ArrayList<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The list of video mimetypes reported by the client to be supported.
|
* The list of video mimetypes reported by the client to be supported.
|
||||||
*/
|
*/
|
||||||
private final List<String> videoMimetypes = new ArrayList<String>();
|
private final List<String> videoMimetypes = new ArrayList<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The list of image mimetypes reported by the client to be supported.
|
* The list of image mimetypes reported by the client to be supported.
|
||||||
*/
|
*/
|
||||||
private final List<String> imageMimetypes = new ArrayList<String>();
|
private final List<String> imageMimetypes = new ArrayList<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the user reported by the client.
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The timezone reported by the client.
|
* The timezone reported by the client.
|
||||||
@@ -150,6 +155,17 @@ public class GuacamoleClientInformation {
|
|||||||
return imageMimetypes;
|
return imageMimetypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the name of the Guacamole user as reported by the client, or null
|
||||||
|
* if the user name is not set.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* A string value of the human-readable name reported by the client.
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the timezone as reported by the client, or null if the timezone
|
* Return the timezone as reported by the client, or null if the timezone
|
||||||
* is not set. Valid timezones are specified in IANA zone key format,
|
* is not set. Valid timezones are specified in IANA zone key format,
|
||||||
@@ -162,6 +178,16 @@ public class GuacamoleClientInformation {
|
|||||||
return timezone;
|
return timezone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the human-readable name of the user associated with this client.
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* The human-readable name of the user associated with this client.
|
||||||
|
*/
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the string value of the timezone, or null if the timezone will not
|
* Set the string value of the timezone, or null if the timezone will not
|
||||||
* be provided by the client. Valid timezones are specified in IANA zone
|
* be provided by the client. Valid timezones are specified in IANA zone
|
||||||
|
|||||||
@@ -40,6 +40,14 @@ public enum GuacamoleProtocolCapability {
|
|||||||
*/
|
*/
|
||||||
MSG_INSTRUCTION(GuacamoleProtocolVersion.VERSION_1_5_0),
|
MSG_INSTRUCTION(GuacamoleProtocolVersion.VERSION_1_5_0),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Support for the "name" handshake instruction, allowing clients to send
|
||||||
|
* the name of the Guacamole user to be passed to guacd and associated with
|
||||||
|
* connections. Support for this insruction was introduced in
|
||||||
|
* {@link GuacamoleProtocolVersion#VERSION_1_5_0}.
|
||||||
|
*/
|
||||||
|
NAME_HANDSHAKE(GuacamoleProtocolVersion.VERSION_1_5_0),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Negotiation of Guacamole protocol version between client and server
|
* Negotiation of Guacamole protocol version between client and server
|
||||||
* during the protocol handshake. The ability to negotiate protocol
|
* during the protocol handshake. The ability to negotiate protocol
|
||||||
|
|||||||
@@ -56,7 +56,9 @@ public class GuacamoleProtocolVersion {
|
|||||||
/**
|
/**
|
||||||
* Protocol version 1.5.0, which introduces the "msg" instruction, allowing
|
* Protocol version 1.5.0, which introduces the "msg" instruction, allowing
|
||||||
* the server to send message notifications that will be displayed on the
|
* the server to send message notifications that will be displayed on the
|
||||||
* client.
|
* client. The version also adds support for the "name" handshake
|
||||||
|
* instruction, allowing guacd to store the name of the user who is
|
||||||
|
* accessing the connection.
|
||||||
*/
|
*/
|
||||||
public static final GuacamoleProtocolVersion VERSION_1_5_0 = new GuacamoleProtocolVersion(1, 5, 0);
|
public static final GuacamoleProtocolVersion VERSION_1_5_0 = new GuacamoleProtocolVersion(1, 5, 0);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user