in src/plugin/plugin_curl.rs [151:178]
fn hook_curl_exec(&self) -> (Box<BeforeExecuteHook>, Box<AfterExecuteHook>) {
(
Box::new(|request_id, execute_data| {
validate_num_args(execute_data, 1)?;
let cid = Self::get_resource_id(execute_data)?;
let ch = execute_data.get_parameter(0);
let info = Self::get_curl_info(cid, ch.clone())?;
let span = Self::create_exit_span(request_id, &info)?;
if info.is_http {
Self::inject_sw_header(request_id, ch.clone(), &info)?;
}
Ok(Box::new(span))
}),
Box::new(move |_, span, execute_data, _| {
let mut span = span.downcast::<Span>().unwrap();
let ch = execute_data.get_parameter(0);
Self::finish_exit_span(&mut *span, ch)?;
Ok(())
}),
)
}