client: Check if channel has already been added

This commit is contained in:
Martin Fleisz 2017-02-22 13:46:47 +01:00
parent eeae688ed3
commit a391a3decc

View File

@ -628,6 +628,13 @@ BOOL freerdp_client_add_static_channel(rdpSettings* settings, int count,
{ {
int index; int index;
ADDIN_ARGV* args; ADDIN_ARGV* args;
if (!settings || !params || !params[0])
return FALSE;
if (freerdp_static_channel_collection_find(settings, params[0]))
return TRUE;
args = (ADDIN_ARGV*) calloc(1, sizeof(ADDIN_ARGV)); args = (ADDIN_ARGV*) calloc(1, sizeof(ADDIN_ARGV));
if (!args) if (!args)
@ -673,6 +680,13 @@ BOOL freerdp_client_add_dynamic_channel(rdpSettings* settings, int count,
{ {
int index; int index;
ADDIN_ARGV* args; ADDIN_ARGV* args;
if (!settings || !params || !params[0])
return FALSE;
if (freerdp_dynamic_channel_collection_find(settings, params[0]))
return TRUE;
args = (ADDIN_ARGV*) malloc(sizeof(ADDIN_ARGV)); args = (ADDIN_ARGV*) malloc(sizeof(ADDIN_ARGV));
if (!args) if (!args)
@ -2686,7 +2700,7 @@ BOOL freerdp_client_load_addins(rdpChannels* channels, rdpSettings* settings)
if (settings->DeviceRedirection) if (settings->DeviceRedirection)
{ {
if (!freerdp_client_load_static_channel_addin(channels, settings, "rdpdr", if (!freerdp_client_load_static_channel_addin(channels, settings, "rdpdr",
settings)) settings))
return FALSE; return FALSE;
if (!freerdp_static_channel_collection_find(settings, "rdpsnd")) if (!freerdp_static_channel_collection_find(settings, "rdpsnd"))
@ -2738,14 +2752,11 @@ BOOL freerdp_client_load_addins(rdpChannels* channels, rdpSettings* settings)
if (settings->RedirectClipboard) if (settings->RedirectClipboard)
{ {
if (!freerdp_static_channel_collection_find(settings, "cliprdr")) char* params[1];
{ params[0] = "cliprdr";
char* params[1];
params[0] = "cliprdr";
if (!freerdp_client_add_static_channel(settings, 1, (char**) params)) if (!freerdp_client_add_static_channel(settings, 1, (char**) params))
return FALSE; return FALSE;
}
} }
if (settings->LyncRdpMode) if (settings->LyncRdpMode)
@ -2764,14 +2775,14 @@ BOOL freerdp_client_load_addins(rdpChannels* channels, rdpSettings* settings)
if (settings->EncomspVirtualChannel) if (settings->EncomspVirtualChannel)
{ {
if (!freerdp_client_load_static_channel_addin(channels, settings, "encomsp", if (!freerdp_client_load_static_channel_addin(channels, settings, "encomsp",
settings)) settings))
return FALSE; return FALSE;
} }
if (settings->RemdeskVirtualChannel) if (settings->RemdeskVirtualChannel)
{ {
if (!freerdp_client_load_static_channel_addin(channels, settings, "remdesk", if (!freerdp_client_load_static_channel_addin(channels, settings, "remdesk",
settings)) settings))
return FALSE; return FALSE;
} }