From 7712a856776d5cd9edec62bccc4b37bfd2ec2b8b Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Wed, 21 Dec 2022 15:21:03 +0100 Subject: [PATCH] app_ruby_proc: new function to handle error from ruby --- src/modules/app_ruby_proc/app_ruby_api.c | 32 ++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/modules/app_ruby_proc/app_ruby_api.c b/src/modules/app_ruby_proc/app_ruby_api.c index 4b4a7e3abfd..f747da697e3 100644 --- a/src/modules/app_ruby_proc/app_ruby_api.c +++ b/src/modules/app_ruby_proc/app_ruby_api.c @@ -77,6 +77,32 @@ sr_ruby_env_t *app_ruby_sr_env_get(void) } +static void ksr_ruby_error(int error) +{ + VALUE lasterr; + VALUE inclass; + VALUE message; + VALUE ary; + long c; + + if (error == 0) + return; + + lasterr = rb_gv_get("$!"); /* NOTRANSLATE */ + inclass = rb_class_path(CLASS_OF(lasterr)); + message = rb_obj_as_string(lasterr); + LM_ERR("error ruby script: class=%s, message=%s\n", + RSTRING_PTR(inclass), RSTRING_PTR(message)); + + if (!NIL_P(rb_errinfo())) { + ary = rb_funcall(rb_errinfo(), rb_intern("backtrace"), 0); + for (c=0; c