mirror of
https://github.com/FreeRDP/FreeRDP.git
synced 2025-06-03 00:00:20 +00:00
drdynvc: fix value of cb field
This commit is contained in:
parent
fa4d8fca1b
commit
8e64d1803b
@ -45,6 +45,7 @@ struct drdynvc_plugin
|
||||
int PriorityCharge1;
|
||||
int PriorityCharge2;
|
||||
int PriorityCharge3;
|
||||
int channel_error;
|
||||
|
||||
IWTSVirtualChannelManager* channel_mgr;
|
||||
};
|
||||
@ -65,7 +66,7 @@ static int drdynvc_write_variable_uint(STREAM* stream, uint32 val)
|
||||
}
|
||||
else
|
||||
{
|
||||
cb = 3;
|
||||
cb = 2;
|
||||
stream_write_uint32(stream, val);
|
||||
}
|
||||
return cb;
|
||||
@ -82,6 +83,9 @@ int drdynvc_write_data(drdynvcPlugin* drdynvc, uint32 ChannelId, uint8* data, ui
|
||||
|
||||
DEBUG_DVC("ChannelId=%d size=%d", ChannelId, data_size);
|
||||
|
||||
if (drdynvc->channel_error != CHANNEL_RC_OK)
|
||||
return 1;
|
||||
|
||||
data_out = stream_new(CHANNEL_CHUNK_LENGTH);
|
||||
stream_set_pos(data_out, 1);
|
||||
cbChId = drdynvc_write_variable_uint(data_out, ChannelId);
|
||||
@ -139,6 +143,7 @@ int drdynvc_write_data(drdynvcPlugin* drdynvc, uint32 ChannelId, uint8* data, ui
|
||||
}
|
||||
if (error != CHANNEL_RC_OK)
|
||||
{
|
||||
drdynvc->channel_error = error;
|
||||
DEBUG_WARN("VirtualChannelWrite failed %d", error);
|
||||
return 1;
|
||||
}
|
||||
@ -182,6 +187,8 @@ static int drdynvc_process_capability_request(drdynvcPlugin* drdynvc, int Sp, in
|
||||
DEBUG_WARN("VirtualChannelWrite failed %d", error);
|
||||
return 1;
|
||||
}
|
||||
drdynvc->channel_error = error;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -329,6 +336,7 @@ static void drdynvc_process_connect(rdpSvcPlugin* plugin)
|
||||
DEBUG_DVC("connecting");
|
||||
|
||||
drdynvc->channel_mgr = dvcman_new(drdynvc);
|
||||
drdynvc->channel_error = 0;
|
||||
dvcman_load_plugin(drdynvc->channel_mgr, svc_plugin_get_data(plugin));
|
||||
dvcman_init(drdynvc->channel_mgr);
|
||||
}
|
||||
|
@ -384,8 +384,12 @@ int svc_plugin_send(rdpSvcPlugin* plugin, STREAM* data_out)
|
||||
|
||||
DEBUG_SVC("length %d", stream_get_length(data_out));
|
||||
|
||||
error = plugin->channel_entry_points.pVirtualChannelWrite(plugin->priv->open_handle,
|
||||
stream_get_data(data_out), stream_get_length(data_out), data_out);
|
||||
if (!plugin || !plugin->priv)
|
||||
error = CHANNEL_RC_BAD_INIT_HANDLE;
|
||||
else
|
||||
error = plugin->channel_entry_points.pVirtualChannelWrite(plugin->priv->open_handle,
|
||||
stream_get_data(data_out), stream_get_length(data_out), data_out);
|
||||
|
||||
if (error != CHANNEL_RC_OK)
|
||||
{
|
||||
stream_free(data_out);
|
||||
|
Loading…
Reference in New Issue
Block a user