[ 
https://issues.apache.org/jira/browse/GUACAMOLE-501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16354106#comment-16354106
 ] 

Kris Keller commented on GUACAMOLE-501:
---------------------------------------

Didn't feel like updating every protocol so locally implemented 
${CONNECTION_ID} token replacement.  Please feel free to grade my "c" 
techniques.


{code:java}
/diff --git a/src/libguac/user.c b/src/libguac/user.c
index 14ec75b..ae5fb04 100644
--- a/src/libguac/user.c
+++ b/src/libguac/user.c
@@ -37,6 +37,7 @@
 #include <limits.h>
 #include <stdlib.h>
 #include <string.h>
+#include <stdio.h>
 
 guac_user* guac_user_alloc() {
 
@@ -354,6 +355,21 @@ char* guac_user_parse_args_string(guac_user* user, const 
char** arg_names,
 
     }
 
+    /* check for specific tokens and replace with real values */
+    char *psIndex = strstr(value, "${CONNECTION_ID}");
+    if (psIndex != NULL) {
+        int bszConnectionId = strlen(user->client->connection_id);
+        int bszValue = strlen(value);
+        int bszNewValue = bszValue-16+bszConnectionId;
+        char *pszNewValue = (char*)malloc(bszNewValue);
+        memset(pszNewValue, 0, bszNewValue);
+        int offset = psIndex-value;
+        strncpy(pszNewValue, value, offset);
+        strncpy(&pszNewValue[offset], user->client->connection_id, 
bszConnectionId);
+        strcpy(&pszNewValue[offset+bszConnectionId], &value[offset+16]);
+        return pszNewValue;
+    }
+
     /* Otherwise use provided value */
     return strdup(value);
 

{code}


> Session Recording: use connection id as default value for recording-name
> ------------------------------------------------------------------------
>
>                 Key: GUACAMOLE-501
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-501
>             Project: Guacamole
>          Issue Type: New Feature
>          Components: guacamole
>            Reporter: Kris Keller
>            Priority: Minor
>
> The current default value for recording-name is "recording".  It would be 
> great if the guacamole-server component would use the connection id instead.
> e.g. 
> $c134c9d2-699e-46f1-af5c-add1c440a41f.recording
> Unfortunately, the client can't pass this down as it doesnt know the 
> connection id until after the connection is established and has received the 
> "ready" instruction.
>  
> Even if the guacamole team didn't want to make the connection id be the 
> default name, at least adding another token parameter for the connection id 
> would be awesome as well.  
> e.g. recording-name=${CONNECTION_ID}
>  Below is a patch i created to support the defaulting of the recording-name 
> parameter to connection id for rdp connections:
> {code:java}
> --- a/src/protocols/rdp/rdp_settings.c
> +++ b/src/protocols/rdp/rdp_settings.c
> @@ -837,9 +837,11 @@ guac_rdp_settings* guac_rdp_parse_args(guac_user* user,
>                  IDX_RECORDING_PATH, NULL);
>      /* Read recording name */
> +    char pszRecordingName[255] = {'\0'};
> +    sprintf(pszRecordingName, "%s.recording", user->client->connection_id);
>      settings->recording_name =
>          guac_user_parse_args_string(user, GUAC_RDP_CLIENT_ARGS, argv,
> -                IDX_RECORDING_NAME, GUAC_RDP_DEFAULT_RECORDING_NAME);
> +                IDX_RECORDING_NAME, pszRecordingName);
>      /* Parse output exclusion flag */
>      settings->recording_exclude_output =
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to