FreeRDP
rts.h File Reference
#include <freerdp/config.h>
#include <winpr/stream.h>
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <freerdp/log.h>
#include "rpc.h"
This graph shows which files directly or indirectly include this file:

Macros

#define RTS_FLAG_NONE   0x0000
 
#define RTS_FLAG_PING   0x0001
 
#define RTS_FLAG_OTHER_CMD   0x0002
 
#define RTS_FLAG_RECYCLE_CHANNEL   0x0004
 
#define RTS_FLAG_IN_CHANNEL   0x0008
 
#define RTS_FLAG_OUT_CHANNEL   0x0010
 
#define RTS_FLAG_EOF   0x0020
 
#define RTS_FLAG_ECHO   0x0040
 
#define RTS_CMD_RECEIVE_WINDOW_SIZE   0x00000000
 
#define RTS_CMD_FLOW_CONTROL_ACK   0x00000001
 
#define RTS_CMD_CONNECTION_TIMEOUT   0x00000002
 
#define RTS_CMD_COOKIE   0x00000003
 
#define RTS_CMD_CHANNEL_LIFETIME   0x00000004
 
#define RTS_CMD_CLIENT_KEEPALIVE   0x00000005
 
#define RTS_CMD_VERSION   0x00000006
 
#define RTS_CMD_EMPTY   0x00000007
 
#define RTS_CMD_PADDING   0x00000008
 
#define RTS_CMD_NEGATIVE_ANCE   0x00000009
 
#define RTS_CMD_ANCE   0x0000000A
 
#define RTS_CMD_CLIENT_ADDRESS   0x0000000B
 
#define RTS_CMD_ASSOCIATION_GROUP_ID   0x0000000C
 
#define RTS_CMD_DESTINATION   0x0000000D
 
#define RTS_CMD_PING_TRAFFIC_SENT_NOTIFY   0x0000000E
 
#define RTS_CMD_LAST_ID   0x0000000F
 
#define RTS_CMD_RECEIVE_WINDOW_SIZE_LENGTH   0x00000004
 
#define RTS_CMD_FLOW_CONTROL_ACK_LENGTH   0x00000018
 
#define RTS_CMD_CONNECTION_TIMEOUT_LENGTH   0x00000004
 
#define RTS_CMD_COOKIE_LENGTH   0x00000010
 
#define RTS_CMD_CHANNEL_LIFETIME_LENGTH   0x00000004
 
#define RTS_CMD_CLIENT_KEEPALIVE_LENGTH   0x00000004
 
#define RTS_CMD_VERSION_LENGTH   0x00000004
 
#define RTS_CMD_EMPTY_LENGTH   0x00000000
 
#define RTS_CMD_PADDING_LENGTH   0x00000000 /* variable-size */
 
#define RTS_CMD_NEGATIVE_ANCE_LENGTH   0x00000000
 
#define RTS_CMD_ANCE_LENGTH   0x00000000
 
#define RTS_CMD_CLIENT_ADDRESS_LENGTH   0x00000000 /* variable-size */
 
#define RTS_CMD_ASSOCIATION_GROUP_ID_LENGTH   0x00000010
 
#define RTS_CMD_DESTINATION_LENGTH   0x00000004
 
#define RTS_CMD_PING_TRAFFIC_SENT_NOTIFY_LENGTH   0x00000004
 
#define FDClient   0x00000000
 
#define FDInProxy   0x00000001
 
#define FDServer   0x00000002
 
#define FDOutProxy   0x00000003
 
#define Stream_ConditionalCheckAndLogRequiredLength(tag, s, size, silent)    rts_conditional_check_and_log(tag, s, size, silent, __func__, __FILE__, __LINE__)
 
#define Stream_ConditionalSafeSeek(s, size, silent)    rts_conditional_safe_seek(s, size, silent, __func__, __FILE__, __LINE__)
 

Functions

FREERDP_LOCAL void rts_generate_cookie (BYTE *cookie)
 
