Module: LibSqreen::WAF
- Defined in:
- ext/libsqreen_extension/libsqreen_extension.c
Defined Under Namespace
Classes: Args
Class Method Summary collapse
- .[]=(name, rules) ⇒ Object
- .clear ⇒ Object
- .delete(name) ⇒ Object
- .log_disable ⇒ Object
- .log_level=(severity) ⇒ Object
- .logger ⇒ Object
- .logger=(logger) ⇒ Object
- .run(*args) ⇒ Object
- .set(name, rules) ⇒ Object
Class Method Details
.[]=(name, rules) ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 133 static VALUE libsqreen_waf_set(VALUE self, VALUE name, VALUE rules) { (void)self; char * pw_name; char * pw_rules; bool pw_result; VALUE result; Check_Type(name, T_STRING); Check_Type(rules, T_STRING); pw_name = StringValueCStr(name); pw_rules = StringValueCStr(rules); pw_result = pw_init(pw_name, pw_rules, &pw_config, NULL); result = pw_result ? Qtrue : Qfalse; return result; } |
.clear ⇒ Object
167 168 169 170 171 172 173 174 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 167 static VALUE libsqreen_waf_clear(VALUE self) { (void)self; pw_clearAll(); return Qnil; } |
.delete(name) ⇒ Object
153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 153 static VALUE libsqreen_waf_delete(VALUE self, VALUE name) { (void)self; char * pw_name; Check_Type(name, T_STRING); pw_name = StringValueCStr(name); pw_clearRule(pw_name); return Qnil; } |
.log_disable ⇒ Object
117 118 119 120 121 122 123 124 125 126 |
# File 'ext/libsqreen_extension/logging.c', line 117 VALUE libsqreen_waf_log_disable(VALUE self) { (void)self; PW_LOG_LEVEL level = PWL_ERROR; pw_setupLogging(NULL, level); log_threshold = _PWL_AFTER_LAST; return Qnil; } |
.log_level=(severity) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'ext/libsqreen_extension/logging.c', line 103 VALUE libsqreen_waf_log_enable(VALUE self, VALUE severity) { (void)self; PW_LOG_LEVEL level; Check_Type(severity, T_SYMBOL); level = sym_to_log_level(severity); pw_setupLogging(on_log, level); log_threshold = level; return Qnil; } |
.logger ⇒ Object
146 147 148 149 150 151 152 153 154 155 |
# File 'ext/libsqreen_extension/logging.c', line 146 VALUE libsqreen_waf_get_logger(VALUE self) { VALUE logger; ID i_logger; i_logger = rb_intern("@logger"); logger = rb_ivar_get(self, i_logger); return logger; } |
.logger=(logger) ⇒ Object
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'ext/libsqreen_extension/logging.c', line 128 VALUE libsqreen_waf_set_logger(VALUE self, VALUE logger) { ID i_logger; if (logger == Qnil) { libsqreen_waf_log_disable(self); } i_logger = rb_intern("@logger"); rb_ivar_set(self, i_logger, logger); if (logger != Qnil) { libsqreen_waf_log_enable(self, ID2SYM(rb_intern("error"))); } return logger; } |
.run(*args) ⇒ Object
428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 428 static VALUE libsqreen_waf_run(int argc, const VALUE *argv, VALUE self) { (void)self; VALUE name, args, budget, max_run_budget; rb_scan_args(argc, argv, "31", &name, &args, &budget, &max_run_budget); PWRet pw_ret; VALUE result = rb_ary_new(); Check_Type(name, T_STRING); Check_Type(args, T_HASH); Check_Type(budget, T_FIXNUM); if (!NIL_P(max_run_budget)) { Check_Type(max_run_budget, T_FIXNUM); } int64_t gen_budget = (int64_t)FIX2LONG(budget); // in us struct timespec start = get_time_mono(); VALUE waf_args = libsqreen_waf_args_new_from_hash(args); PWArgs pw_args = *libsqreen_waf_args_get_boxed(waf_args); const char *pw_name = StringValueCStr(name); size_t run_budget = calc_run_budget(start, gen_budget, max_run_budget); if (run_budget == 0) { rb_ary_push(result, ID2SYM(rb_intern("timeout"))); rb_ary_push(result, Qnil); return result; } pw_ret = pw_run(pw_name, pw_args, run_budget); rb_ary_push(result, ret_code_to_sym(pw_ret.action)); rb_ary_push(result, pw_ret.data == NULL ? Qnil : rb_str_new2(pw_ret.data)); libsqreen_waf_args_invalidate(waf_args); pw_freeReturn(pw_ret); return result; } |
.set(name, rules) ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 133 static VALUE libsqreen_waf_set(VALUE self, VALUE name, VALUE rules) { (void)self; char * pw_name; char * pw_rules; bool pw_result; VALUE result; Check_Type(name, T_STRING); Check_Type(rules, T_STRING); pw_name = StringValueCStr(name); pw_rules = StringValueCStr(rules); pw_result = pw_init(pw_name, pw_rules, &pw_config, NULL); result = pw_result ? Qtrue : Qfalse; return result; } |