better log on error

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou 2023-05-16 17:22:07 +08:00
parent 607f2d5d9d
commit e611125b86
2 changed files with 12 additions and 8 deletions

View File

@ -76,13 +76,17 @@ impl PluginReturn {
}
}
pub fn get_code_msg(&mut self) -> (i32, String) {
pub fn get_code_msg(&mut self, id: &str) -> (i32, String) {
if self.is_success() {
(self.code, "".to_owned())
} else {
if self.msg.is_null() {
log::warn!("The message pointer from the plugin is null, but the error code is {}", self.code);
return (self.code, "".to_owned())
log::warn!(
"The message pointer from the plugin '{}' is null, but the error code is {}",
id,
self.code
);
return (self.code, "".to_owned());
}
let msg = cstr_to_string(self.msg).unwrap_or_default();
free_c_ptr(self.msg as _);

View File

@ -213,7 +213,7 @@ macro_rules! make_plugin {
fn init(&self, data: &InitData, path: &str) -> ResultType<()> {
let mut init_ret = (self.init)(data as _);
if !init_ret.is_success() {
let (code, msg) = init_ret.get_code_msg();
let (code, msg) = init_ret.get_code_msg(path);
bail!(
"Failed to init plugin {}, code: {}, msg: {}",
path,
@ -227,7 +227,7 @@ macro_rules! make_plugin {
fn clear(&self, id: &str) {
let mut clear_ret = (self.clear)();
if !clear_ret.is_success() {
let (code, msg) = clear_ret.get_code_msg();
let (code, msg) = clear_ret.get_code_msg(id);
log::error!(
"Failed to clear plugin {}, code: {}, msg: {}",
id,
@ -428,7 +428,7 @@ pub fn plugin_call(id: &str, method: &[u8], peer: &str, event: &[u8]) -> ResultT
if ret.is_success() {
Ok(())
} else {
let (code, msg) = ret.get_code_msg();
let (code, msg) = ret.get_code_msg(id);
bail!(
"Failed to handle plugin event, id: {}, method: {}, code: {}, msg: {}",
id,
@ -496,7 +496,7 @@ fn _handle_listen_event(event: String, peer: String) {
evt_bytes.len(),
);
if !ret.is_success() {
let (code, msg) = ret.get_code_msg();
let (code, msg) = ret.get_code_msg(&id);
log::error!(
"Failed to handle plugin listen event, id: {}, event: {}, code: {}, msg: {}",
id,
@ -540,7 +540,7 @@ pub fn handle_client_event(id: &str, peer: &str, event: &[u8]) -> Message {
free_c_ptr(out as _);
msg
} else {
let (code, msg) = ret.get_code_msg();
let (code, msg) = ret.get_code_msg(id);
if code > ERR_RUSTDESK_HANDLE_BASE && code < ERR_PLUGIN_HANDLE_BASE {
log::debug!(
"Plugin {} failed to handle client event, code: {}, msg: {}",