FREERDP_LOCAL BOOL rts_write_pdu_auth3 (wStream *s, const rpcconn_rpc_auth_3_hdr_t *auth)
 
FREERDP_LOCAL BOOL rts_write_pdu_bind (wStream *s, const rpcconn_bind_hdr_t *bind)
 
FREERDP_LOCAL BOOL rts_read_pdu_header (wStream *s, rpcconn_hdr_t *header)
 
FREERDP_LOCAL BOOL rts_read_pdu_header_ex (wStream *s, rpcconn_hdr_t *header, BOOL silent)
 
FREERDP_LOCAL void rts_free_pdu_header (rpcconn_hdr_t *header, BOOL allocated)
 
FREERDP_LOCAL BOOL rts_read_common_pdu_header (wStream *s, rpcconn_common_hdr_t *header, BOOL ignoreErrors)
 
FREERDP_LOCAL BOOL rts_command_length (UINT32 CommandType, wStream *s, size_t *length, BOOL silent)
 
FREERDP_LOCAL BOOL rts_send_CONN_A1_pdu (rdpRpc *rpc)
 
FREERDP_LOCAL BOOL rts_recv_CONN_A3_pdu (rdpRpc *rpc, wStream *buffer)
 
FREERDP_LOCAL BOOL rts_send_CONN_B1_pdu (rdpRpc *rpc)
 
FREERDP_LOCAL BOOL rts_recv_CONN_C2_pdu (rdpRpc *rpc, wStream *buffer)
 
FREERDP_LOCAL BOOL rts_send_OUT_R1_A3_pdu (rdpRpc *rpc)
 
FREERDP_LOCAL BOOL rts_send_flow_control_ack_pdu (rdpRpc *rpc)
 
FREERDP_LOCAL BOOL rts_recv_out_of_sequence_pdu (rdpRpc *rpc, wStream *buffer, const rpcconn_hdr_t *header)
 
FREERDP_LOCAL BOOL rts_recv_ping_pdu (rdpRpc *rpc, wStream *s)
 
FREERDP_LOCAL BOOL rts_conditional_check_and_log (const char *tag, wStream *s, size_t size, BOOL silent, const char *fkt, const char *file, size_t line)
 
FREERDP_LOCAL BOOL rts_conditional_safe_seek (wStream *s, size_t size, BOOL silent, const char *fkt, const char *file, size_t line)
 

Macro Definition Documentation

◆ FDClient

#define FDClient   0x00000000

◆ FDInProxy

#define FDInProxy   0x00000001

◆ FDOutProxy

#define FDOutProxy   0x00000003

◆ FDServer

#define FDServer   0x00000002

◆ RTS_CMD_ANCE

#define RTS_CMD_ANCE   0x0000000A

◆ RTS_CMD_ANCE_LENGTH

#define RTS_CMD_ANCE_LENGTH   0x00000000

◆ RTS_CMD_ASSOCIATION_GROUP_ID

#define RTS_CMD_ASSOCIATION_GROUP_ID   0x0000000C

◆ RTS_CMD_ASSOCIATION_GROUP_ID_LENGTH

#define RTS_CMD_ASSOCIATION_GROUP_ID_LENGTH   0x00000010

◆ RTS_CMD_CHANNEL_LIFETIME

#define RTS_CMD_CHANNEL_LIFETIME   0x00000004

◆ RTS_CMD_CHANNEL_LIFETIME_LENGTH

#define RTS_CMD_CHANNEL_LIFETIME_LENGTH   0x00000004

◆ RTS_CMD_CLIENT_ADDRESS

#define RTS_CMD_CLIENT_ADDRESS   0x0000000B

◆ RTS_CMD_CLIENT_ADDRESS_LENGTH

#define RTS_CMD_CLIENT_ADDRESS_LENGTH   0x00000000 /* variable-size */

◆ RTS_CMD_CLIENT_KEEPALIVE

