got neutrinordp module building

ulab-next
Jay Sorg 11 years ago
parent 862ee8b914
commit 64fabbad68

@ -6,6 +6,12 @@ else
FREERDPDIR = FREERDPDIR =
endif endif
if XRDP_NEUTRINORDP
NEUTRINORDPDIR = neutrinordp
else
NEUTRINORDPDIR =
endif
if XRDP_XRDPVR if XRDP_XRDPVR
XRDPVRDIR = xrdpvr XRDPVRDIR = xrdpvr
else else
@ -19,6 +25,7 @@ SUBDIRS = \
xup \ xup \
mc \ mc \
$(FREERDPDIR) \ $(FREERDPDIR) \
$(NEUTRINORDPDIR) \
libxrdp \ libxrdp \
xrdp \ xrdp \
sesman \ sesman \

@ -308,7 +308,7 @@ struct stream
* @param _s opaque handle to the new stream * @param _s opaque handle to the new stream
* @param _l length of new stream * @param _l length of new stream
******************************************************************************/ ******************************************************************************/
#define stream_new(_s, _l) \ #define xstream_new(_s, _l) \
do \ do \
{ \ { \
make_stream((_s)); \ make_stream((_s)); \
@ -320,25 +320,25 @@ do \
* *
* @param _s opaque handle returned by stream_new() * @param _s opaque handle returned by stream_new()
*****************************************************************************/ *****************************************************************************/
#define stream_free(_s) free_stream(_s) #define xstream_free(_s) free_stream(_s)
#define stream_rd_u8(_s, _var) in_uint8(_s, _var) #define xstream_rd_u8(_s, _var) in_uint8(_s, _var)
#define stream_rd_u16_le(_s, _var) in_uint16_le(_s, _var) #define xstream_rd_u16_le(_s, _var) in_uint16_le(_s, _var)
#define stream_rd_u32_le(_s, _var) in_uint32_le(_s, _var) #define xstream_rd_u32_le(_s, _var) in_uint32_le(_s, _var)
#define stream_rd_s8_le(_s, _var) in_sint8(_s, _var) #define xstream_rd_s8_le(_s, _var) in_sint8(_s, _var)
#define stream_rd_s16_le(_s, _var) in_sint16_le(_s, _var) #define xstream_rd_s16_le(_s, _var) in_sint16_le(_s, _var)
#define stream_rd_s32_le(_s, _var) TODO #define xstream_rd_s32_le(_s, _var) TODO
#define stream_wr_u8(_s, _var) out_uint8(_s, _var) #define xstream_wr_u8(_s, _var) out_uint8(_s, _var)
#define stream_wr_u16_le(_s, _var) out_uint16_le(_s, _var) #define xstream_wr_u16_le(_s, _var) out_uint16_le(_s, _var)
#define stream_wr_u32_le(_s, _var) out_uint32_le(_s, _var) #define xstream_wr_u32_le(_s, _var) out_uint32_le(_s, _var)
#define stream_wr_s8(_s, _var) TODO #define xstream_wr_s8(_s, _var) TODO
#define stream_wr_s16_le(_s, _var) TODO #define xstream_wr_s16_le(_s, _var) TODO
#define stream_wr_s32_le(_s, _var) TODO #define xstream_wr_s32_le(_s, _var) TODO
#define stream_rd_u64_le(_s, _v) \ #define xstream_rd_u64_le(_s, _v) \
do \ do \
{ \ { \
_v = \ _v = \
@ -353,7 +353,7 @@ do \
_s->p += 8; \ _s->p += 8; \
} while (0) } while (0)
#define stream_wr_u64_le(_s, _v) \ #define xstream_wr_u64_le(_s, _v) \
do \ do \
{ \ { \
*(((unsigned char *) _s->p) + 0) = (unsigned char) ((_v >> 0) & 0xff); \ *(((unsigned char *) _s->p) + 0) = (unsigned char) ((_v >> 0) & 0xff); \
@ -368,36 +368,36 @@ do \
} while (0) } while (0)
/* copy data into stream */ /* copy data into stream */
#define stream_copyin(_s, _dest, _len) \ #define xstream_copyin(_s, _dest, _len) \
do \ do \
{ \ { \
memcpy((_s)->p, (_dest), (_len)); \ g_memcpy((_s)->p, (_dest), (_len)); \
(_s)->p += (_len); \ (_s)->p += (_len); \
} while (0) } while (0)
/* copy data out of stream */ /* copy data out of stream */
#define stream_copyout(_dest, _s, _len) \ #define xstream_copyout(_dest, _s, _len) \
{ \ { \
do \ do \
memcpy((_dest), (_s)->p, (_len)); \ g_memcpy((_dest), (_s)->p, (_len)); \
(_s)->p += (_len); \ (_s)->p += (_len); \
} while (0) } while (0)
#define stream_rd_string(_dest, _s, _len) \ #define xstream_rd_string(_dest, _s, _len) \
do \ do \
{ \ { \
memcpy((_dest), (_s)->p, (_len)); \ g_memcpy((_dest), (_s)->p, (_len)); \
(_s)->p += (_len); \ (_s)->p += (_len); \
} while (0) } while (0)
#define stream_wr_string(_s, _src, _len) \ #define xstream_wr_string(_s, _src, _len) \
do \ do \
{ \ { \
memcpy((_s)->p, (_src), (_len)); \ g_memcpy((_s)->p, (_src), (_len)); \
(_s)->p += (_len); \ (_s)->p += (_len); \
} while (0) } while (0)
#define stream_len(_s) (int) ((_s)->p - (_s)->data) #define xstream_len(_s) (int) ((_s)->p - (_s)->data)
#define stream_seek(_s, _len) (_s)->p += (_len) #define xstream_seek(_s, _len) (_s)->p += (_len)
#endif #endif

@ -35,6 +35,10 @@ AC_ARG_ENABLE(freerdp1, AS_HELP_STRING([--enable-freerdp1],
[Build freerdp1 module (default: no)]), [Build freerdp1 module (default: no)]),
[freerdp1=true], [freerdp1=false]) [freerdp1=true], [freerdp1=false])
AM_CONDITIONAL(XRDP_FREERDP1, [test x$freerdp1 = xtrue]) AM_CONDITIONAL(XRDP_FREERDP1, [test x$freerdp1 = xtrue])
AC_ARG_ENABLE(neutrinordp, AS_HELP_STRING([--enable-neutrinordp],
[Build neutrinordp module (default: no)]),
[neutrinordp=true], [neutrinordp=false])
AM_CONDITIONAL(XRDP_NEUTRINORDP, [test x$neutrinordp = xtrue])
AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--enable-jpeg], AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--enable-jpeg],
[Build jpeg module (default: no)]), [Build jpeg module (default: no)]),
[jpeg=true], [jpeg=false]) [jpeg=true], [jpeg=false])
@ -81,6 +85,8 @@ fi
AS_IF( [test "x$enable_freerdp1" = "xyes"] , [PKG_CHECK_MODULES(FREERDP, freerdp >= 1.0.0)] ) AS_IF( [test "x$enable_freerdp1" = "xyes"] , [PKG_CHECK_MODULES(FREERDP, freerdp >= 1.0.0)] )
AS_IF( [test "x$enable_neutrinordp" = "xyes"] , [PKG_CHECK_MODULES(FREERDP, freerdp >= 1.0.0)] )
# checking for libjpeg # checking for libjpeg
if ! test -z "$enable_jpeg" if ! test -z "$enable_jpeg"
then then
@ -123,6 +129,7 @@ AC_CONFIG_FILES([Makefile
xup/Makefile xup/Makefile
mc/Makefile mc/Makefile
freerdp1/Makefile freerdp1/Makefile
neutrinordp/Makefile
xrdp/Makefile xrdp/Makefile
sesman/Makefile sesman/Makefile
sesman/libscp/Makefile sesman/libscp/Makefile

@ -23,6 +23,6 @@ lib_LTLIBRARIES = \
libxrdpneutrinordp_la_SOURCES = xrdp-neutrinordp.c xrdp-color.c libxrdpneutrinordp_la_SOURCES = xrdp-neutrinordp.c xrdp-color.c
libxrdpneutrinodp_la_LIBADD = \ libxrdpneutrinordp_la_LIBADD = \
$(top_builddir)/common/libcommon.la \ $(top_builddir)/common/libcommon.la \
$(FREERDP_LIBS) $(FREERDP_LIBS)

@ -42,18 +42,22 @@ struct mod_context
}; };
typedef struct mod_context modContext; typedef struct mod_context modContext;
void verifyColorMap(struct mod *mod) /*****************************************************************************/
static void
verifyColorMap(struct mod *mod)
{ {
int i ; int i;
for( i = 0 ;i<255 ; i++)
for(i = 0; i < 255; i++)
{ {
if(mod->colormap[i]!=0) if (mod->colormap[i] != 0)
{ {
return ; return ;
} }
} }
LLOGLN(0, ("The colormap is all NULL\n")); LLOGLN(0, ("The colormap is all NULL"));
} }
/*****************************************************************************/ /*****************************************************************************/
/* return error */ /* return error */
static int DEFAULT_CC static int DEFAULT_CC
@ -63,15 +67,15 @@ lxrdp_start(struct mod *mod, int w, int h, int bpp)
LLOGLN(10, ("lxrdp_start: w %d h %d bpp %d", w, h, bpp)); LLOGLN(10, ("lxrdp_start: w %d h %d bpp %d", w, h, bpp));
settings = mod->inst->settings; settings = mod->inst->settings;
settings->DesktopWidth = w; settings->width = w;
settings->DesktopHeight = h; settings->height = h;
settings->ColorDepth = bpp; settings->color_depth = bpp;
mod->bpp = bpp; mod->bpp = bpp;
// TODO what does this really become
settings->DisableEncryption = 1; // settings->encryption = 1; settings->encryption = 1;
settings->TlsSecurity = 1; settings->tls_security = 1;
settings->NlaSecurity = 0; settings->nla_security = 0;
settings->RdpSecurity = 1; settings->rdp_security = 1;
return 0; return 0;
} }
@ -81,7 +85,7 @@ lxrdp_start(struct mod *mod, int w, int h, int bpp)
static int DEFAULT_CC static int DEFAULT_CC
lxrdp_connect(struct mod *mod) lxrdp_connect(struct mod *mod)
{ {
BOOL ok; boolean ok;
LLOGLN(10, ("lxrdp_connect:")); LLOGLN(10, ("lxrdp_connect:"));
@ -152,12 +156,18 @@ lxrdp_connect(struct mod *mod)
} }
#endif #endif
log_message(LOG_LEVEL_INFO,"freerdp_connect Failed to destination :%s:%d",mod->inst->settings->ServerHostname,mod->inst->settings->ServerPort); log_message(LOG_LEVEL_INFO, "freerdp_connect Failed to "
"destination :%s:%d",
mod->inst->settings->hostname,
mod->inst->settings->port);
return 1; return 1;
} }
else else
{ {
log_message(LOG_LEVEL_INFO,"freerdp_connect returned Success to destination :%s:%d",mod->inst->settings->ServerHostname,mod->inst->settings->ServerPort); log_message(LOG_LEVEL_INFO, "freerdp_connect returned Success to "
"destination :%s:%d",
mod->inst->settings->hostname,
mod->inst->settings->port);
} }
return 0; return 0;
@ -262,7 +272,7 @@ lxrdp_event(struct mod *mod, int msg, long param1, long param2,
rectangle->right = (((param2 >> 16) & 0xffff) + rectangle->left) - 1; rectangle->right = (((param2 >> 16) & 0xffff) + rectangle->left) - 1;
rectangle->bottom = ((param2 & 0xffff) + rectangle->top) - 1; rectangle->bottom = ((param2 & 0xffff) + rectangle->top) - 1;
if (mod->inst->settings->RefreshRect) if (mod->inst->settings->refresh_rect)
{ {
if (mod->inst->update != NULL) if (mod->inst->update != NULL)
{ {
@ -304,13 +314,13 @@ lxrdp_event(struct mod *mod, int msg, long param1, long param2,
total_size = (int)param4; total_size = (int)param4;
LLOGLN(12, ("lxrdp_event: client to server flags %d", flags)); LLOGLN(12, ("lxrdp_event: client to server flags %d", flags));
if ((chanid < 0) || (chanid >= mod->inst->settings->ChannelDefArraySize)) if ((chanid < 0) || (chanid >= mod->inst->settings->num_channels))
{ {
LLOGLN(0, ("lxrdp_event: error chanid %d", chanid)); LLOGLN(0, ("lxrdp_event: error chanid %d", chanid));
break; break;
} }
lchid = mod->inst->settings->ChannelDefArray[chanid].ChannelId; lchid = mod->inst->settings->channels[chanid].channel_id;
switch (flags & 3) switch (flags & 3)
{ {
@ -400,18 +410,16 @@ lxrdp_set_param(struct mod *mod, char *name, char *value)
LLOGLN(10, ("lxrdp_set_param: name [%s] value [%s]", name, value)); LLOGLN(10, ("lxrdp_set_param: name [%s] value [%s]", name, value));
settings = mod->inst->settings; settings = mod->inst->settings;
LLOGLN(10, ("%p %d", settings->ServerHostname, settings->DisableEncryption));
if (g_strcmp(name, "hostname") == 0) if (g_strcmp(name, "hostname") == 0)
{ {
} }
else if (g_strcmp(name, "ip") == 0) else if (g_strcmp(name, "ip") == 0)
{ {
settings->ServerHostname = g_strdup(value); settings->hostname = g_strdup(value);
} }
else if (g_strcmp(name, "port") == 0) else if (g_strcmp(name, "port") == 0)
{ {
settings->ServerPort = g_atoi(value); settings->port = g_atoi(value);
} }
else if (g_strcmp(name, "keylayout") == 0) else if (g_strcmp(name, "keylayout") == 0)
{ {
@ -459,7 +467,7 @@ lxrdp_get_wait_objs(struct mod *mod, tbus *read_objs, int *rcount,
{ {
void **rfds; void **rfds;
void **wfds; void **wfds;
BOOL ok; boolean ok;
LLOGLN(12, ("lxrdp_get_wait_objs:")); LLOGLN(12, ("lxrdp_get_wait_objs:"));
rfds = (void **)read_objs; rfds = (void **)read_objs;
@ -479,7 +487,7 @@ lxrdp_get_wait_objs(struct mod *mod, tbus *read_objs, int *rcount,
static int DEFAULT_CC static int DEFAULT_CC
lxrdp_check_wait_objs(struct mod *mod) lxrdp_check_wait_objs(struct mod *mod)
{ {
BOOL ok; boolean ok;
LLOGLN(12, ("lxrdp_check_wait_objs:")); LLOGLN(12, ("lxrdp_check_wait_objs:"));
ok = freerdp_check_fds(mod->inst); ok = freerdp_check_fds(mod->inst);
@ -564,7 +572,7 @@ lfreerdp_bitmap_update(rdpContext *context, BITMAP_UPDATE *bitmap)
mod = ((struct mod_context *)context)->modi; mod = ((struct mod_context *)context)->modi;
LLOGLN(10, ("lfreerdp_bitmap_update: %d %d", bitmap->number, bitmap->count)); LLOGLN(10, ("lfreerdp_bitmap_update: %d %d", bitmap->number, bitmap->count));
server_bpp = mod->inst->settings->ColorDepth; server_bpp = mod->inst->settings->color_depth;
server_Bpp = (server_bpp + 7) / 8; server_Bpp = (server_bpp + 7) / 8;
client_bpp = mod->bpp; client_bpp = mod->bpp;
@ -642,7 +650,7 @@ lfreerdp_pat_blt(rdpContext *context, PATBLT_ORDER *patblt)
mod = ((struct mod_context *)context)->modi; mod = ((struct mod_context *)context)->modi;
LLOGLN(10, ("lfreerdp_pat_blt:")); LLOGLN(10, ("lfreerdp_pat_blt:"));
server_bpp = mod->inst->settings->ColorDepth; server_bpp = mod->inst->settings->color_depth;
client_bpp = mod->bpp; client_bpp = mod->bpp;
LLOGLN(0, ("lfreerdp_pat_blt: bpp %d %d", server_bpp, client_bpp)); LLOGLN(0, ("lfreerdp_pat_blt: bpp %d %d", server_bpp, client_bpp));
@ -714,7 +722,7 @@ lfreerdp_opaque_rect(rdpContext *context, OPAQUE_RECT_ORDER *opaque_rect)
mod = ((struct mod_context *)context)->modi; mod = ((struct mod_context *)context)->modi;
LLOGLN(10, ("lfreerdp_opaque_rect:")); LLOGLN(10, ("lfreerdp_opaque_rect:"));
server_bpp = mod->inst->settings->ColorDepth; server_bpp = mod->inst->settings->color_depth;
client_bpp = mod->bpp; client_bpp = mod->bpp;
fgcolor = convert_color(server_bpp, client_bpp, fgcolor = convert_color(server_bpp, client_bpp,
opaque_rect->color, mod->colormap); opaque_rect->color, mod->colormap);
@ -779,7 +787,7 @@ lfreerdp_glyph_index(rdpContext *context, GLYPH_INDEX_ORDER *glyph_index)
mod = ((struct mod_context *)context)->modi; mod = ((struct mod_context *)context)->modi;
LLOGLN(10, ("lfreerdp_glyph_index:")); LLOGLN(10, ("lfreerdp_glyph_index:"));
server_bpp = mod->inst->settings->ColorDepth; server_bpp = mod->inst->settings->color_depth;
client_bpp = mod->bpp; client_bpp = mod->bpp;
fgcolor = convert_color(server_bpp, client_bpp, fgcolor = convert_color(server_bpp, client_bpp,
glyph_index->foreColor, mod->colormap); glyph_index->foreColor, mod->colormap);
@ -810,7 +818,7 @@ lfreerdp_line_to(rdpContext *context, LINE_TO_ORDER *line_to)
mod = ((struct mod_context *)context)->modi; mod = ((struct mod_context *)context)->modi;
LLOGLN(10, ("lfreerdp_line_to:")); LLOGLN(10, ("lfreerdp_line_to:"));
mod->server_set_opcode(mod, line_to->bRop2); mod->server_set_opcode(mod, line_to->bRop2);
server_bpp = mod->inst->settings->ColorDepth; server_bpp = mod->inst->settings->color_depth;
client_bpp = mod->bpp; client_bpp = mod->bpp;
fgcolor = convert_color(server_bpp, client_bpp, fgcolor = convert_color(server_bpp, client_bpp,
line_to->penColor, mod->colormap); line_to->penColor, mod->colormap);
@ -834,7 +842,7 @@ lfreerdp_cache_bitmap(rdpContext *context, CACHE_BITMAP_ORDER *cache_bitmap_orde
/******************************************************************************/ /******************************************************************************/
/* Turn the bitmap upside down*/ /* Turn the bitmap upside down*/
static void DEFAULT_CC static void DEFAULT_CC
lfreerdp_upsidedown(UINT8 *destination, CACHE_BITMAP_V2_ORDER *cache_bitmap_v2_order, int server_Bpp) lfreerdp_upsidedown(uint8* destination, CACHE_BITMAP_V2_ORDER* cache_bitmap_v2_order, int server_Bpp)
{ {
tui8 *src; tui8 *src;
tui8 *dst; tui8 *dst;
@ -906,7 +914,7 @@ lfreerdp_cache_bitmapV2(rdpContext *context,
return; return;
} }
server_bpp = mod->inst->settings->ColorDepth; server_bpp = mod->inst->settings->color_depth;
server_Bpp = (server_bpp + 7) / 8; server_Bpp = (server_bpp + 7) / 8;
client_bpp = mod->bpp; client_bpp = mod->bpp;
@ -1231,8 +1239,9 @@ lfreerdp_pointer_cached(rdpContext *context,
index = pointer_cached->cacheIndex; index = pointer_cached->cacheIndex;
LLOGLN(10, ("lfreerdp_pointer_cached:%d", index)); LLOGLN(10, ("lfreerdp_pointer_cached:%d", index));
mod->server_set_pointer(mod, mod->pointer_cache[index].hotx, mod->server_set_pointer(mod, mod->pointer_cache[index].hotx,
mod->pointer_cache[index].hoty, mod->pointer_cache[index].data, mod->pointer_cache[index].hoty,
mod->pointer_cache[index].mask); mod->pointer_cache[index].data,
mod->pointer_cache[index].mask);
} }
static void DEFAULT_CC lfreerdp_polygon_cb(rdpContext* context, POLYGON_CB_ORDER* polygon_cb) static void DEFAULT_CC lfreerdp_polygon_cb(rdpContext* context, POLYGON_CB_ORDER* polygon_cb)
@ -1249,22 +1258,27 @@ static void DEFAULT_CC lfreerdp_polygon_sc(rdpContext* context, POLYGON_SC_ORDER
int server_bpp, client_bpp; int server_bpp, client_bpp;
mod = ((struct mod_context *)context)->modi; mod = ((struct mod_context *)context)->modi;
LLOGLN(10, ("lfreerdp_polygon_sc :%d(points) %d(color) %d(fillmode) %d(bRop) %d(cbData) %d(x) %d(y)", polygon_sc->numPoints,polygon_sc->brushColor,polygon_sc->fillMode,polygon_sc->bRop2,polygon_sc->cbData,polygon_sc->xStart,polygon_sc->yStart)); LLOGLN(10, ("lfreerdp_polygon_sc :%d(points) %d(color) %d(fillmode) "
if(polygon_sc->numPoints==3) "%d(bRop) %d(cbData) %d(x) %d(y)",
{ polygon_sc->nDeltaEntries, polygon_sc->brushColor,
server_bpp = mod->inst->settings->ColorDepth; polygon_sc->fillMode, polygon_sc->bRop2,
polygon_sc->cbData, polygon_sc->xStart,
polygon_sc->yStart));
if (polygon_sc->nDeltaEntries == 3)
{
server_bpp = mod->inst->settings->color_depth;
client_bpp = mod->bpp; client_bpp = mod->bpp;
points[0].x = polygon_sc->xStart; points[0].x = polygon_sc->xStart;
points[0].y = polygon_sc->yStart; points[0].y = polygon_sc->yStart;
for (i = 0; i < polygon_sc->numPoints; i++) for (i = 0; i < polygon_sc->nDeltaEntries; i++)
{ {
points[i + 1].x = polygon_sc->points[i].x; points[i + 1].x = 0; // polygon_sc->points[i].x;
points[i + 1].y = polygon_sc->points[i].y; points[i + 1].y = 0; // polygon_sc->points[i].y;
} }
fgcolor = convert_color(server_bpp, client_bpp, fgcolor = convert_color(server_bpp, client_bpp,
polygon_sc->brushColor, mod->colormap); polygon_sc->brushColor, mod->colormap);
mod->server_set_opcode(mod, polygon_sc->bRop2); mod->server_set_opcode(mod, polygon_sc->bRop2);
mod->server_set_bgcolor(mod, 255); mod->server_set_bgcolor(mod, 255);
@ -1273,7 +1287,7 @@ static void DEFAULT_CC lfreerdp_polygon_sc(rdpContext* context, POLYGON_SC_ORDER
// TODO replace with correct brush; this is a workaround // TODO replace with correct brush; this is a workaround
// This workaround handles the text cursor in microsoft word. // This workaround handles the text cursor in microsoft word.
mod->server_draw_line(mod,polygon_sc->xStart,polygon_sc->yStart,polygon_sc->xStart,polygon_sc->yStart+points[2].y); mod->server_draw_line(mod,polygon_sc->xStart,polygon_sc->yStart,polygon_sc->xStart,polygon_sc->yStart+points[2].y);
// mod->server_fill_rect(mod, points[0].x, points[0].y, // mod->server_fill_rect(mod, points[0].x, points[0].y,
// points[0].x-points[3].x, points[0].y-points[2].y); // points[0].x-points[3].x, points[0].y-points[2].y);
// mod->server_set_brush(mod,); // howto use this on our indata?? // mod->server_set_brush(mod,); // howto use this on our indata??
mod->server_set_opcode(mod, 0xcc); mod->server_set_opcode(mod, 0xcc);
@ -1292,7 +1306,7 @@ static void DEFAULT_CC lfreerdp_syncronize(rdpContext* context)
} }
/******************************************************************************/ /******************************************************************************/
static BOOL DEFAULT_CC static boolean DEFAULT_CC
lfreerdp_pre_connect(freerdp *instance) lfreerdp_pre_connect(freerdp *instance)
{ {
struct mod *mod; struct mod *mod;
@ -1315,72 +1329,72 @@ lfreerdp_pre_connect(freerdp *instance)
num_chans++; num_chans++;
LLOGLN(10, ("lfreerdp_pre_connect: got channel [%s], flags [0x%8.8x]", LLOGLN(10, ("lfreerdp_pre_connect: got channel [%s], flags [0x%8.8x]",
ch_name, ch_flags)); ch_name, ch_flags));
dst_ch_name = instance->settings->ChannelDefArray[index].Name; dst_ch_name = instance->settings->channels[index].name;
g_memset(dst_ch_name, 0, 8); g_memset(dst_ch_name, 0, 8);
g_snprintf(dst_ch_name, 8, "%s", ch_name); g_snprintf(dst_ch_name, 8, "%s", ch_name);
instance->settings->ChannelDefArray[index].options = ch_flags; instance->settings->channels[index].options = ch_flags;
index++; index++;
error = mod->server_query_channel(mod, index, ch_name, &ch_flags); error = mod->server_query_channel(mod, index, ch_name, &ch_flags);
} }
instance->settings->ChannelCount = num_chans; instance->settings->num_channels = num_chans;
// TODO instance->settings->offscreen_bitmap_cache = 0;
// instance->settings->offscreen_bitmap_cache = false; instance->settings->draw_nine_grid = 0;
instance->settings->OffscreenSupportLevel = 0;
instance->settings->DrawNineGridEnabled = 0 ; instance->settings->glyph_cache = true;
instance->settings->glyphSupportLevel = GLYPH_SUPPORT_FULL;
// TODO instance->settings->order_support[NEG_GLYPH_INDEX_INDEX] = 1;
//instance->settings->glyph_cache = true; instance->settings->order_support[NEG_FAST_GLYPH_INDEX] = 0;
instance->settings->GlyphSupportLevel = GLYPH_SUPPORT_FULL; instance->settings->order_support[NEG_FAST_INDEX_INDEX] = 0;
instance->settings->OrderSupport[NEG_GLYPH_INDEX_INDEX] = TRUE; instance->settings->order_support[NEG_SCRBLT_INDEX] = 1;
instance->settings->OrderSupport[NEG_FAST_GLYPH_INDEX] = FALSE; instance->settings->order_support[NEG_SAVEBITMAP_INDEX] = 0;
instance->settings->OrderSupport[NEG_FAST_INDEX_INDEX] = FALSE;
instance->settings->OrderSupport[NEG_SCRBLT_INDEX] = TRUE; instance->settings->bitmap_cache = 1;
instance->settings->OrderSupport[NEG_SAVEBITMAP_INDEX] = FALSE; instance->settings->order_support[NEG_MEMBLT_INDEX] = 1;
instance->settings->order_support[NEG_MEMBLT_V2_INDEX] = 1;
instance->settings->BitmapCacheEnabled = TRUE; instance->settings->order_support[NEG_MEM3BLT_INDEX] = 0;
instance->settings->OrderSupport[NEG_MEMBLT_INDEX] = TRUE; instance->settings->order_support[NEG_MEM3BLT_V2_INDEX] = 0;
instance->settings->OrderSupport[NEG_MEMBLT_V2_INDEX] = TRUE; instance->settings->bitmapCacheV2NumCells = 3; // 5;
instance->settings->OrderSupport[NEG_MEM3BLT_INDEX] = FALSE; instance->settings->bitmapCacheV2CellInfo[0].numEntries = 0x78; // 600;
instance->settings->OrderSupport[NEG_MEM3BLT_V2_INDEX] = FALSE; instance->settings->bitmapCacheV2CellInfo[0].persistent = 0;
instance->settings->BitmapCacheV2NumCells = 3; // 5; instance->settings->bitmapCacheV2CellInfo[1].numEntries = 0x78; // 600;
instance->settings->BitmapCacheV2CellInfo[0].numEntries = 0x78; // 600; instance->settings->bitmapCacheV2CellInfo[1].persistent = 0;
instance->settings->BitmapCacheV2CellInfo[0].persistent = FALSE; instance->settings->bitmapCacheV2CellInfo[2].numEntries = 0x150; // 2048;
instance->settings->BitmapCacheV2CellInfo[1].numEntries = 0x78; // 600; instance->settings->bitmapCacheV2CellInfo[2].persistent = 0;
instance->settings->BitmapCacheV2CellInfo[1].persistent = FALSE; instance->settings->bitmapCacheV2CellInfo[3].numEntries = 0; // 4096;
instance->settings->BitmapCacheV2CellInfo[2].numEntries = 0x150; // 2048; instance->settings->bitmapCacheV2CellInfo[3].persistent = 0;
instance->settings->BitmapCacheV2CellInfo[2].persistent = FALSE; instance->settings->bitmapCacheV2CellInfo[4].numEntries = 0; // 2048;
instance->settings->BitmapCacheV2CellInfo[3].numEntries = 0; // 4096; instance->settings->bitmapCacheV2CellInfo[4].persistent = 0;
instance->settings->BitmapCacheV2CellInfo[3].persistent = FALSE;
instance->settings->BitmapCacheV2CellInfo[4].numEntries = 0; // 2048;
instance->settings->BitmapCacheV2CellInfo[4].persistent = FALSE;
// instance->settings->BitmapCacheV3Enabled = FALSE; // instance->settings->BitmapCacheV3Enabled = FALSE;
instance->settings->OrderSupport[NEG_MULTIDSTBLT_INDEX] = FALSE; instance->settings->order_support[NEG_MULTIDSTBLT_INDEX] = 0;
instance->settings->OrderSupport[NEG_MULTIPATBLT_INDEX] = FALSE; instance->settings->order_support[NEG_MULTIPATBLT_INDEX] = 0;
instance->settings->OrderSupport[NEG_MULTISCRBLT_INDEX] = FALSE; instance->settings->order_support[NEG_MULTISCRBLT_INDEX] = 0;
instance->settings->OrderSupport[NEG_MULTIOPAQUERECT_INDEX] = FALSE; instance->settings->order_support[NEG_MULTIOPAQUERECT_INDEX] = 0;
instance->settings->OrderSupport[NEG_POLYLINE_INDEX] = FALSE; instance->settings->order_support[NEG_POLYLINE_INDEX] = 0;
instance->settings->Username = g_strdup(mod->username); instance->settings->username = g_strdup(mod->username);
instance->settings->Password = g_strdup(mod->password); instance->settings->password = g_strdup(mod->password);
if (mod->client_info.rail_support_level > 0) if (mod->client_info.rail_support_level > 0)
{ {
LLOGLN(0, ("Railsupport !!!!!!!!!!!!!!!!!!")); LLOGLN(0, ("Railsupport !!!!!!!!!!!!!!!!!!"));
instance->settings->RemoteApplicationMode = TRUE; instance->settings->remote_app = 1;
instance->settings->RemoteAppLanguageBarSupported = TRUE; instance->settings->rail_langbar_supported = 1;
instance->settings->Workarea = TRUE; instance->settings->workarea = 1;
instance->settings->PerformanceFlags = PERF_DISABLE_WALLPAPER | PERF_DISABLE_FULLWINDOWDRAG; instance->settings->performance_flags = PERF_DISABLE_WALLPAPER | PERF_DISABLE_FULLWINDOWDRAG;
} }
else else
{ {
LLOGLN(10, ("Special PerformanceFlags changed")); LLOGLN(10, ("Special PerformanceFlags changed"));
instance->settings->PerformanceFlags = PERF_DISABLE_WALLPAPER | PERF_DISABLE_FULLWINDOWDRAG | PERF_DISABLE_MENUANIMATIONS | PERF_DISABLE_THEMING ; // | PERF_DISABLE_CURSOR_SHADOW | PERF_DISABLE_CURSORSETTINGS ; instance->settings->performance_flags = PERF_DISABLE_WALLPAPER |
PERF_DISABLE_FULLWINDOWDRAG | PERF_DISABLE_MENUANIMATIONS |
PERF_DISABLE_THEMING;
// | PERF_DISABLE_CURSOR_SHADOW | PERF_DISABLE_CURSORSETTINGS;
} }
instance->settings->CompressionEnabled = FALSE ; instance->settings->compression = 0;
instance->settings->IgnoreCertificate = TRUE ; instance->settings->ignore_certificate = 1;
// here // here
//instance->settings->RdpVersion = 4; //instance->settings->RdpVersion = 4;
@ -1413,14 +1427,14 @@ lfreerdp_pre_connect(freerdp *instance)
if ((mod->username[0] != 0) && (mod->password[0] != 0)) if ((mod->username[0] != 0) && (mod->password[0] != 0))
{ {
/* since we have username and password, we can try nla */ /* since we have username and password, we can try nla */
instance->settings->NlaSecurity = 1; instance->settings->nla_security = 1;
} }
else else
{ {
instance->settings->NlaSecurity = 0; instance->settings->nla_security = 0;
} }
return TRUE; return 1;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1683,7 +1697,7 @@ lrail_NonMonitoredDesktop(rdpContext *context, WINDOW_ORDER_INFO *orderInfo)
} }
/******************************************************************************/ /******************************************************************************/
static BOOL DEFAULT_CC static boolean DEFAULT_CC
lfreerdp_post_connect(freerdp *instance) lfreerdp_post_connect(freerdp *instance)
{ {
struct mod *mod; struct mod *mod;
@ -1703,7 +1717,7 @@ lfreerdp_post_connect(freerdp *instance)
mod->inst->update->window->MonitoredDesktop = lrail_MonitoredDesktop; mod->inst->update->window->MonitoredDesktop = lrail_MonitoredDesktop;
mod->inst->update->window->NonMonitoredDesktop = lrail_NonMonitoredDesktop; mod->inst->update->window->NonMonitoredDesktop = lrail_NonMonitoredDesktop;
return TRUE; return 1;
} }
/******************************************************************************/ /******************************************************************************/
@ -1722,7 +1736,7 @@ lfreerdp_context_free(freerdp *instance, rdpContext *context)
/******************************************************************************/ /******************************************************************************/
static int DEFAULT_CC static int DEFAULT_CC
lfreerdp_receive_channel_data(freerdp *instance, int channelId, UINT8 *data, lfreerdp_receive_channel_data(freerdp *instance, int channelId, uint8 *data,
int size, int flags, int total_size) int size, int flags, int total_size)
{ {
struct mod *mod; struct mod *mod;
@ -1733,9 +1747,9 @@ lfreerdp_receive_channel_data(freerdp *instance, int channelId, UINT8 *data,
mod = ((struct mod_context *)(instance->context))->modi; mod = ((struct mod_context *)(instance->context))->modi;
lchid = -1; lchid = -1;
for (index = 0; index < instance->settings->ChannelDefArraySize; index++) for (index = 0; index < instance->settings->num_channels; index++)
{ {
if (instance->settings->ChannelDefArray[index].ChannelId == channelId) if (instance->settings->channels[index].channel_id == channelId)
{ {
lchid = index; lchid = index;
break; break;
@ -1762,21 +1776,21 @@ lfreerdp_receive_channel_data(freerdp *instance, int channelId, UINT8 *data,
} }
/******************************************************************************/ /******************************************************************************/
static BOOL DEFAULT_CC static boolean DEFAULT_CC
lfreerdp_authenticate(freerdp *instance, char **username, lfreerdp_authenticate(freerdp *instance, char **username,
char **password, char **domain) char **password, char **domain)
{ {
LLOGLN(0, ("lfreerdp_authenticate: - no code here")); LLOGLN(0, ("lfreerdp_authenticate: - no code here"));
return TRUE; return 1;
} }
/******************************************************************************/ /******************************************************************************/
static BOOL DEFAULT_CC static boolean DEFAULT_CC
lfreerdp_verify_certificate(freerdp *instance, char *subject, char *issuer, lfreerdp_verify_certificate(freerdp *instance, char *subject, char *issuer,
char *fingerprint) char *fingerprint)
{ {
LLOGLN(0, ("lfreerdp_verify_certificate: - no code here")); LLOGLN(0, ("lfreerdp_verify_certificate: - no code here"));
return TRUE; return 1;
} }
/******************************************************************************/ /******************************************************************************/

Loading…
Cancel
Save