@@ -258,6 +258,7 @@ async fn process_cleanpath(
258258 // - Without PCB: Gateway handles (1) X224 connection request, (2) X224 connection response,
259259 // then leaves TLS handshake and CredSSP to IronRDP client
260260 let ( server_stream, x224_rsp) = if let Some ( pcb_string) = cleanpath_pdu. preconnection_blob {
261+ debug ! ( "Sending preconnection blob to server" ) ;
261262 let pcb = ironrdp_pdu:: pcb:: PreconnectionBlob {
262263 version : ironrdp_pdu:: pcb:: PcbVersion :: V2 ,
263264 id : 0 ,
@@ -270,7 +271,7 @@ async fn process_cleanpath(
270271
271272 server_stream. write_all ( & encoded) . await ?;
272273
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)
274275 . await
275276 . map_err ( |source| CleanPathError :: TlsHandshake {
276277 source,
@@ -279,8 +280,6 @@ async fn process_cleanpath(
279280
280281 ( server_stream, None )
281282 } else {
282- debug ! ( "Preconnection blob sent" ) ;
283-
284283 // Send X224 connection request
285284 let x224_req = cleanpath_pdu
286285 . x224_connection_pdu
@@ -289,6 +288,12 @@ async fn process_cleanpath(
289288
290289 server_stream. write_all ( x224_req. as_bytes ( ) ) . await ?;
291290
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+
292297 let server_stream = crate :: tls:: connect ( selected_target. host ( ) . to_owned ( ) , server_stream)
293298 . await
294299 . map_err ( |source| CleanPathError :: TlsHandshake {
@@ -299,24 +304,8 @@ async fn process_cleanpath(
299304
300305 // Receive server X224 connection response
301306
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-
309307 trace ! ( "Establishing TLS connection with server" ) ;
310308
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-
320309 ( server_stream, Some ( x224_rsp) )
321310 } ;
322311
0 commit comments