#define RTS_CMD_CLIENT_KEEPALIVE   0x00000005

◆ RTS_CMD_CLIENT_KEEPALIVE_LENGTH

#define RTS_CMD_CLIENT_KEEPALIVE_LENGTH   0x00000004

◆ RTS_CMD_CONNECTION_TIMEOUT

#define RTS_CMD_CONNECTION_TIMEOUT   0x00000002

◆ RTS_CMD_CONNECTION_TIMEOUT_LENGTH

#define RTS_CMD_CONNECTION_TIMEOUT_LENGTH   0x00000004

◆ RTS_CMD_COOKIE

#define RTS_CMD_COOKIE   0x00000003

◆ RTS_CMD_COOKIE_LENGTH

#define RTS_CMD_COOKIE_LENGTH   0x00000010

◆ RTS_CMD_DESTINATION

#define RTS_CMD_DESTINATION   0x0000000D

◆ RTS_CMD_DESTINATION_LENGTH

#define RTS_CMD_DESTINATION_LENGTH   0x00000004

◆ RTS_CMD_EMPTY

#define RTS_CMD_EMPTY   0x00000007

◆ RTS_CMD_EMPTY_LENGTH

#define RTS_CMD_EMPTY_LENGTH   0x00000000

◆ RTS_CMD_FLOW_CONTROL_ACK

#define RTS_CMD_FLOW_CONTROL_ACK   0x00000001

◆ RTS_CMD_FLOW_CONTROL_ACK_LENGTH

#define RTS_CMD_FLOW_CONTROL_ACK_LENGTH   0x00000018

◆ RTS_CMD_LAST_ID

#define RTS_CMD_LAST_ID   0x0000000F

◆ RTS_CMD_NEGATIVE_ANCE

#define RTS_CMD_NEGATIVE_ANCE   0x00000009

◆ RTS_CMD_NEGATIVE_ANCE_LENGTH

#define RTS_CMD_NEGATIVE_ANCE_LENGTH   0x00000000

◆ RTS_CMD_PADDING

#define RTS_CMD_PADDING   0x00000008

◆ RTS_CMD_PADDING_LENGTH

#define RTS_CMD_PADDING_LENGTH   0x00000000 /* variable-size */

◆ RTS_CMD_PING_TRAFFIC_SENT_NOTIFY

#define RTS_CMD_PING_TRAFFIC_SENT_NOTIFY   0x0000000E

◆ RTS_CMD_PING_TRAFFIC_SENT_NOTIFY_LENGTH

#define RTS_CMD_PING_TRAFFIC_SENT_NOTIFY_LENGTH   0x00000004

◆ RTS_CMD_RECEIVE_WINDOW_SIZE

#define RTS_CMD_RECEIVE_WINDOW_SIZE   0x00000000

◆ RTS_CMD_RECEIVE_WINDOW_SIZE_LENGTH

#define RTS_CMD_RECEIVE_WINDOW_SIZE_LENGTH   0x00000004

◆ RTS_CMD_VERSION

#define RTS_CMD_VERSION   0x00000006

◆ RTS_CMD_VERSION_LENGTH

#define RTS_CMD_VERSION_LENGTH   0x00000004

◆ RTS_FLAG_ECHO

#define RTS_FLAG_ECHO   0x0040

◆ RTS_FLAG_EOF

#define RTS_FLAG_EOF   0x0020

◆ RTS_FLAG_IN_CHANNEL

#define RTS_FLAG_IN_CHANNEL   0x0008

◆ RTS_FLAG_NONE

#define RTS_FLAG_NONE   0x0000

FreeRDP: A Remote Desktop Protocol Implementation Request To Send (RTS) PDUs

Copyright 2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

◆ RTS_FLAG_OTHER_CMD

#define RTS_FLAG_OTHER_CMD   0x0002

◆ RTS_FLAG_OUT_CHANNEL

#define RTS_FLAG_OUT_CHANNEL   0x0010

◆ RTS_FLAG_PING

