Merge staging/1.1.0 changes back to master.
This commit is contained in:
commit
cc8d879a12
@ -43,7 +43,7 @@ PREFIX_DIR="$2"
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
autoreconf -fi
|
||||
./configure --prefix="$PREFIX_DIR" --disable-guaclog
|
||||
./configure --prefix="$PREFIX_DIR" --disable-guaclog --with-freerdp-plugin-dir="$PREFIX_DIR/lib/freerdp2"
|
||||
make
|
||||
make install
|
||||
ldconfig
|
||||
|
@ -38,11 +38,45 @@
|
||||
#include <guacamole/audio.h>
|
||||
#include <guacamole/client.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include <pwd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
int guac_client_init(guac_client* client, int argc, char** argv) {
|
||||
|
||||
/* Automatically set HOME environment variable if unset (FreeRDP's
|
||||
* initialization process will fail within freerdp_settings_new() if this
|
||||
* is unset) */
|
||||
const char* current_home = getenv("HOME");
|
||||
if (current_home == NULL) {
|
||||
|
||||
/* Warn if the correct home directory cannot be determined */
|
||||
struct passwd* passwd = getpwuid(getuid());
|
||||
if (passwd == NULL)
|
||||
guac_client_log(client, GUAC_LOG_WARNING, "FreeRDP initialization "
|
||||
"may fail: The \"HOME\" environment variable is unset and "
|
||||
"its correct value could not be automatically determined: "
|
||||
"%s", strerror(errno));
|
||||
|
||||
/* Warn if the correct home directory could be determined but can't be
|
||||
* assigned */
|
||||
else if (setenv("HOME", passwd->pw_dir, 1))
|
||||
guac_client_log(client, GUAC_LOG_WARNING, "FreeRDP initialization "
|
||||
"may fail: The \"HOME\" environment variable is unset "
|
||||
"and its correct value (detected as \"%s\") could not be "
|
||||
"assigned: %s", passwd->pw_dir, strerror(errno));
|
||||
|
||||
/* HOME has been successfully set */
|
||||
else
|
||||
guac_client_log(client, GUAC_LOG_DEBUG, "\"HOME\" "
|
||||
"environment variable was unset and has been "
|
||||
"automatically set to \"%s\"", passwd->pw_dir);
|
||||
|
||||
}
|
||||
|
||||
/* Set client args */
|
||||
client->args = GUAC_RDP_CLIENT_ARGS;
|
||||
|
||||
|
@ -368,7 +368,14 @@ static int guac_rdp_handle_connection(guac_client* client) {
|
||||
/* Allocate FreeRDP context */
|
||||
rdp_inst->ContextSize = sizeof(rdp_freerdp_context);
|
||||
|
||||
freerdp_context_new(rdp_inst);
|
||||
if (!freerdp_context_new(rdp_inst)) {
|
||||
guac_client_abort(client, GUAC_PROTOCOL_STATUS_SERVER_ERROR,
|
||||
"FreeRDP initialization failed before connecting. Please "
|
||||
"check for errors earlier in the logs and/or enable "
|
||||
"debug-level logging for guacd.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
((rdp_freerdp_context*) rdp_inst->context)->client = client;
|
||||
|
||||
/* Load keymap into client */
|
||||
|
Loading…
Reference in New Issue
Block a user