/** * data comming from the server to the client * called only from main thread */ int freerdp_channels_data(freerdp* instance, int channel_id, void* data, int data_size, int flags, int total_size) { int index; rdpChannels* channels; rdpChannel* lrdp_channel; struct channel_data* lchannel_data; channels = freerdp_channels_find_by_instance(instance); if (channels == 0) { DEBUG_CHANNELS("could not find channel manager"); return 1; } lrdp_channel = freerdp_channels_find_channel_by_id(channels, instance->settings, channel_id, &index); if (lrdp_channel == 0) { DEBUG_CHANNELS("could not find channel id"); return 1; } lchannel_data = freerdp_channels_find_channel_data_by_name(channels, lrdp_channel->Name, &index); if (lchannel_data == 0) { DEBUG_CHANNELS("could not find channel name"); return 1; } if (lchannel_data->open_event_proc != 0) { lchannel_data->open_event_proc(lchannel_data->open_handle, CHANNEL_EVENT_DATA_RECEIVED, data, data_size, total_size, flags); } return 0; }
/** * data coming from the server to the client * called only from main thread */ int freerdp_channels_data(freerdp* instance, int channel_id, void* data, int data_size, int flags, int total_size) { int index; rdpChannel* channel; rdpChannels* channels; CHANNEL_OPEN_DATA* pChannelOpenData; channels = freerdp_channels_find_by_instance(instance); if (!channels) { DEBUG_CHANNELS("could not find channel manager"); return 1; } channel = freerdp_channels_find_channel_by_id(channels, instance->settings, channel_id, &index); if (!channel) { DEBUG_CHANNELS("could not find channel id"); return 1; } pChannelOpenData = freerdp_channels_find_channel_open_data_by_name(channels, channel->Name); if (!pChannelOpenData) { DEBUG_CHANNELS("could not find channel name"); return 1; } if (pChannelOpenData->pChannelOpenEventProc) { pChannelOpenData->pChannelOpenEventProc(pChannelOpenData->OpenHandle, CHANNEL_EVENT_DATA_RECEIVED, data, data_size, total_size, flags); } return 0; }