#define RTS_FLAG_PING   0x0001

◆ RTS_FLAG_RECYCLE_CHANNEL

#define RTS_FLAG_RECYCLE_CHANNEL   0x0004

◆ Stream_ConditionalCheckAndLogRequiredLength

#define Stream_ConditionalCheckAndLogRequiredLength (   tag,
  s,
  size,
  silent 
)     rts_conditional_check_and_log(tag, s, size, silent, __func__, __FILE__, __LINE__)

◆ Stream_ConditionalSafeSeek

#define Stream_ConditionalSafeSeek (   s,
  size,
  silent 
)     rts_conditional_safe_seek(s, size, silent, __func__, __FILE__, __LINE__)

Function Documentation

◆ rts_command_length()

FREERDP_LOCAL BOOL rts_command_length ( UINT32  CommandType,
wStream s,
size_t *  length,
BOOL  silent 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_conditional_check_and_log()

FREERDP_LOCAL BOOL rts_conditional_check_and_log ( const char *  tag,
wStream s,
size_t  size,
BOOL  silent,
const char *  fkt,
const char *  file,
size_t  line 
)
Here is the call graph for this function:

◆ rts_conditional_safe_seek()

FREERDP_LOCAL BOOL rts_conditional_safe_seek ( wStream s,
size_t  size,
BOOL  silent,
const char *  fkt,
const char *  file,
size_t  line 
)
Here is the call graph for this function:

◆ rts_free_pdu_header()

FREERDP_LOCAL void rts_free_pdu_header ( rpcconn_hdr_t header,
BOOL  allocated 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_generate_cookie()

FREERDP_LOCAL void rts_generate_cookie ( BYTE cookie)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_read_common_pdu_header()

FREERDP_LOCAL BOOL rts_read_common_pdu_header ( wStream s,
rpcconn_common_hdr_t header,
BOOL  ignoreErrors 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_read_pdu_header()

FREERDP_LOCAL BOOL rts_read_pdu_header ( wStream s,
rpcconn_hdr_t header 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_read_pdu_header_ex()

FREERDP_LOCAL BOOL rts_read_pdu_header_ex ( wStream s,
rpcconn_hdr_t header,
BOOL  silent 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_recv_CONN_A3_pdu()

FREERDP_LOCAL BOOL rts_recv_CONN_A3_pdu ( rdpRpc *  rpc,
wStream buffer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_recv_CONN_C2_pdu()

FREERDP_LOCAL BOOL rts_recv_CONN_C2_pdu ( rdpRpc *  rpc,
wStream buffer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_recv_out_of_sequence_pdu()

FREERDP_LOCAL BOOL rts_recv_out_of_sequence_pdu ( rdpRpc *  rpc,
wStream buffer,
const rpcconn_hdr_t header 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_recv_ping_pdu()

FREERDP_LOCAL BOOL rts_recv_ping_pdu ( rdpRpc *  rpc,
wStream s 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_send_CONN_A1_pdu()

FREERDP_LOCAL BOOL rts_send_CONN_A1_pdu ( rdpRpc *  rpc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_send_CONN_B1_pdu()

FREERDP_LOCAL BOOL rts_send_CONN_B1_pdu ( rdpRpc *  rpc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_send_flow_control_ack_pdu()

FREERDP_LOCAL BOOL rts_send_flow_control_ack_pdu ( rdpRpc *  rpc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_send_OUT_R1_A3_pdu()

FREERDP_LOCAL BOOL rts_send_OUT_R1_A3_pdu ( rdpRpc *  rpc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_write_pdu_auth3()

FREERDP_LOCAL BOOL rts_write_pdu_auth3 ( wStream s,
const rpcconn_rpc_auth_3_hdr_t auth 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_write_pdu_bind()

FREERDP_LOCAL BOOL rts_write_pdu_bind ( wStream s,
const rpcconn_bind_hdr_t bind 
)
Here is the call graph for this function:
Here is the caller graph for this function: