diff --git a/Makefile.am b/Makefile.am index 5193171f..26dcb8aa 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,6 +6,12 @@ else FREERDPDIR = endif +if XRDP_NEUTRINORDP +NEUTRINORDPDIR = neutrinordp +else +NEUTRINORDPDIR = +endif + if XRDP_XRDPVR XRDPVRDIR = xrdpvr else @@ -19,6 +25,7 @@ SUBDIRS = \ xup \ mc \ $(FREERDPDIR) \ + $(NEUTRINORDPDIR) \ libxrdp \ xrdp \ sesman \ diff --git a/common/parse.h b/common/parse.h index be01a3f1..ddaa87a6 100644 --- a/common/parse.h +++ b/common/parse.h @@ -308,7 +308,7 @@ struct stream * @param _s opaque handle to the new stream * @param _l length of new stream ******************************************************************************/ -#define stream_new(_s, _l) \ +#define xstream_new(_s, _l) \ do \ { \ make_stream((_s)); \ @@ -320,25 +320,25 @@ do \ * * @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 stream_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_u8(_s, _var) in_uint8(_s, _var) +#define xstream_rd_u16_le(_s, _var) in_uint16_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 stream_rd_s16_le(_s, _var) in_sint16_le(_s, _var) -#define stream_rd_s32_le(_s, _var) TODO +#define xstream_rd_s8_le(_s, _var) in_sint8(_s, _var) +#define xstream_rd_s16_le(_s, _var) in_sint16_le(_s, _var) +#define xstream_rd_s32_le(_s, _var) TODO -#define stream_wr_u8(_s, _var) out_uint8(_s, _var) -#define stream_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_u8(_s, _var) out_uint8(_s, _var) +#define xstream_wr_u16_le(_s, _var) out_uint16_le(_s, _var) +#define xstream_wr_u32_le(_s, _var) out_uint32_le(_s, _var) -#define stream_wr_s8(_s, _var) TODO -#define stream_wr_s16_le(_s, _var) TODO -#define stream_wr_s32_le(_s, _var) TODO +#define xstream_wr_s8(_s, _var) TODO +#define xstream_wr_s16_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 \ { \ _v = \ @@ -353,7 +353,7 @@ do \ _s->p += 8; \ } while (0) -#define stream_wr_u64_le(_s, _v) \ +#define xstream_wr_u64_le(_s, _v) \ do \ { \ *(((unsigned char *) _s->p) + 0) = (unsigned char) ((_v >> 0) & 0xff); \ @@ -368,36 +368,36 @@ do \ } while (0) /* copy data into stream */ -#define stream_copyin(_s, _dest, _len) \ +#define xstream_copyin(_s, _dest, _len) \ do \ { \ - memcpy((_s)->p, (_dest), (_len)); \ + g_memcpy((_s)->p, (_dest), (_len)); \ (_s)->p += (_len); \ } while (0) /* copy data out of stream */ -#define stream_copyout(_dest, _s, _len) \ +#define xstream_copyout(_dest, _s, _len) \ { \ do \ - memcpy((_dest), (_s)->p, (_len)); \ + g_memcpy((_dest), (_s)->p, (_len)); \ (_s)->p += (_len); \ } while (0) -#define stream_rd_string(_dest, _s, _len) \ +#define xstream_rd_string(_dest, _s, _len) \ do \ { \ - memcpy((_dest), (_s)->p, (_len)); \ + g_memcpy((_dest), (_s)->p, (_len)); \ (_s)->p += (_len); \ } while (0) -#define stream_wr_string(_s, _src, _len) \ +#define xstream_wr_string(_s, _src, _len) \ do \ { \ - memcpy((_s)->p, (_src), (_len)); \ + g_memcpy((_s)->p, (_src), (_len)); \ (_s)->p += (_len); \ } while (0) -#define stream_len(_s) (int) ((_s)->p - (_s)->data) -#define stream_seek(_s, _len) (_s)->p += (_len) +#define xstream_len(_s) (int) ((_s)->p - (_s)->data) +#define xstream_seek(_s, _len) (_s)->p += (_len) #endif diff --git a/configure.ac b/configure.ac index 52a44b3c..92655612 100644 --- a/configure.ac +++ b/configure.ac @@ -35,6 +35,10 @@ AC_ARG_ENABLE(freerdp1, AS_HELP_STRING([--enable-freerdp1], [Build freerdp1 module (default: no)]), [freerdp1=true], [freerdp1=false]) 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], [Build jpeg module (default: no)]), [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_neutrinordp" = "xyes"] , [PKG_CHECK_MODULES(FREERDP, freerdp >= 1.0.0)] ) + # checking for libjpeg if ! test -z "$enable_jpeg" then @@ -123,6 +129,7 @@ AC_CONFIG_FILES([Makefile xup/Makefile mc/Makefile freerdp1/Makefile + neutrinordp/Makefile xrdp/Makefile sesman/Makefile sesman/libscp/Makefile diff --git a/neutrinordp/Makefile.am b/neutrinordp/Makefile.am index 5ee2f565..93e1196a 100644 --- a/neutrinordp/Makefile.am +++ b/neutrinordp/Makefile.am @@ -23,6 +23,6 @@ lib_LTLIBRARIES = \ libxrdpneutrinordp_la_SOURCES = xrdp-neutrinordp.c xrdp-color.c -libxrdpneutrinodp_la_LIBADD = \ +libxrdpneutrinordp_la_LIBADD = \ $(top_builddir)/common/libcommon.la \ $(FREERDP_LIBS) diff --git a/neutrinordp/xrdp-neutrinordp.c b/neutrinordp/xrdp-neutrinordp.c index 31d5fd10..3c24d8be 100644 --- a/neutrinordp/xrdp-neutrinordp.c +++ b/neutrinordp/xrdp-neutrinordp.c @@ -42,18 +42,22 @@ struct mod_context }; typedef struct mod_context modContext; -void verifyColorMap(struct mod *mod) +/*****************************************************************************/ +static void +verifyColorMap(struct mod *mod) { - int i ; - for( i = 0 ;i<255 ; i++) + int i; + + for(i = 0; i < 255; i++) { - if(mod->colormap[i]!=0) - { - return ; - } + if (mod->colormap[i] != 0) + { + return ; + } } - LLOGLN(0, ("The colormap is all NULL\n")); + LLOGLN(0, ("The colormap is all NULL")); } + /*****************************************************************************/ /* return error */ 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)); settings = mod->inst->settings; - settings->DesktopWidth = w; - settings->DesktopHeight = h; - settings->ColorDepth = bpp; + settings->width = w; + settings->height = h; + settings->color_depth = bpp; mod->bpp = bpp; - // TODO what does this really become - settings->DisableEncryption = 1; // settings->encryption = 1; - settings->TlsSecurity = 1; - settings->NlaSecurity = 0; - settings->RdpSecurity = 1; + + settings->encryption = 1; + settings->tls_security = 1; + settings->nla_security = 0; + settings->rdp_security = 1; return 0; } @@ -81,7 +85,7 @@ lxrdp_start(struct mod *mod, int w, int h, int bpp) static int DEFAULT_CC lxrdp_connect(struct mod *mod) { - BOOL ok; + boolean ok; LLOGLN(10, ("lxrdp_connect:")); @@ -152,12 +156,18 @@ lxrdp_connect(struct mod *mod) } #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; } 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; @@ -262,7 +272,7 @@ lxrdp_event(struct mod *mod, int msg, long param1, long param2, rectangle->right = (((param2 >> 16) & 0xffff) + rectangle->left) - 1; rectangle->bottom = ((param2 & 0xffff) + rectangle->top) - 1; - if (mod->inst->settings->RefreshRect) + if (mod->inst->settings->refresh_rect) { if (mod->inst->update != NULL) { @@ -304,13 +314,13 @@ lxrdp_event(struct mod *mod, int msg, long param1, long param2, total_size = (int)param4; 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)); break; } - lchid = mod->inst->settings->ChannelDefArray[chanid].ChannelId; + lchid = mod->inst->settings->channels[chanid].channel_id; 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)); settings = mod->inst->settings; - LLOGLN(10, ("%p %d", settings->ServerHostname, settings->DisableEncryption)); - if (g_strcmp(name, "hostname") == 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) { - settings->ServerPort = g_atoi(value); + settings->port = g_atoi(value); } 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 **wfds; - BOOL ok; + boolean ok; LLOGLN(12, ("lxrdp_get_wait_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 lxrdp_check_wait_objs(struct mod *mod) { - BOOL ok; + boolean ok; LLOGLN(12, ("lxrdp_check_wait_objs:")); ok = freerdp_check_fds(mod->inst); @@ -564,7 +572,7 @@ lfreerdp_bitmap_update(rdpContext *context, BITMAP_UPDATE *bitmap) mod = ((struct mod_context *)context)->modi; 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; client_bpp = mod->bpp; @@ -642,7 +650,7 @@ lfreerdp_pat_blt(rdpContext *context, PATBLT_ORDER *patblt) mod = ((struct mod_context *)context)->modi; LLOGLN(10, ("lfreerdp_pat_blt:")); - server_bpp = mod->inst->settings->ColorDepth; + server_bpp = mod->inst->settings->color_depth; client_bpp = mod->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; LLOGLN(10, ("lfreerdp_opaque_rect:")); - server_bpp = mod->inst->settings->ColorDepth; + server_bpp = mod->inst->settings->color_depth; client_bpp = mod->bpp; fgcolor = convert_color(server_bpp, client_bpp, 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; LLOGLN(10, ("lfreerdp_glyph_index:")); - server_bpp = mod->inst->settings->ColorDepth; + server_bpp = mod->inst->settings->color_depth; client_bpp = mod->bpp; fgcolor = convert_color(server_bpp, client_bpp, 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; LLOGLN(10, ("lfreerdp_line_to:")); 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; fgcolor = convert_color(server_bpp, client_bpp, 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*/ 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 *dst; @@ -906,7 +914,7 @@ lfreerdp_cache_bitmapV2(rdpContext *context, return; } - server_bpp = mod->inst->settings->ColorDepth; + server_bpp = mod->inst->settings->color_depth; server_Bpp = (server_bpp + 7) / 8; client_bpp = mod->bpp; @@ -1231,8 +1239,9 @@ lfreerdp_pointer_cached(rdpContext *context, index = pointer_cached->cacheIndex; LLOGLN(10, ("lfreerdp_pointer_cached:%d", index)); mod->server_set_pointer(mod, mod->pointer_cache[index].hotx, - mod->pointer_cache[index].hoty, mod->pointer_cache[index].data, - mod->pointer_cache[index].mask); + mod->pointer_cache[index].hoty, + mod->pointer_cache[index].data, + mod->pointer_cache[index].mask); } 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; 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)); - if(polygon_sc->numPoints==3) - { - server_bpp = mod->inst->settings->ColorDepth; + LLOGLN(10, ("lfreerdp_polygon_sc :%d(points) %d(color) %d(fillmode) " + "%d(bRop) %d(cbData) %d(x) %d(y)", + polygon_sc->nDeltaEntries, polygon_sc->brushColor, + 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; points[0].x = polygon_sc->xStart; 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].y = polygon_sc->points[i].y; + points[i + 1].x = 0; // polygon_sc->points[i].x; + points[i + 1].y = 0; // polygon_sc->points[i].y; } 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_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 // 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_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); // mod->server_set_brush(mod,); // howto use this on our indata?? 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) { struct mod *mod; @@ -1315,72 +1329,72 @@ lfreerdp_pre_connect(freerdp *instance) num_chans++; LLOGLN(10, ("lfreerdp_pre_connect: got channel [%s], flags [0x%8.8x]", 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_snprintf(dst_ch_name, 8, "%s", ch_name); - instance->settings->ChannelDefArray[index].options = ch_flags; + instance->settings->channels[index].options = ch_flags; index++; error = mod->server_query_channel(mod, index, ch_name, &ch_flags); } - instance->settings->ChannelCount = num_chans; - - // TODO - // instance->settings->offscreen_bitmap_cache = false; - instance->settings->OffscreenSupportLevel = 0; - instance->settings->DrawNineGridEnabled = 0 ; - - // TODO - //instance->settings->glyph_cache = true; - instance->settings->GlyphSupportLevel = GLYPH_SUPPORT_FULL; - instance->settings->OrderSupport[NEG_GLYPH_INDEX_INDEX] = TRUE; - instance->settings->OrderSupport[NEG_FAST_GLYPH_INDEX] = FALSE; - instance->settings->OrderSupport[NEG_FAST_INDEX_INDEX] = FALSE; - instance->settings->OrderSupport[NEG_SCRBLT_INDEX] = TRUE; - instance->settings->OrderSupport[NEG_SAVEBITMAP_INDEX] = FALSE; - - instance->settings->BitmapCacheEnabled = TRUE; - instance->settings->OrderSupport[NEG_MEMBLT_INDEX] = TRUE; - instance->settings->OrderSupport[NEG_MEMBLT_V2_INDEX] = TRUE; - instance->settings->OrderSupport[NEG_MEM3BLT_INDEX] = FALSE; - instance->settings->OrderSupport[NEG_MEM3BLT_V2_INDEX] = FALSE; - instance->settings->BitmapCacheV2NumCells = 3; // 5; - instance->settings->BitmapCacheV2CellInfo[0].numEntries = 0x78; // 600; - instance->settings->BitmapCacheV2CellInfo[0].persistent = FALSE; - instance->settings->BitmapCacheV2CellInfo[1].numEntries = 0x78; // 600; - instance->settings->BitmapCacheV2CellInfo[1].persistent = FALSE; - instance->settings->BitmapCacheV2CellInfo[2].numEntries = 0x150; // 2048; - instance->settings->BitmapCacheV2CellInfo[2].persistent = FALSE; - instance->settings->BitmapCacheV2CellInfo[3].numEntries = 0; // 4096; - instance->settings->BitmapCacheV2CellInfo[3].persistent = FALSE; - instance->settings->BitmapCacheV2CellInfo[4].numEntries = 0; // 2048; - instance->settings->BitmapCacheV2CellInfo[4].persistent = FALSE; + instance->settings->num_channels = num_chans; + + instance->settings->offscreen_bitmap_cache = 0; + instance->settings->draw_nine_grid = 0; + + instance->settings->glyph_cache = true; + instance->settings->glyphSupportLevel = GLYPH_SUPPORT_FULL; + instance->settings->order_support[NEG_GLYPH_INDEX_INDEX] = 1; + instance->settings->order_support[NEG_FAST_GLYPH_INDEX] = 0; + instance->settings->order_support[NEG_FAST_INDEX_INDEX] = 0; + instance->settings->order_support[NEG_SCRBLT_INDEX] = 1; + instance->settings->order_support[NEG_SAVEBITMAP_INDEX] = 0; + + instance->settings->bitmap_cache = 1; + instance->settings->order_support[NEG_MEMBLT_INDEX] = 1; + instance->settings->order_support[NEG_MEMBLT_V2_INDEX] = 1; + instance->settings->order_support[NEG_MEM3BLT_INDEX] = 0; + instance->settings->order_support[NEG_MEM3BLT_V2_INDEX] = 0; + instance->settings->bitmapCacheV2NumCells = 3; // 5; + instance->settings->bitmapCacheV2CellInfo[0].numEntries = 0x78; // 600; + instance->settings->bitmapCacheV2CellInfo[0].persistent = 0; + instance->settings->bitmapCacheV2CellInfo[1].numEntries = 0x78; // 600; + instance->settings->bitmapCacheV2CellInfo[1].persistent = 0; + instance->settings->bitmapCacheV2CellInfo[2].numEntries = 0x150; // 2048; + instance->settings->bitmapCacheV2CellInfo[2].persistent = 0; + instance->settings->bitmapCacheV2CellInfo[3].numEntries = 0; // 4096; + instance->settings->bitmapCacheV2CellInfo[3].persistent = 0; + instance->settings->bitmapCacheV2CellInfo[4].numEntries = 0; // 2048; + instance->settings->bitmapCacheV2CellInfo[4].persistent = 0; // instance->settings->BitmapCacheV3Enabled = FALSE; - instance->settings->OrderSupport[NEG_MULTIDSTBLT_INDEX] = FALSE; - instance->settings->OrderSupport[NEG_MULTIPATBLT_INDEX] = FALSE; - instance->settings->OrderSupport[NEG_MULTISCRBLT_INDEX] = FALSE; - instance->settings->OrderSupport[NEG_MULTIOPAQUERECT_INDEX] = FALSE; - instance->settings->OrderSupport[NEG_POLYLINE_INDEX] = FALSE; + instance->settings->order_support[NEG_MULTIDSTBLT_INDEX] = 0; + instance->settings->order_support[NEG_MULTIPATBLT_INDEX] = 0; + instance->settings->order_support[NEG_MULTISCRBLT_INDEX] = 0; + instance->settings->order_support[NEG_MULTIOPAQUERECT_INDEX] = 0; + instance->settings->order_support[NEG_POLYLINE_INDEX] = 0; - instance->settings->Username = g_strdup(mod->username); - instance->settings->Password = g_strdup(mod->password); + instance->settings->username = g_strdup(mod->username); + instance->settings->password = g_strdup(mod->password); if (mod->client_info.rail_support_level > 0) { LLOGLN(0, ("Railsupport !!!!!!!!!!!!!!!!!!")); - instance->settings->RemoteApplicationMode = TRUE; - instance->settings->RemoteAppLanguageBarSupported = TRUE; - instance->settings->Workarea = TRUE; - instance->settings->PerformanceFlags = PERF_DISABLE_WALLPAPER | PERF_DISABLE_FULLWINDOWDRAG; + instance->settings->remote_app = 1; + instance->settings->rail_langbar_supported = 1; + instance->settings->workarea = 1; + instance->settings->performance_flags = PERF_DISABLE_WALLPAPER | PERF_DISABLE_FULLWINDOWDRAG; } else { 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->IgnoreCertificate = TRUE ; + instance->settings->compression = 0; + instance->settings->ignore_certificate = 1; // here //instance->settings->RdpVersion = 4; @@ -1413,14 +1427,14 @@ lfreerdp_pre_connect(freerdp *instance) if ((mod->username[0] != 0) && (mod->password[0] != 0)) { /* since we have username and password, we can try nla */ - instance->settings->NlaSecurity = 1; + instance->settings->nla_security = 1; } 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) { struct mod *mod; @@ -1703,7 +1717,7 @@ lfreerdp_post_connect(freerdp *instance) mod->inst->update->window->MonitoredDesktop = lrail_MonitoredDesktop; 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 -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) { struct mod *mod; @@ -1733,9 +1747,9 @@ lfreerdp_receive_channel_data(freerdp *instance, int channelId, UINT8 *data, mod = ((struct mod_context *)(instance->context))->modi; 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; 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, char **password, char **domain) { 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, char *fingerprint) { LLOGLN(0, ("lfreerdp_verify_certificate: - no code here")); - return TRUE; + return 1; } /******************************************************************************/