| 1178 | } |
| 1179 | #[pygetset(setter)] |
| 1180 | fn set_verify_mode(&self, cert: i32, vm: &VirtualMachine) -> PyResult<()> { |
| 1181 | let mut ctx = self.builder(); |
| 1182 | let cert_req = CertRequirements::try_from(cert) |
| 1183 | .map_err(|_| vm.new_value_error("invalid value for verify_mode"))?; |
| 1184 | let mode = match cert_req { |
| 1185 | CertRequirements::None if self.check_hostname.load() => { |
| 1186 | return Err(vm.new_value_error( |
| 1187 | "Cannot set verify_mode to CERT_NONE when check_hostname is enabled.", |
| 1188 | )); |
| 1189 | } |
| 1190 | CertRequirements::None => SslVerifyMode::NONE, |
| 1191 | CertRequirements::Optional => SslVerifyMode::PEER, |
| 1192 | CertRequirements::Required => { |
| 1193 | SslVerifyMode::PEER | SslVerifyMode::FAIL_IF_NO_PEER_CERT |
| 1194 | } |
| 1195 | }; |
| 1196 | ctx.set_verify(mode); |
| 1197 | Ok(()) |
| 1198 | } |
| 1199 | #[pygetset] |
| 1200 | fn verify_flags(&self) -> libc::c_ulong { |
| 1201 | unsafe { |