int CallInLogOffUserSession::encodeResponse()
	{
		wStream* s;

		WLog_Print(logger_CallInLogOffUserSession, WLOG_DEBUG,
			"response: connectionId=%lu", mConnectionId);

		m_Response.ConnectionId = mConnectionId;

		s = freerds_rpc_msg_pack(m_ResponseId, &m_Response, NULL);

		mEncodedResponse.assign((const char*) Stream_Buffer(s), Stream_Length(s));

		Stream_Free(s, TRUE);

		return 0;
	};
Example #2
0
	int CallInPing::encodeResponse()
	{
		wStream* s;

		WLog_Print(logger_CallInPing, WLOG_DEBUG,
			"response: heartbeatId=%lu",
			m_Request.HeartbeatId);

		m_Response.HeartbeatId = m_Request.HeartbeatId;

		s = freerds_rpc_msg_pack(m_ResponseId, &m_Response, NULL);

		mEncodedResponse.assign((const char*) Stream_Buffer(s), Stream_Length(s));

		Stream_Free(s, TRUE);

		return 0;
	};
	int CallInAuthenticateUser::encodeResponse()
	{
		wStream* s;

		WLog_Print(logger_CallInAuthenticateUser, WLOG_DEBUG,
			"response: status=%d",
			mAuthStatus);

		m_Response.ServiceEndpoint = NULL;
		m_Response.status = (mAuthStatus == 0) ? 0 : 1;

		s = freerds_rpc_msg_pack(m_ResponseId, &m_Response, NULL);

		mEncodedResponse.assign((const char*) Stream_Buffer(s), Stream_Length(s));

		Stream_Free(s, TRUE);

		return 0;
	};
Example #4
0
int freerds_icp_ChannelEndpointOpenResponse(FDSAPI_CHANNEL_ENDPOINT_OPEN_RESPONSE* pResponse)
{
	int status;
	wStream* s;
	FDSAPI_MSG_PACKET msg;
	UINT32 type = FDSAPI_CHANNEL_ENDPOINT_OPEN_REQUEST_ID;

	pResponse->status = 0;
	pResponse->msgType = FDSAPI_RESPONSE_ID(type);

	CopyMemory(&msg, pResponse, sizeof(FDSAPI_MSG_HEADER));

	s = freerds_rpc_msg_pack(FDSAPI_RESPONSE_ID(type), pResponse, NULL);
	msg.buffer = Stream_Buffer(s);
	msg.length = Stream_Length(s);

	status = pbrpc_process_message_out(g_Server, &msg);

	Stream_Free(s, TRUE);

	return status;
}
Example #5
0
int freerds_icp_Heartbeat(FDSAPI_MSG_PACKET* msg, pbRPCPayload** pbresponse)
{
	pbRPCPayload* payload;
	FDSAPI_HEARTBEAT_REQUEST request;
	FDSAPI_HEARTBEAT_RESPONSE response;
	UINT32 type = FDSAPI_HEARTBEAT_REQUEST_ID;

	freerds_rpc_msg_unpack(FDSAPI_REQUEST_ID(type), &request, msg->buffer, msg->length);
	CopyMemory(&request, msg, sizeof(FDSAPI_MSG_HEADER));

	response.msgType = FDSAPI_RESPONSE_ID(type);
	response.callId = request.callId;
	response.HeartbeatId = request.HeartbeatId;

	payload = pbrpc_payload_new();
	payload->s = freerds_rpc_msg_pack(FDSAPI_RESPONSE_ID(type), &response, NULL);
	payload->buffer = Stream_Buffer(payload->s);
	payload->length = Stream_Length(payload->s);
	*pbresponse = payload;

	return PBRPC_SUCCESS;
}
Example #6
0
int freerds_icp_LogonUser(FDSAPI_LOGON_USER_REQUEST* pRequest, FDSAPI_LOGON_USER_RESPONSE* pResponse)
{
	int status;
	pbRPCPayload pbrequest;
	pbRPCPayload* pbresponse = NULL;
	UINT32 type = FDSAPI_LOGON_USER_REQUEST_ID;

	pbrequest.s = freerds_rpc_msg_pack(type, pRequest, NULL);
	pbrequest.buffer = Stream_Buffer(pbrequest.s);
	pbrequest.length = Stream_Length(pbrequest.s);

	status = pbrpc_call_method(g_Server, FDSAPI_REQUEST_ID(type), &pbrequest, &pbresponse);

	Stream_Free(pbrequest.s, TRUE);

	if (status != 0)
		return status;

	freerds_rpc_msg_unpack(FDSAPI_RESPONSE_ID(type), pResponse, pbresponse->buffer, pbresponse->length);

	pbrpc_free_payload(pbresponse);

	return PBRPC_SUCCESS;
}