| 3090 | |
| 3091 | #[pygetset] |
| 3092 | fn session(&self, _vm: &VirtualMachine) -> PyResult<Option<PySslSession>> { |
| 3093 | let stream = self.connection.read(); |
| 3094 | unsafe { |
| 3095 | // Use SSL_get1_session which returns an owned reference (ref count already incremented) |
| 3096 | let session_ptr = SSL_get1_session(stream.ssl().as_ptr()); |
| 3097 | if session_ptr.is_null() { |
| 3098 | Ok(None) |
| 3099 | } else { |
| 3100 | Ok(Some(PySslSession { |
| 3101 | session: session_ptr, |
| 3102 | ctx: self.ctx.read().clone(), |
| 3103 | })) |
| 3104 | } |
| 3105 | } |
| 3106 | } |
| 3107 | |
| 3108 | #[pygetset(setter)] |
| 3109 | fn set_session(&self, value: PyObjectRef, vm: &VirtualMachine) -> PyResult<()> { |