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; };
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; };
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; }
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; }
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; }