MXS-2208 Allow dbfw parser to be compiled as C
maxsbase/log.h will turn into C++, but the flex and bison generated files are by default C.
This commit is contained in:
@ -1779,3 +1779,13 @@ json_t* Dbfw::diagnostics_json() const
|
|||||||
{
|
{
|
||||||
return rules_to_json(this_thread->rules(this));
|
return rules_to_json(this_thread->rules(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
void dbfilter_log_warning(const char* file, int line, const char* function,
|
||||||
|
const char* format, const char* what)
|
||||||
|
{
|
||||||
|
char buffer[strlen(format) + strlen(what) + 1];
|
||||||
|
|
||||||
|
sprintf(buffer, format, what);
|
||||||
|
mxb_log_message(LOG_WARNING, file, line, function, "%s", buffer);
|
||||||
|
}
|
||||||
|
|||||||
@ -21,6 +21,10 @@
|
|||||||
|
|
||||||
#include <maxscale/cdefs.h>
|
#include <maxscale/cdefs.h>
|
||||||
|
|
||||||
|
#ifndef MXS_MODULE_NAME
|
||||||
|
#define MXS_MODULE_NAME "dbfwfilter"
|
||||||
|
#endif
|
||||||
|
|
||||||
MXS_BEGIN_DECLS
|
MXS_BEGIN_DECLS
|
||||||
|
|
||||||
/** Matching type */
|
/** Matching type */
|
||||||
@ -56,4 +60,11 @@ void add_active_rule(void* scanner, const char* name);
|
|||||||
void set_matching_mode(void* scanner, enum match_type mode);
|
void set_matching_mode(void* scanner, enum match_type mode);
|
||||||
bool create_user_templates(void* scanner);
|
bool create_user_templates(void* scanner);
|
||||||
|
|
||||||
|
/** Log warnings from C code */
|
||||||
|
void log_warning(const char* module, const char* file, int line, const char* function,
|
||||||
|
const char* format, const char* what);
|
||||||
|
|
||||||
|
#define FW_LOG_WARNING(format, what)\
|
||||||
|
log_warning(MXS_MODULE_NAME, __FILE__, __LINE__, __func__, format, what)
|
||||||
|
|
||||||
MXS_END_DECLS
|
MXS_END_DECLS
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
%{
|
%{
|
||||||
#include <lex.yy.h>
|
#include <lex.yy.h>
|
||||||
#include "dbfwfilter.h"
|
#include "dbfwfilter.h"
|
||||||
#include <maxscale/log.h>
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
/** We need a reentrant scanner so no global variables are used */
|
/** We need a reentrant scanner so no global variables are used */
|
||||||
@ -53,7 +52,7 @@
|
|||||||
|
|
||||||
input
|
input
|
||||||
: line_input
|
: line_input
|
||||||
| line_input command { MXS_WARNING("Firewall rules file lacks a trailing newline."); }
|
| line_input command { FW_LOG_WARNING("Firewall rules file lacks a trailing newline.", ""); }
|
||||||
;
|
;
|
||||||
|
|
||||||
line_input
|
line_input
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
%{
|
%{
|
||||||
#include <ruleparser.yy.h>
|
#include <ruleparser.yy.h>
|
||||||
#include <maxscale/log.h>
|
#include "dbfwfilter.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%option reentrant noyywrap bison-bridge prefix="dbfw_yy"
|
%option reentrant noyywrap bison-bridge prefix="dbfw_yy"
|
||||||
@ -37,7 +37,7 @@ CMP [=<>!]+
|
|||||||
%%
|
%%
|
||||||
{SPACE}"\n"+ return '\n';
|
{SPACE}"\n"+ return '\n';
|
||||||
{COMMENT} return FWTOK_COMMENT;
|
{COMMENT} return FWTOK_COMMENT;
|
||||||
deny|allow MXS_WARNING("Use of '%s' is deprecated, use 'match' instead", yytext);return FWTOK_MATCH;
|
deny|allow FW_LOG_WARNING("Use of '%s' is deprecated, use 'match' instead", yytext);return FWTOK_MATCH;
|
||||||
rule return FWTOK_RULE;
|
rule return FWTOK_RULE;
|
||||||
function return FWTOK_FUNCTION;
|
function return FWTOK_FUNCTION;
|
||||||
not_function return FWTOK_NOT_FUNCTION;
|
not_function return FWTOK_NOT_FUNCTION;
|
||||||
|
|||||||
Reference in New Issue
Block a user