proxy: Add handling of server caps when in rdpdr client running state
@@ -1229,6 +1229,11 @@ BOOL pf_channel_rdpdr_client_handle(pClientContext* pc, UINT16 channelId, const
if (!rdpdr_handle_server_announce_request(pc, rdpdr, s))
return FALSE;
break;
+ case PAKID_CORE_SERVER_CAPABILITY:
+ rdpdr->state = STATE_CLIENT_EXPECT_SERVER_CORE_CAPABILITY_REQUEST;
+ rdpdr->flags = 0;
+ return pf_channel_rdpdr_client_handle(pc, channelId, channel_name, xdata,
+ xsize, flags, totalSize);
case PAKID_CORE_DEVICE_REPLY:
break;
default:
@@ -1716,7 +1721,8 @@ static PfChannelResult pf_rdpdr_back_data(proxyData* pdata, const pServerChannel
WINPR_ASSERT(pdata);
WINPR_ASSERT(channel);
- if (!pf_channel_rdpdr_client_handle(pdata->pc, channel->channel_id, channel->channel_name, xdata, xsize, flags, totalSize))
+ if (!pf_channel_rdpdr_client_handle(pdata->pc, channel->channel_id, channel->channel_name,
+ xdata, xsize, flags, totalSize))
{
WLog_ERR(TAG, "error treating client back data");
return PF_CHANNEL_RESULT_ERROR;
@@ -1731,11 +1737,11 @@ static PfChannelResult pf_rdpdr_front_data(proxyData* pdata, const pServerChanne
WINPR_ASSERT(pdata);
WINPR_ASSERT(channel);
- if (!pf_channel_rdpdr_server_handle(pdata->ps, channel->channel_id, channel->channel_name, xdata, xsize, flags, totalSize))
+ if (!pf_channel_rdpdr_server_handle(pdata->ps, channel->channel_id, channel->channel_name,
+ xdata, xsize, flags, totalSize))
{
WLog_ERR(TAG, "error treating front data");
return PF_CHANNEL_RESULT_ERROR;
-
}
return PF_CHANNEL_RESULT_PASS;
}
@@ -1752,4 +1758,3 @@ BOOL pf_channel_setup_rdpdr(pServerContext* ps, pServerChannelContext* channel)
return TRUE;
}
-
