MCPcopy Index your code
hub / github.com/RustPython/RustPython / complete_handshake

Method complete_handshake

crates/stdlib/src/ssl.rs:2553–2586  ·  view source on GitHub ↗
(&self, vm: &VirtualMachine)

Source from the content-addressed store, hash-verified

2551 }
2552
2553 fn complete_handshake(&self, vm: &VirtualMachine) -> PyResult<()> {
2554 *self.handshake_done.lock() = true;
2555
2556 // Check if session was resumed - get value and release lock immediately
2557 let was_resumed = self
2558 .connection
2559 .lock()
2560 .as_ref()
2561 .map(|conn| conn.is_session_resumed())
2562 .unwrap_or(false);
2563
2564 *self.session_was_reused.lock() = was_resumed;
2565
2566 // Update context session statistics if server-side
2567 if self.server_side {
2568 let context = self.context.read();
2569 // Increment accept count for every successful server handshake
2570 context.accept_count.fetch_add(1, Ordering::SeqCst);
2571 // Increment hits count if session was resumed
2572 if was_resumed {
2573 context.session_hits.fetch_add(1, Ordering::SeqCst);
2574 }
2575 }
2576
2577 // Track CA certificate used during handshake (client-side only)
2578 // This simulates lazy loading behavior for capath certificates
2579 if !self.server_side {
2580 // Don't fail handshake if tracking fails
2581 let _ = self.track_used_ca_from_capath();
2582 }
2583
2584 self.create_session_after_handshake(vm)?;
2585 Ok(())
2586 }
2587
2588 // Internal implementation with timeout control
2589 pub(crate) fn sock_wait_for_io_impl(

Callers 1

do_handshakeMethod · 0.80

Calls 7

is_session_resumedMethod · 0.80
lockMethod · 0.45
mapMethod · 0.45
as_refMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected