/* returns error */ static int APP_CC process_message_channel_data(struct stream* s) { int chan_id; int chan_flags; int rv; int length; int total_length; in_uint16_le(s, chan_id); in_uint16_le(s, chan_flags); in_uint16_le(s, length); in_uint32_le(s, total_length); log_message(&log_conf, LOG_LEVEL_DEBUG, "chansrv[process_message_channel_data]: " "chan_id %d chan_flags %d", chan_id, chan_flags); rv = send_channel_data_response_message(); if (rv == 0) { /* if (chan_id == g_cliprdr_chan_id) { rv = clipboard_data_in(s, chan_id, chan_flags, length, total_length); } else if (chan_id == g_rdpsnd_chan_id) { rv = sound_data_in(s, chan_id, chan_flags, length, total_length); } else if (chan_id == g_rdpdr_chan_id) { rv = dev_redir_data_in(s, chan_id, chan_flags, length, total_length); }*/ /* else if (chan_id == g_seamrdp_chan_id) { rv = seamrdp_data_in(s, chan_id, chan_flags, length, total_length); } */ // else // { rv = user_channel_data_in(s, chan_id, chan_flags, length, total_length); // } } return rv; }
/* returns error */ static int APP_CC process_message_channel_data(struct stream *s) { int chan_id = 0; int chan_flags = 0; int rv = 0; int length = 0; int total_length = 0; struct stream *ls; in_uint16_le(s, chan_id); in_uint16_le(s, chan_flags); in_uint16_le(s, length); in_uint32_le(s, total_length); LOGM((LOG_LEVEL_DEBUG, "process_message_channel_data: chan_id %d " "chan_flags %d", chan_id, chan_flags)); LOG(10, ("process_message_channel_data")); rv = send_channel_data_response_message(); if (rv == 0) { if (chan_id == g_cliprdr_chan_id) { rv = clipboard_data_in(s, chan_id, chan_flags, length, total_length); } else if (chan_id == g_rdpsnd_chan_id) { rv = sound_data_in(s, chan_id, chan_flags, length, total_length); } else if (chan_id == g_rdpdr_chan_id) { rv = dev_redir_data_in(s, chan_id, chan_flags, length, total_length); } else if (chan_id == g_rail_chan_id) { rv = rail_data_in(s, chan_id, chan_flags, length, total_length); } else if (chan_id == g_drdynvc_chan_id) { rv = drdynvc_data_in(s, chan_id, chan_flags, length, total_length); } else if (chan_id == ((struct xrdp_api_data *) (g_api_con_trans->callback_data))->chan_id) { LOG(10, ("process_message_channel_data length %d total_length %d " "chan_flags 0x%8.8x", length, total_length, chan_flags)); ls = g_api_con_trans->out_s; if (chan_flags & 1) /* first */ { init_stream(ls, total_length); } out_uint8a(ls, s->p, length); if (chan_flags & 2) /* last */ { s_mark_end(ls); trans_force_write(g_api_con_trans); } } } return rv; }