FreeRDP
rts_signature.c File Reference
#include <winpr/assert.h>
#include <winpr/stream.h>
#include <freerdp/log.h>
#include "rts_signature.h"

Macros

#define TAG   FREERDP_TAG("core.gateway.rts")
 

Functions

BOOL rts_match_pdu_signature (const RtsPduSignature *signature, wStream *src, const rpcconn_hdr_t *header)
 
BOOL rts_match_pdu_signature_ex (const RtsPduSignature *signature, wStream *src, const rpcconn_hdr_t *header, RtsPduSignature *found_signature, BOOL silent)
 
BOOL rts_extract_pdu_signature (RtsPduSignature *signature, wStream *src, const rpcconn_hdr_t *header)
 
BOOL rts_extract_pdu_signature_ex (RtsPduSignature *signature, wStream *src, const rpcconn_hdr_t *header, BOOL silent)
 
UINT32 rts_identify_pdu_signature (const RtsPduSignature *signature, const RTS_PDU_SIGNATURE_ENTRY **entry)
 
BOOL rts_print_pdu_signature (wLog *log, DWORD level, const RtsPduSignature *signature)
 

Variables

const RtsPduSignature RTS_PDU_CONN_A1_SIGNATURE
 
const RtsPduSignature RTS_PDU_CONN_A2_SIGNATURE
 
const RtsPduSignature RTS_PDU_CONN_A3_SIGNATURE
 
const RtsPduSignature RTS_PDU_CONN_B1_SIGNATURE
 
const RtsPduSignature RTS_PDU_CONN_B2_SIGNATURE
 
const RtsPduSignature RTS_PDU_CONN_B3_SIGNATURE
 
const RtsPduSignature RTS_PDU_CONN_C1_SIGNATURE
 
const RtsPduSignature RTS_PDU_CONN_C2_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R1_A1_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R1_A2_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R1_A3_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R1_A4_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R1_A5_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R1_A6_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R1_B1_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R1_B2_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R2_A1_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R2_A2_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R2_A3_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R2_A4_SIGNATURE
 
const RtsPduSignature RTS_PDU_IN_R2_A5_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A1_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A2_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A3_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A4_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A5_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A6_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A7_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A8_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A9_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A10_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R1_A11_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_A1_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_A2_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_A3_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_A4_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_A5_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_A6_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_A7_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_A8_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_B1_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_B2_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_B3_SIGNATURE
 
const RtsPduSignature RTS_PDU_OUT_R2_C1_SIGNATURE
 
const RtsPduSignature RTS_PDU_KEEP_ALIVE_SIGNATURE
 
const RtsPduSignature RTS_PDU_PING_TRAFFIC_SENT_NOTIFY_SIGNATURE
 
const RtsPduSignature RTS_PDU_ECHO_SIGNATURE = { RTS_FLAG_ECHO, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }
 
const RtsPduSignature RTS_PDU_PING_SIGNATURE = { RTS_FLAG_PING, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }
 
const RtsPduSignature RTS_PDU_FLOW_CONTROL_ACK_SIGNATURE
 
const RtsPduSignature RTS_PDU_FLOW_CONTROL_ACK_WITH_DESTINATION_SIGNATURE
 
static const RTS_PDU_SIGNATURE_ENTRY RTS_PDU_SIGNATURE_TABLE []
 

Macro Definition Documentation

◆ TAG

#define TAG   FREERDP_TAG("core.gateway.rts")

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

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.

Function Documentation

◆ rts_extract_pdu_signature()

