CA
This commit is contained in:
@@ -17,6 +17,7 @@ struct GurtProtocolClient {
|
||||
|
||||
client: Arc<RefCell<Option<GurtClient>>>,
|
||||
runtime: Arc<RefCell<Option<Runtime>>>,
|
||||
ca_certificates: Arc<RefCell<Vec<String>>>,
|
||||
}
|
||||
|
||||
#[derive(GodotClass)]
|
||||
@@ -94,6 +95,15 @@ struct GurtProtocolServer {
|
||||
|
||||
#[godot_api]
|
||||
impl GurtProtocolClient {
|
||||
fn init(base: Base<RefCounted>) -> Self {
|
||||
Self {
|
||||
base,
|
||||
client: Arc::new(RefCell::new(None)),
|
||||
runtime: Arc::new(RefCell::new(None)),
|
||||
ca_certificates: Arc::new(RefCell::new(Vec::new())),
|
||||
}
|
||||
}
|
||||
|
||||
#[signal]
|
||||
fn request_completed(response: Gd<GurtGDResponse>);
|
||||
|
||||
@@ -110,6 +120,9 @@ impl GurtProtocolClient {
|
||||
let mut config = GurtClientConfig::default();
|
||||
config.request_timeout = tokio::time::Duration::from_secs(timeout_seconds as u64);
|
||||
|
||||
// Add custom CA certificates
|
||||
config.custom_ca_certificates = self.ca_certificates.borrow().clone();
|
||||
|
||||
let client = GurtClient::with_config(config);
|
||||
|
||||
*self.runtime.borrow_mut() = Some(runtime);
|
||||
@@ -228,6 +241,21 @@ impl GurtProtocolClient {
|
||||
gurt::DEFAULT_PORT as i32
|
||||
}
|
||||
|
||||
#[func]
|
||||
fn add_ca_certificate(&self, cert_pem: GString) {
|
||||
self.ca_certificates.borrow_mut().push(cert_pem.to_string());
|
||||
}
|
||||
|
||||
#[func]
|
||||
fn clear_ca_certificates(&self) {
|
||||
self.ca_certificates.borrow_mut().clear();
|
||||
}
|
||||
|
||||
#[func]
|
||||
fn get_ca_certificate_count(&self) -> i32 {
|
||||
self.ca_certificates.borrow().len() as i32
|
||||
}
|
||||
|
||||
fn convert_response(&self, response: GurtResponse) -> Gd<GurtGDResponse> {
|
||||
let mut gd_response = GurtGDResponse::new_gd();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user