FreeRDP/channels/drdynvc/client
Daniel Bungert 475a44f0e2 Free incompletely initialized dvcs.
If dynamic channels are not completely initialized, the server will
reuse those channel numbers for new channels.
This causes interesting problems when the server asks for a channel
by number, as we can end up with multiple channels with the same number.

Log example of the problem:
DBG_DVC drdynvc_process_receive (341): Cmd=0x1
DBG_DVC drdynvc_process_create_request (249): ChannelId=0 ChannelName=PNPDR
DBG_DVC drdynvc_process_create_request (265): no listener
DBG_DVC drdynvc_process_receive (341): Cmd=0x1
DBG_DVC drdynvc_process_create_request (249): ChannelId=0 ChannelName=TSMF
DBG_DVC tsmf_on_new_channel_connection (378):
DBG_DVC dvcman_create_channel (415): listener TSMF created new channel 0
DBG_DVC drdynvc_process_create_request (260): channel created
DBG_DVC drdynvc_process_receive (341): Cmd=0x3
DBG_DVC drdynvc_process_data (311): ChannelId=0
Warning dvcman_receive_channel_data (517): ChannelId 0 not ready!

In this log, we received data intended for TSMF, but the channel lookup
found the incompletely initialized PNPDR.
2013-06-11 16:49:27 -04:00
..
CMakeLists.txt libwinpr-path: make tests pass on Windows 2012-10-18 21:11:12 -04:00
drdynvc_main.c libfreerdp-client: start propagating channels initialization to client 2013-05-13 17:39:53 -04:00
drdynvc_main.h libfreerdp-client: start propagating channels initialization to client 2013-05-13 17:39:53 -04:00
drdynvc_types.h freerdp: fix headers 2012-10-08 23:02:04 -04:00
dvcman.c Free incompletely initialized dvcs. 2013-06-11 16:49:27 -04:00
dvcman.h channels/drdynvc: call OnChannelDisconnected 2013-05-20 15:23:54 -04:00