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