chansrv: fix for writing to non existing channel goes to first channel

master
Jay Sorg 12 years ago
parent 9fb425922a
commit f43e0eb68f

@ -78,6 +78,10 @@ send_channel_data(int chan_id, char* data, int size)
int sent; int sent;
int rv; int rv;
if (chan_id == -1)
{
return 1;
}
s = trans_get_out_s(g_con_trans, 8192); s = trans_get_out_s(g_con_trans, 8192);
if (s == 0) if (s == 0)
{ {
@ -448,7 +452,10 @@ my_api_trans_data_in(struct trans* trans)
{ {
LOG(10, ("my_api_trans_data_in: got data %d", error)); LOG(10, ("my_api_trans_data_in: got data %d", error));
ad = (struct xrdp_api_data*)(trans->callback_data); ad = (struct xrdp_api_data*)(trans->callback_data);
send_channel_data(ad->chan_id, s->data, error); if (send_channel_data(ad->chan_id, s->data, error) != 0)
{
LOG(0, ("my_api_trans_data_in: send_channel_data failed"));
}
} }
else else
{ {
@ -540,8 +547,11 @@ my_api_trans_conn_in(struct trans* trans, struct trans* new_trans)
break; break;
} }
} }
LOG(10, ("my_api_trans_conn_in: found %d", found)); LOG(10, ("my_api_trans_conn_in: found %d", found));
if (!found)
{
ad->chan_id = -1;
}
new_trans->callback_data = ad; new_trans->callback_data = ad;

Loading…
Cancel
Save