|
|
@ -31,6 +31,7 @@
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include <netdb.h>
|
|
|
|
#include <netdb.h>
|
|
|
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
|
|
|
|
|
|
|
/******************************************************************************/
|
|
|
|
/******************************************************************************/
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -1232,6 +1233,11 @@ process_server_paint_rect_shmem(struct mod *mod, struct stream *s)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
mod->screen_shmem_id = shmem_id;
|
|
|
|
mod->screen_shmem_id = shmem_id;
|
|
|
|
mod->screen_shmem_pixels = g_shmat(mod->screen_shmem_id);
|
|
|
|
mod->screen_shmem_pixels = g_shmat(mod->screen_shmem_id);
|
|
|
|
|
|
|
|
if (mod->screen_shmem_pixels == (void *)-1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
mod->screen_shmem_pixels = 0;
|
|
|
|
|
|
|
|
log_message(LOG_LEVEL_ERROR, "g_shmat() returned error, errno: %d\nIs X11rdp running on the same host as xrdp?\n", errno);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (mod->screen_shmem_pixels != 0)
|
|
|
|
if (mod->screen_shmem_pixels != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -1341,6 +1347,11 @@ process_server_paint_rect_shmem_ex(struct mod *amod, struct stream *s)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
amod->screen_shmem_id = shmem_id;
|
|
|
|
amod->screen_shmem_id = shmem_id;
|
|
|
|
amod->screen_shmem_pixels = g_shmat(amod->screen_shmem_id);
|
|
|
|
amod->screen_shmem_pixels = g_shmat(amod->screen_shmem_id);
|
|
|
|
|
|
|
|
if (amod->screen_shmem_pixels == (void *)-1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
amod->screen_shmem_pixels = 0;
|
|
|
|
|
|
|
|
log_message(LOG_LEVEL_ERROR, "g_shmat() returned error, errno: %d\nIs X11rdp running on the same host as xrdp?\n", errno);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (amod->screen_shmem_pixels != 0)
|
|
|
|
if (amod->screen_shmem_pixels != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|