BOOL rts_extract_pdu_signature ( RtsPduSignature signature,
wStream src,
const rpcconn_hdr_t header 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_extract_pdu_signature_ex()

BOOL rts_extract_pdu_signature_ex ( RtsPduSignature signature,
wStream src,
const rpcconn_hdr_t header,
BOOL  silent 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_identify_pdu_signature()

UINT32 rts_identify_pdu_signature ( const RtsPduSignature signature,
const RTS_PDU_SIGNATURE_ENTRY **  entry 
)
Here is the caller graph for this function:

◆ rts_match_pdu_signature()

BOOL rts_match_pdu_signature ( const RtsPduSignature signature,
wStream src,
const rpcconn_hdr_t header 
)
Here is the call graph for this function:

◆ rts_match_pdu_signature_ex()

BOOL rts_match_pdu_signature_ex ( const RtsPduSignature signature,
wStream src,
const rpcconn_hdr_t header,
RtsPduSignature found_signature,
BOOL  silent 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rts_print_pdu_signature()

BOOL rts_print_pdu_signature ( wLog *  log,
DWORD  level,
const RtsPduSignature signature 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ RTS_PDU_CONN_A1_SIGNATURE

const RtsPduSignature RTS_PDU_CONN_A1_SIGNATURE
Initial value:
= {
4,
}
#define RTS_CMD_VERSION
Definition: rts.h:48
#define RTS_CMD_COOKIE
Definition: rts.h:45
#define RTS_CMD_RECEIVE_WINDOW_SIZE
Definition: rts.h:42
#define RTS_FLAG_NONE
Definition: rts.h:33

◆ RTS_PDU_CONN_A2_SIGNATURE

const RtsPduSignature RTS_PDU_CONN_A2_SIGNATURE
Initial value:
5,
#define RTS_CMD_CHANNEL_LIFETIME
Definition: rts.h:46
#define RTS_FLAG_OUT_CHANNEL
Definition: rts.h:38

◆ RTS_PDU_CONN_A3_SIGNATURE

const RtsPduSignature RTS_PDU_CONN_A3_SIGNATURE
Initial value:
= {
RTS_FLAG_NONE, 1, { RTS_CMD_CONNECTION_TIMEOUT, 0, 0, 0, 0, 0, 0, 0 }
}
#define RTS_CMD_CONNECTION_TIMEOUT
Definition: rts.h:44

◆ RTS_PDU_CONN_B1_SIGNATURE

const RtsPduSignature RTS_PDU_CONN_B1_SIGNATURE
Initial value:
= {
6,
}
#define RTS_CMD_CLIENT_KEEPALIVE
Definition: rts.h:47
#define RTS_CMD_ASSOCIATION_GROUP_ID
Definition: rts.h:54

◆ RTS_PDU_CONN_B2_SIGNATURE

const RtsPduSignature RTS_PDU_CONN_B2_SIGNATURE
Initial value:

◆ RTS_PDU_CONN_B3_SIGNATURE

const RtsPduSignature RTS_PDU_CONN_B3_SIGNATURE
Initial value:

◆ RTS_PDU_CONN_C1_SIGNATURE

const RtsPduSignature RTS_PDU_CONN_C1_SIGNATURE

◆ RTS_PDU_CONN_C2_SIGNATURE

const RtsPduSignature RTS_PDU_CONN_C2_SIGNATURE

◆ RTS_PDU_ECHO_SIGNATURE

const RtsPduSignature RTS_PDU_ECHO_SIGNATURE = { RTS_FLAG_ECHO, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_FLOW_CONTROL_ACK_SIGNATURE

const RtsPduSignature RTS_PDU_FLOW_CONTROL_ACK_SIGNATURE
Initial value:
= {
RTS_FLAG_OTHER_CMD, 1, { RTS_CMD_FLOW_CONTROL_ACK, 0, 0, 0, 0, 0, 0, 0 }
}
#define RTS_CMD_FLOW_CONTROL_ACK
Definition: rts.h:43
#define RTS_FLAG_OTHER_CMD
Definition: rts.h:35

◆ RTS_PDU_FLOW_CONTROL_ACK_WITH_DESTINATION_SIGNATURE

const RtsPduSignature RTS_PDU_FLOW_CONTROL_ACK_WITH_DESTINATION_SIGNATURE
Initial value:
= {
}
#define RTS_CMD_DESTINATION
Definition: rts.h:55

◆ RTS_PDU_IN_R1_A1_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R1_A1_SIGNATURE
Initial value:
= {
4,
}
#define RTS_FLAG_RECYCLE_CHANNEL
Definition: rts.h:36

◆ RTS_PDU_IN_R1_A2_SIGNATURE

◆ RTS_PDU_IN_R1_A3_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R1_A3_SIGNATURE

◆ RTS_PDU_IN_R1_A4_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R1_A4_SIGNATURE

◆ RTS_PDU_IN_R1_A5_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R1_A5_SIGNATURE
Initial value:
1,
{ RTS_CMD_COOKIE, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_IN_R1_A6_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R1_A6_SIGNATURE
Initial value:
1,
{ RTS_CMD_COOKIE, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_IN_R1_B1_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R1_B1_SIGNATURE
Initial value:
1,
{ RTS_CMD_EMPTY, 0, 0, 0, 0, 0, 0, 0 } }
#define RTS_CMD_EMPTY
Definition: rts.h:49

◆ RTS_PDU_IN_R1_B2_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R1_B2_SIGNATURE
Initial value:
= {
RTS_FLAG_NONE, 1, { RTS_CMD_RECEIVE_WINDOW_SIZE, 0, 0, 0, 0, 0, 0, 0 }
}

◆ RTS_PDU_IN_R2_A1_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R2_A1_SIGNATURE

◆ RTS_PDU_IN_R2_A2_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R2_A2_SIGNATURE
Initial value:
1,
{ RTS_CMD_COOKIE, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_IN_R2_A3_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R2_A3_SIGNATURE
Initial value:
1,
{ RTS_CMD_DESTINATION, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_IN_R2_A4_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R2_A4_SIGNATURE
Initial value:
1,
{ RTS_CMD_DESTINATION, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_IN_R2_A5_SIGNATURE

const RtsPduSignature RTS_PDU_IN_R2_A5_SIGNATURE
Initial value:
1,
{ RTS_CMD_COOKIE, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_KEEP_ALIVE_SIGNATURE

const RtsPduSignature RTS_PDU_KEEP_ALIVE_SIGNATURE
Initial value:
= {
RTS_FLAG_OTHER_CMD, 1, { RTS_CMD_CLIENT_KEEPALIVE, 0, 0, 0, 0, 0, 0, 0 }
}

◆ RTS_PDU_OUT_R1_A10_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A10_SIGNATURE
Initial value:
1,
{ RTS_CMD_ANCE, 0, 0, 0, 0, 0, 0, 0 } }
#define RTS_CMD_ANCE
Definition: rts.h:52

◆ RTS_PDU_OUT_R1_A11_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A11_SIGNATURE
Initial value:
1,
{ RTS_CMD_ANCE, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_OUT_R1_A1_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A1_SIGNATURE
Initial value:
= {
RTS_FLAG_RECYCLE_CHANNEL, 1, { RTS_CMD_DESTINATION, 0, 0, 0, 0, 0, 0, 0 }
}

◆ RTS_PDU_OUT_R1_A2_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A2_SIGNATURE
Initial value:
= {
RTS_FLAG_RECYCLE_CHANNEL, 1, { RTS_CMD_DESTINATION, 0, 0, 0, 0, 0, 0, 0 }
}

◆ RTS_PDU_OUT_R1_A3_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A3_SIGNATURE

◆ RTS_PDU_OUT_R1_A4_SIGNATURE

◆ RTS_PDU_OUT_R1_A5_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A5_SIGNATURE

◆ RTS_PDU_OUT_R1_A6_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A6_SIGNATURE

◆ RTS_PDU_OUT_R1_A7_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A7_SIGNATURE
Initial value:
= {
}

◆ RTS_PDU_OUT_R1_A8_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A8_SIGNATURE
Initial value:
= {
}

◆ RTS_PDU_OUT_R1_A9_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R1_A9_SIGNATURE
Initial value:
1,
{ RTS_CMD_ANCE, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_OUT_R2_A1_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_A1_SIGNATURE
Initial value:
= {
RTS_FLAG_RECYCLE_CHANNEL, 1, { RTS_CMD_DESTINATION, 0, 0, 0, 0, 0, 0, 0 }
}

◆ RTS_PDU_OUT_R2_A2_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_A2_SIGNATURE
Initial value:
= {
RTS_FLAG_RECYCLE_CHANNEL, 1, { RTS_CMD_DESTINATION, 0, 0, 0, 0, 0, 0, 0 }
}

◆ RTS_PDU_OUT_R2_A3_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_A3_SIGNATURE

◆ RTS_PDU_OUT_R2_A4_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_A4_SIGNATURE
Initial value:
1,
{ RTS_CMD_COOKIE, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_OUT_R2_A5_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_A5_SIGNATURE
Initial value:
= {
RTS_FLAG_NONE, 2, { RTS_CMD_DESTINATION, RTS_CMD_ANCE, 0, 0, 0, 0, 0, 0 }
}

◆ RTS_PDU_OUT_R2_A6_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_A6_SIGNATURE
Initial value:
= {
RTS_FLAG_NONE, 2, { RTS_CMD_DESTINATION, RTS_CMD_ANCE, 0, 0, 0, 0, 0, 0 }
}

◆ RTS_PDU_OUT_R2_A7_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_A7_SIGNATURE
Initial value:

◆ RTS_PDU_OUT_R2_A8_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_A8_SIGNATURE
Initial value:
= {
}

◆ RTS_PDU_OUT_R2_B1_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_B1_SIGNATURE
Initial value:
1,
{ RTS_CMD_ANCE, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_OUT_R2_B2_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_B2_SIGNATURE
Initial value:
= {
RTS_FLAG_NONE, 1, { RTS_CMD_NEGATIVE_ANCE, 0, 0, 0, 0, 0, 0, 0 }
}
#define RTS_CMD_NEGATIVE_ANCE
Definition: rts.h:51

◆ RTS_PDU_OUT_R2_B3_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_B3_SIGNATURE
Initial value:
1,
{ RTS_CMD_ANCE, 0, 0, 0, 0, 0, 0, 0 } }
#define RTS_FLAG_EOF
Definition: rts.h:39

◆ RTS_PDU_OUT_R2_C1_SIGNATURE

const RtsPduSignature RTS_PDU_OUT_R2_C1_SIGNATURE
Initial value:
1,
{ 0, 0, 0, 0, 0, 0, 0, 0 } }
#define RTS_FLAG_PING
Definition: rts.h:34

◆ RTS_PDU_PING_SIGNATURE

const RtsPduSignature RTS_PDU_PING_SIGNATURE = { RTS_FLAG_PING, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }

◆ RTS_PDU_PING_TRAFFIC_SENT_NOTIFY_SIGNATURE

const RtsPduSignature RTS_PDU_PING_TRAFFIC_SENT_NOTIFY_SIGNATURE
Initial value:
= {
}
#define RTS_CMD_PING_TRAFFIC_SENT_NOTIFY
Definition: rts.h:56

◆ RTS_PDU_SIGNATURE_TABLE

const RTS_PDU_SIGNATURE_ENTRY RTS_PDU_SIGNATURE_TABLE[]
static