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 PriorityCharge1;
|
||||||
int PriorityCharge2;
|
int PriorityCharge2;
|
||||||
int PriorityCharge3;
|
int PriorityCharge3;
|
||||||
|
int channel_error;
|
||||||
|
|
||||||
IWTSVirtualChannelManager* channel_mgr;
|
IWTSVirtualChannelManager* channel_mgr;
|
||||||
};
|
};
|
||||||
@ -65,7 +66,7 @@ static int drdynvc_write_variable_uint(STREAM* stream, uint32 val)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cb = 3;
|
cb = 2;
|
||||||
stream_write_uint32(stream, val);
|
stream_write_uint32(stream, val);
|
||||||
}
|
}
|
||||||
return cb;
|
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);
|
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);
|
data_out = stream_new(CHANNEL_CHUNK_LENGTH);
|
||||||
stream_set_pos(data_out, 1);
|
stream_set_pos(data_out, 1);
|
||||||
cbChId = drdynvc_write_variable_uint(data_out, ChannelId);
|
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)
|
if (error != CHANNEL_RC_OK)
|
||||||
{
|
{
|
||||||
|
drdynvc->channel_error = error;
|
||||||
DEBUG_WARN("VirtualChannelWrite failed %d", error);
|
DEBUG_WARN("VirtualChannelWrite failed %d", error);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -182,6 +187,8 @@ static int drdynvc_process_capability_request(drdynvcPlugin* drdynvc, int Sp, in
|
|||||||
DEBUG_WARN("VirtualChannelWrite failed %d", error);
|
DEBUG_WARN("VirtualChannelWrite failed %d", error);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
drdynvc->channel_error = error;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -329,6 +336,7 @@ static void drdynvc_process_connect(rdpSvcPlugin* plugin)
|
|||||||
DEBUG_DVC("connecting");
|
DEBUG_DVC("connecting");
|
||||||
|
|
||||||
drdynvc->channel_mgr = dvcman_new(drdynvc);
|
drdynvc->channel_mgr = dvcman_new(drdynvc);
|
||||||
|
drdynvc->channel_error = 0;
|
||||||
dvcman_load_plugin(drdynvc->channel_mgr, svc_plugin_get_data(plugin));
|
dvcman_load_plugin(drdynvc->channel_mgr, svc_plugin_get_data(plugin));
|
||||||
dvcman_init(drdynvc->channel_mgr);
|
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));
|
DEBUG_SVC("length %d", stream_get_length(data_out));
|
||||||
|
|
||||||
|
if (!plugin || !plugin->priv)
|
||||||
|
error = CHANNEL_RC_BAD_INIT_HANDLE;
|
||||||
|
else
|
||||||
error = plugin->channel_entry_points.pVirtualChannelWrite(plugin->priv->open_handle,
|
error = plugin->channel_entry_points.pVirtualChannelWrite(plugin->priv->open_handle,
|
||||||
stream_get_data(data_out), stream_get_length(data_out), data_out);
|
stream_get_data(data_out), stream_get_length(data_out), data_out);
|
||||||
|
|
||||||
if (error != CHANNEL_RC_OK)
|
if (error != CHANNEL_RC_OK)
|
||||||
{
|
{
|
||||||
stream_free(data_out);
|
stream_free(data_out);
|
||||||
|
Loading…
Reference in New Issue
Block a user