Merge pull request #1291 from bmiklautz/misc-fixes

Misc fixes
This commit is contained in:
Norbert Federa 2013-06-18 03:03:22 -07:00
commit 12ad8cceaf
5 changed files with 27 additions and 10 deletions

View File

@ -40,7 +40,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
MONOLITHIC ${MONOLITHIC_BUILD}
MODULE winpr
MODULES winpr-crt winpr-synch winpr-interlocked)
MODULES winpr-crt winpr-synch winpr-interlocked winpr-error)
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} PARENT_SCOPE)
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} PARENT_SCOPE)

View File

@ -134,6 +134,8 @@ COMMAND_LINE_ARGUMENT_A args[] =
{ "wm-class", COMMAND_LINE_VALUE_REQUIRED, "<class name>", NULL, NULL, -1, NULL, "set the WM_CLASS hint for the window instance" },
{ "version", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_VERSION, NULL, NULL, NULL, -1, NULL, "print version" },
{ "help", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_HELP, NULL, NULL, NULL, -1, "?", "print help" },
{ "play-rfx", COMMAND_LINE_VALUE_REQUIRED, "<pcap file>", NULL, NULL, -1, NULL, "Replay rfx pcap file" },
{ "auth-only", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Authenticate only." },
{ NULL, 0, NULL, NULL, NULL, -1, NULL, NULL }
};
@ -1596,6 +1598,15 @@ int freerdp_client_parse_command_line_arguments(int argc, char** argv, rdpSettin
{
settings->WmClass = _strdup(arg->Value);
}
CommandLineSwitchCase(arg, "play-rfx")
{
settings->PlayRemoteFxFile = _strdup(arg->Value);
settings->PlayRemoteFx = TRUE;
}
CommandLineSwitchCase(arg, "auth-only")
{
settings->AuthenticationOnly = arg->Value ? TRUE : FALSE;
}
CommandLineSwitchDefault(arg)
{

View File

@ -126,29 +126,31 @@ BOOL freerdp_connect(freerdp* instance)
update = instance->update;
s = StreamPool_Take(rdp->transport->ReceivePool, 0);
instance->update->pcap_rfx = pcap_open(settings->PlayRemoteFxFile, FALSE);
update->pcap_rfx = pcap_open(settings->PlayRemoteFxFile, FALSE);
if (update->pcap_rfx)
if (!update->pcap_rfx)
return FALSE;
else
update->play_rfx = TRUE;
while (update->play_rfx && pcap_has_next_record(update->pcap_rfx))
while (pcap_has_next_record(update->pcap_rfx))
{
pcap_get_next_record_header(update->pcap_rfx, &record);
Stream_EnsureCapacity(s, record.length);
s = StreamPool_Take(rdp->transport->ReceivePool, record.length);
record.data = Stream_Buffer(s);
pcap_get_next_record_content(update->pcap_rfx, &record);
Stream_SetLength(s,record.length);
Stream_SetPosition(s, 0);
update->BeginPaint(update->context);
update_recv_surfcmds(update, Stream_Capacity(s), s);
update_recv_surfcmds(update, Stream_Length(s) , s);
update->EndPaint(update->context);
Stream_Release(s);
}
Stream_Release(s);
return TRUE;
}
}

View File

@ -38,6 +38,7 @@
int xf_cursor_init(xfInfo* xfi)
{
#ifdef WITH_XFIXES
int event;
int error;
@ -50,6 +51,7 @@ int xf_cursor_init(xfInfo* xfi)
xfi->xfixes_notify_event = event + XFixesCursorNotify;
XFixesSelectCursorInput(xfi->display, DefaultRootWindow(xfi->display), XFixesDisplayCursorNotifyMask);
#endif
return 0;
}

View File

@ -80,12 +80,14 @@ void* xf_update_thread(void* param)
ResetEvent(xfp->updateSentEvent);
}
}
#ifdef WITH_XFIXES
else if (xevent.type == xfi->xfixes_notify_event)
{
XFixesCursorImage* ci = XFixesGetCursorImage(xfi->display);
XFree(ci);
}
#endif
}
end = GetTickCount();