Fixed channel connected status.
This commit is contained in:
parent
a64fb343c1
commit
7ed99623df
@ -254,7 +254,6 @@ UINT freerdp_channels_attach(freerdp* instance)
|
|||||||
rdpChannels* channels;
|
rdpChannels* channels;
|
||||||
CHANNEL_CLIENT_DATA* pChannelClientData;
|
CHANNEL_CLIENT_DATA* pChannelClientData;
|
||||||
channels = instance->context->channels;
|
channels = instance->context->channels;
|
||||||
channels->connected = 1;
|
|
||||||
hostname = instance->settings->ServerHostname;
|
hostname = instance->settings->ServerHostname;
|
||||||
hostnameLength = (int) strlen(hostname);
|
hostnameLength = (int) strlen(hostname);
|
||||||
|
|
||||||
@ -312,7 +311,6 @@ UINT freerdp_channels_detach(freerdp* instance)
|
|||||||
rdpChannels* channels;
|
rdpChannels* channels;
|
||||||
CHANNEL_CLIENT_DATA* pChannelClientData;
|
CHANNEL_CLIENT_DATA* pChannelClientData;
|
||||||
channels = instance->context->channels;
|
channels = instance->context->channels;
|
||||||
channels->connected = 1;
|
|
||||||
hostname = instance->settings->ServerHostname;
|
hostname = instance->settings->ServerHostname;
|
||||||
hostnameLength = (int) strlen(hostname);
|
hostnameLength = (int) strlen(hostname);
|
||||||
|
|
||||||
@ -373,7 +371,7 @@ UINT freerdp_channels_post_connect(rdpChannels* channels, freerdp* instance)
|
|||||||
char* hostname;
|
char* hostname;
|
||||||
int hostnameLength;
|
int hostnameLength;
|
||||||
CHANNEL_CLIENT_DATA* pChannelClientData;
|
CHANNEL_CLIENT_DATA* pChannelClientData;
|
||||||
channels->connected = 1;
|
channels->connected = TRUE;
|
||||||
hostname = instance->settings->ServerHostname;
|
hostname = instance->settings->ServerHostname;
|
||||||
hostnameLength = (int) strlen(hostname);
|
hostnameLength = (int) strlen(hostname);
|
||||||
|
|
||||||
@ -618,7 +616,6 @@ UINT freerdp_channels_disconnect(rdpChannels* channels, freerdp* instance)
|
|||||||
if (!channels->connected)
|
if (!channels->connected)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
channels->connected = 0;
|
|
||||||
freerdp_channels_check_fds(channels, instance);
|
freerdp_channels_check_fds(channels, instance);
|
||||||
|
|
||||||
/* tell all libraries we are shutting down */
|
/* tell all libraries we are shutting down */
|
||||||
@ -651,6 +648,7 @@ UINT freerdp_channels_disconnect(rdpChannels* channels, freerdp* instance)
|
|||||||
PubSub_OnChannelDisconnected(instance->context->pubSub, instance->context, &e);
|
PubSub_OnChannelDisconnected(instance->context->pubSub, instance->context, &e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
channels->connected = FALSE;
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -988,16 +986,14 @@ static UINT VCAPITYPE FreeRDP_VirtualChannelWriteEx(LPVOID pInitHandle, DWORD op
|
|||||||
if (!channels)
|
if (!channels)
|
||||||
return CHANNEL_RC_BAD_CHANNEL_HANDLE;
|
return CHANNEL_RC_BAD_CHANNEL_HANDLE;
|
||||||
|
|
||||||
/* If a channel is not connected do not send the data but ignore it.
|
|
||||||
* Return success to allow terminating channel threads to end gracefully. */
|
|
||||||
if (!channels->connected)
|
|
||||||
return CHANNEL_RC_OK;
|
|
||||||
|
|
||||||
pChannelOpenData = HashTable_GetItemValue(channels->openHandles, (void*)(UINT_PTR) openHandle);
|
pChannelOpenData = HashTable_GetItemValue(channels->openHandles, (void*)(UINT_PTR) openHandle);
|
||||||
|
|
||||||
if (!pChannelOpenData)
|
if (!pChannelOpenData)
|
||||||
return CHANNEL_RC_BAD_CHANNEL_HANDLE;
|
return CHANNEL_RC_BAD_CHANNEL_HANDLE;
|
||||||
|
|
||||||
|
if (!channels->connected)
|
||||||
|
return CHANNEL_RC_NOT_CONNECTED;
|
||||||
|
|
||||||
if (!pData)
|
if (!pData)
|
||||||
return CHANNEL_RC_NULL_DATA;
|
return CHANNEL_RC_NULL_DATA;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user