FreeRDP/libfreerdp
Pascal Nowack 43f0fbdc12 core/autodetect: Allow overriding connect-time autodetection handling
Currently, FreeRDP-based server implementations can do connect-time
autodetection.
However, without having any control over it.

In order to be able to override the default connect-time autodetection
handling, introduce three new states for the state machine of the
connection sequence and two new callbacks for the autodetect handling.

These are:
- CONNECTION_STATE_CONNECT_TIME_AUTO_DETECT_BEGIN
- CONNECTION_STATE_CONNECT_TIME_AUTO_DETECT_IN_PROGRESS
- CONNECTION_STATE_CONNECT_TIME_AUTO_DETECT_END

- OnConnectTimeAutoDetectBegin()
- OnConnectTimeAutoDetectProgress()

The END state is pretty simple: When the autodetection is finished and
the autodetect state is FREERDP_AUTODETECT_STATE_COMPLETE, transition
into the next state of the connection sequence.

The BEGIN state is entered, when capability-wise network autodetection
is available.
In this state, the OnConnectTimeAutoDetectBegin callback is called, the
server implementation may initialize any related handling here.
If the server implementation determines, that no further handling is
required, it can end the autodetection phase by returning
FREERDP_AUTODETECT_STATE_COMPLETE.
If not, and an autodetection request is sent, it returns
FREERDP_AUTODETECT_STATE_REQUEST.
The state machine of the connection sequence will then switch into the
IN_PROGRESS state.

In the IN_PROGRESS state, any incoming PDU is handled first, then the
OnConnectTimeAutoDetectProgress callback is called.
Like in the BEGIN state, the return value will determine, whether the
state machine of the connection sequence goes into the END state or goes
into (or rather stays) in the IN_PROGRESS state.
2023-04-13 09:58:52 +02:00
..
cache [cache,persistent] use aligned allocation 2023-03-28 11:34:52 +02:00
codec [codec,h264] add getter/setter for h264 options 2023-04-11 10:58:03 +02:00
common Implement support for RDS AAD 2023-03-10 16:38:07 +01:00
core core/autodetect: Allow overriding connect-time autodetection handling 2023-04-13 09:58:52 +02:00
crypto [core,server] warn if cert not RDP security compatible 2023-03-28 17:19:03 +02:00
emu [warnings] Fixed strict-prototypes warnings 2023-03-06 10:04:59 +01:00
gdi [includes] untangled circular includes 2023-03-15 08:22:23 +01:00
locale Fixed Wsign-compare warnings 2022-12-09 15:58:26 +01:00
primitives [primitives,tests] use winpr_alinged_calloc 2023-03-28 11:34:52 +02:00
utils [utils,passphrase] use CredUI on windows 2023-04-05 11:42:06 +02:00
CMakeLists.txt fix and improve cJSON detection 2023-03-11 08:20:10 +01:00
freerdp.pc.in Fixed freerdp pkg-config file 2022-03-03 11:26:48 +01:00
FreeRDPConfig.cmake.in cleanup cmake exports and pkg-config files 2016-01-12 17:32:33 +01:00