@@ -236,6 +236,7 @@ async fn process_cleanpath(
236
236
// - Without PCB: Gateway handles (1) X224 connection request, (2) X224 connection response,
237
237
// then leaves TLS handshake and CredSSP to IronRDP client
238
238
let ( server_stream, x224_rsp) = if let Some ( pcb_string) = cleanpath_pdu. preconnection_blob {
239
+ debug ! ( "Sending preconnection blob to server" ) ;
239
240
let pcb = ironrdp_pdu:: pcb:: PreconnectionBlob {
240
241
version : ironrdp_pdu:: pcb:: PcbVersion :: V2 ,
241
242
id : 0 ,
@@ -248,7 +249,7 @@ async fn process_cleanpath(
248
249
249
250
server_stream. write_all ( & encoded) . await ?;
250
251
251
- let server_stream = crate :: tls:: connect ( selected_target. host ( ) , server_stream)
252
+ let server_stream = crate :: tls:: connect ( selected_target. host ( ) . to_owned ( ) , server_stream)
252
253
. await
253
254
. map_err ( |source| CleanPathError :: TlsHandshake {
254
255
source,
@@ -257,8 +258,6 @@ async fn process_cleanpath(
257
258
258
259
( server_stream, None )
259
260
} else {
260
- debug ! ( "Preconnection blob sent" ) ;
261
-
262
261
// Send X224 connection request
263
262
let x224_req = cleanpath_pdu
264
263
. x224_connection_pdu
@@ -267,6 +266,12 @@ async fn process_cleanpath(
267
266
268
267
server_stream. write_all ( x224_req. as_bytes ( ) ) . await ?;
269
268
269
+ let x224_rsp = read_x224_response ( & mut server_stream)
270
+ . await
271
+ . with_context ( || format ! ( "read X224 response from {selected_target}" ) )
272
+ . map_err ( CleanPathError :: BadRequest ) ?;
273
+ trace ! ( "Receiving X224 response" ) ;
274
+
270
275
let server_stream = crate :: tls:: connect ( selected_target. host ( ) . to_owned ( ) , server_stream)
271
276
. await
272
277
. map_err ( |source| CleanPathError :: TlsHandshake {
@@ -277,24 +282,8 @@ async fn process_cleanpath(
277
282
278
283
// Receive server X224 connection response
279
284
280
- trace ! ( "Receiving X224 response" ) ;
281
-
282
- let x224_rsp = read_x224_response ( & mut server_stream)
283
- . await
284
- . with_context ( || format ! ( "read X224 response from {selected_target}" ) )
285
- . map_err ( CleanPathError :: BadRequest ) ?;
286
-
287
285
trace ! ( "Establishing TLS connection with server" ) ;
288
286
289
- // Establish TLS connection with server
290
-
291
- let server_stream = crate :: tls:: connect ( selected_target. host ( ) , server_stream)
292
- . await
293
- . map_err ( |source| CleanPathError :: TlsHandshake {
294
- source,
295
- target_server : selected_target. to_owned ( ) ,
296
- } ) ?;
297
-
298
287
( server_stream, Some ( x224_rsp) )
299
288
} ;
300
289
0 commit comments