You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by "Kris Keller (JIRA)" <ji...@apache.org> on 2018/02/06 16:33:00 UTC

[jira] [Commented] (GUACAMOLE-501) Session Recording: use connection id as default value for recording-name

    [ 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)