FreeRDP
tpdu.h File Reference
#include <winpr/stream.h>
#include <freerdp/api.h>
This graph shows which files directly or indirectly include this file:

Macros

#define TPDU_DATA_HEADER_LENGTH   3
 
#define TPDU_CONNECTION_REQUEST_HEADER_LENGTH   7
 
#define TPDU_CONNECTION_CONFIRM_HEADER_LENGTH   7
 
#define TPDU_DISCONNECT_REQUEST_HEADER_LENGTH   7
 
#define TPDU_DATA_LENGTH   (TPKT_HEADER_LENGTH + TPDU_DATA_HEADER_LENGTH)
 
#define TPDU_CONNECTION_REQUEST_LENGTH   (TPKT_HEADER_LENGTH + TPDU_CONNECTION_REQUEST_HEADER_LENGTH)
 
#define TPDU_CONNECTION_CONFIRM_LENGTH   (TPKT_HEADER_LENGTH + TPDU_CONNECTION_CONFIRM_HEADER_LENGTH)
 
#define TPDU_DISCONNECT_REQUEST_LENGTH   (TPKT_HEADER_LENGTH + TPDU_DISCONNECT_REQUEST_HEADER_LENGTH)
 

Enumerations

enum  X224_TPDU_TYPE {
  X224_TPDU_CONNECTION_REQUEST = 0xE0, X224_TPDU_CONNECTION_CONFIRM = 0xD0, X224_TPDU_DISCONNECT_REQUEST = 0x80, X224_TPDU_DATA = 0xF0,
  X224_TPDU_ERROR = 0x70
}
 

Functions

FREERDP_LOCAL BOOL tpdu_read_header (wStream *s, BYTE *code, BYTE *li)
 
FREERDP_LOCAL void tpdu_write_header (wStream *s, UINT16 length, BYTE code)
 
FREERDP_LOCAL BOOL tpdu_read_connection_request (wStream *s, BYTE *li)
 
FREERDP_LOCAL void tpdu_write_connection_request (wStream *s, UINT16 length)
 
FREERDP_LOCAL BOOL tpdu_read_connection_confirm (wStream *s, BYTE *li)
 
FREERDP_LOCAL void tpdu_write_connection_confirm (wStream *s, UINT16 length)
 
FREERDP_LOCAL void tpdu_write_disconnect_request (wStream *s, UINT16 length)
 
FREERDP_LOCAL BOOL tpdu_read_data (wStream *s, UINT16 *li)
 
FREERDP_LOCAL void tpdu_write_data (wStream *s)
 

Macro Definition Documentation

#define TPDU_CONNECTION_CONFIRM_HEADER_LENGTH   7
#define TPDU_CONNECTION_CONFIRM_LENGTH   (TPKT_HEADER_LENGTH + TPDU_CONNECTION_CONFIRM_HEADER_LENGTH)
#define TPDU_CONNECTION_REQUEST_HEADER_LENGTH   7
#define TPDU_CONNECTION_REQUEST_LENGTH   (TPKT_HEADER_LENGTH + TPDU_CONNECTION_REQUEST_HEADER_LENGTH)
#define TPDU_DATA_HEADER_LENGTH   3
#define TPDU_DATA_LENGTH   (TPKT_HEADER_LENGTH + TPDU_DATA_HEADER_LENGTH)
#define TPDU_DISCONNECT_REQUEST_HEADER_LENGTH   7
#define TPDU_DISCONNECT_REQUEST_LENGTH   (TPKT_HEADER_LENGTH + TPDU_DISCONNECT_REQUEST_HEADER_LENGTH)

Enumeration Type Documentation

FreeRDP: A Remote Desktop Protocol Implementation X.224 Transport Protocol Data Units (TPDUs)

Copyright 2011 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.

Enumerator
X224_TPDU_CONNECTION_REQUEST 
X224_TPDU_CONNECTION_CONFIRM 
X224_TPDU_DISCONNECT_REQUEST 
X224_TPDU_DATA 
X224_TPDU_ERROR 

Function Documentation

FREERDP_LOCAL BOOL tpdu_read_connection_confirm ( wStream *  s,
BYTE li 
)

Read Connection Confirm TPDU.

Parameters
sstream
Returns
length indicator (LI)

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL tpdu_read_connection_request ( wStream *  s,
BYTE li 
)

Read Connection Request TPDU

Parameters
sstream
Returns
length indicator (LI)

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL tpdu_read_data ( wStream *  s,
UINT16 LI 
)

Read Data TPDU.

Parameters
sstream

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL tpdu_read_header ( wStream *  s,
BYTE code,
BYTE li 
)

TPDUs are defined in:

http://www.itu.int/rec/T-REC-X.224-199511-I/ X.224: Information technology - Open Systems Interconnection - Protocol for providing the connection-mode transport service

RDP uses only TPDUs of class 0, the "simple class" defined in section 8 of X.224

  TPDU Header

____________________ byte | | | LI | 1 |____________________| | | | Code | 2 |____________________| | | | | 3 |_______DST-REF______| | | | | 4 |____________________| | | | | 5 |_______SRC-REF______| | | | | 6 |____________________| | | | Class | 7 |____________________| | ... | Read TPDU header.

Parameters
sstream
codevariable pointer to receive TPDU code
Returns
TPDU length indicator (LI)

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL void tpdu_write_connection_confirm ( wStream *  s,
UINT16  length 
)

Write Connection Confirm TPDU.

Parameters
sstream
lengthTPDU length

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL void tpdu_write_connection_request ( wStream *  s,
UINT16  length 
)

Write Connection Request TPDU.

Parameters
sstream
lengthTPDU length

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL void tpdu_write_data ( wStream *  s)

Write Data TPDU.

Parameters
sstream

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL void tpdu_write_disconnect_request ( wStream *  s,
UINT16  length 
)

Write Disconnect Request TPDU.

Parameters
sstream
lengthTPDU length

Here is the call graph for this function:

FREERDP_LOCAL void tpdu_write_header ( wStream *  s,
UINT16  length,
BYTE  code 
)

Write TDPU header.

Parameters
sstream
lengthlength
codeTPDU code

Here is the call graph for this function:

Here is the caller graph for this function: