Module: LibSqreen::WAF
- Defined in:
- ext/libsqreen_extension/libsqreen_extension.c
Defined Under Namespace
Classes: Args
Constant Summary collapse
- BUDGET_MAX =
ULL2NUM((size_t)-1)
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(name, args, budget) ⇒ Object
Class Method Details
.[]=(name, rules) ⇒ Object
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 128
static VALUE
libsqreen_waf_set(VALUE self, VALUE name, VALUE rules) {
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 = powerwaf_initializePowerWAF(pw_name, pw_rules);
result = pw_result ? Qtrue : Qfalse;
return result;
}
|
.clear ⇒ Object
159 160 161 162 163 164 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 159 static VALUE libsqreen_waf_clear(VALUE self) { powerwaf_clearAll(); return Qnil; } |
.delete(name) ⇒ Object
147 148 149 150 151 152 153 154 155 156 157 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 147
static VALUE
libsqreen_waf_delete(VALUE self, VALUE name) {
char * pw_name;
Check_Type(name, T_STRING);
pw_name = StringValueCStr(name);
powerwaf_clearRule(pw_name);
return Qnil;
}
|
.log_disable ⇒ Object
445 446 447 448 449 450 451 452 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 445 static VALUE libsqreen_waf_log_disable(VALUE self) { PW_LOG_LEVEL level = PWL_ERROR; powerwaf_setupLogging(NULL, level); return Qnil; } |
.log_level=(severity) ⇒ Object
433 434 435 436 437 438 439 440 441 442 443 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 433
static VALUE
libsqreen_waf_log_enable(VALUE self, VALUE severity) {
PW_LOG_LEVEL level;
Check_Type(severity, T_SYMBOL);
level = sym_to_log_level(severity);
powerwaf_setupLogging((powerwaf_logging_cb_t)on_log, level);
return Qnil;
}
|
.logger ⇒ Object
472 473 474 475 476 477 478 479 480 481 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 472 static 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
454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 454
static 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(name, args, budget) ⇒ Object
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 |
# File 'ext/libsqreen_extension/libsqreen_extension.c', line 323
static VALUE
libsqreen_waf_run(VALUE self, VALUE name, VALUE args, VALUE budget) {
VALUE waf_args;
char *pw_name;
PWArgs pw_args;
size_t pw_budget;
PWRet *pw_ret;
VALUE result;
Check_Type(name, T_STRING);
Check_Type(args, T_HASH);
Check_Type(budget, T_FIXNUM);
waf_args = libsqreen_waf_args_new_from_hash(args);
pw_args = *(PWArgs *)libsqreen_waf_args_get_boxed(waf_args);
pw_budget = FIX2LONG(budget);
pw_name = StringValueCStr(name);
pw_ret = powerwaf_runPowerWAF(pw_name, &pw_args, pw_budget);
result = rb_ary_new();
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));
powerwaf_freeInput(&pw_args, false);
powerwaf_freeReturn(pw_ret);
return result;
}
|