@@ -236,6 +236,7 @@ async fn process_cleanpath(
236236 // - Without PCB: Gateway handles (1) X224 connection request, (2) X224 connection response,
237237 // then leaves TLS handshake and CredSSP to IronRDP client
238238 let ( server_stream, x224_rsp) = if let Some ( pcb_string) = cleanpath_pdu. preconnection_blob {
239+ debug ! ( "Sending preconnection blob to server" ) ;
239240 let pcb = ironrdp_pdu:: pcb:: PreconnectionBlob {
240241 version : ironrdp_pdu:: pcb:: PcbVersion :: V2 ,
241242 id : 0 ,
@@ -248,7 +249,7 @@ async fn process_cleanpath(
248249
249250 server_stream. write_all ( & encoded) . await ?;
250251
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)
252253 . await
253254 . map_err ( |source| CleanPathError :: TlsHandshake {
254255 source,
@@ -257,8 +258,6 @@ async fn process_cleanpath(
257258
258259 ( server_stream, None )
259260 } else {
260- debug ! ( "Preconnection blob sent" ) ;
261-
262261 // Send X224 connection request
263262 let x224_req = cleanpath_pdu
264263 . x224_connection_pdu
@@ -267,6 +266,12 @@ async fn process_cleanpath(
267266
268267 server_stream. write_all ( x224_req. as_bytes ( ) ) . await ?;
269268
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+
270275 let server_stream = crate :: tls:: connect ( selected_target. host ( ) . to_owned ( ) , server_stream)
271276 . await
272277 . map_err ( |source| CleanPathError :: TlsHandshake {
@@ -277,24 +282,8 @@ async fn process_cleanpath(
277282
278283 // Receive server X224 connection response
279284
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-
287285 trace ! ( "Establishing TLS connection with server" ) ;
288286
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-
298287 ( server_stream, Some ( x224_rsp) )
299288 } ;
300289
0 commit comments