@@ -258,6 +258,7 @@ async fn process_cleanpath(
258
258
// - Without PCB: Gateway handles (1) X224 connection request, (2) X224 connection response,
259
259
// then leaves TLS handshake and CredSSP to IronRDP client
260
260
let ( server_stream, x224_rsp) = if let Some ( pcb_string) = cleanpath_pdu. preconnection_blob {
261
+ debug ! ( "Sending preconnection blob to server" ) ;
261
262
let pcb = ironrdp_pdu:: pcb:: PreconnectionBlob {
262
263
version : ironrdp_pdu:: pcb:: PcbVersion :: V2 ,
263
264
id : 0 ,
@@ -270,7 +271,7 @@ async fn process_cleanpath(
270
271
271
272
server_stream. write_all ( & encoded) . await ?;
272
273
273
- let server_stream = crate :: tls:: connect ( selected_target. host ( ) , server_stream)
274
+ let server_stream = crate :: tls:: connect ( selected_target. host ( ) . to_owned ( ) , server_stream)
274
275
. await
275
276
. map_err ( |source| CleanPathError :: TlsHandshake {
276
277
source,
@@ -279,8 +280,6 @@ async fn process_cleanpath(
279
280
280
281
( server_stream, None )
281
282
} else {
282
- debug ! ( "Preconnection blob sent" ) ;
283
-
284
283
// Send X224 connection request
285
284
let x224_req = cleanpath_pdu
286
285
. x224_connection_pdu
@@ -289,6 +288,12 @@ async fn process_cleanpath(
289
288
290
289
server_stream. write_all ( x224_req. as_bytes ( ) ) . await ?;
291
290
291
+ let x224_rsp = read_x224_response ( & mut server_stream)
292
+ . await
293
+ . with_context ( || format ! ( "read X224 response from {selected_target}" ) )
294
+ . map_err ( CleanPathError :: BadRequest ) ?;
295
+ trace ! ( "Receiving X224 response" ) ;
296
+
292
297
let server_stream = crate :: tls:: connect ( selected_target. host ( ) . to_owned ( ) , server_stream)
293
298
. await
294
299
. map_err ( |source| CleanPathError :: TlsHandshake {
@@ -299,24 +304,8 @@ async fn process_cleanpath(
299
304
300
305
// Receive server X224 connection response
301
306
302
- trace ! ( "Receiving X224 response" ) ;
303
-
304
- let x224_rsp = read_x224_response ( & mut server_stream)
305
- . await
306
- . with_context ( || format ! ( "read X224 response from {selected_target}" ) )
307
- . map_err ( CleanPathError :: BadRequest ) ?;
308
-
309
307
trace ! ( "Establishing TLS connection with server" ) ;
310
308
311
- // Establish TLS connection with server
312
-
313
- let server_stream = crate :: tls:: connect ( selected_target. host ( ) , server_stream)
314
- . await
315
- . map_err ( |source| CleanPathError :: TlsHandshake {
316
- source,
317
- target_server : selected_target. to_owned ( ) ,
318
- } ) ?;
319
-
320
309
( server_stream, Some ( x224_rsp) )
321
310
} ;
322
311
0 commit comments