aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mate
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mate')
-rw-r--r--plugins/mate/Makefile.nmake10
-rw-r--r--plugins/mate/mate_grammar.lemon122
-rw-r--r--plugins/mate/mate_parser.l72
-rw-r--r--plugins/mate/mate_util.c60
4 files changed, 132 insertions, 132 deletions
diff --git a/plugins/mate/Makefile.nmake b/plugins/mate/Makefile.nmake
index d350bef09e..ef8aee90d4 100644
--- a/plugins/mate/Makefile.nmake
+++ b/plugins/mate/Makefile.nmake
@@ -13,7 +13,7 @@ include Makefile.common
LEMON=..\..\tools\lemon
-CFLAGS=/WX /DHAVE_CONFIG_H /I../.. /I../../wiretap $(GLIB_CFLAGS) /I$(LEMON)\
+CFLAGS=/WX /DHAVE_CONFIG_H /I../.. $(GLIB_CFLAGS) /I$(LEMON)\
/I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS)
.c.obj::
@@ -22,7 +22,7 @@ CFLAGS=/WX /DHAVE_CONFIG_H /I../.. /I../../wiretap $(GLIB_CFLAGS) /I$(LEMON)\
LDFLAGS = $(PLUGIN_LDFLAGS)
!IFDEF ENABLE_LIBWIRESHARK
-LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib ..\..\wiretap\wiretap-$(WTAP_VERSION).lib
+LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib ..\..\wsutil\libwsutil.lib
CFLAGS=/DHAVE_WIN32_LIBWIRESHARK_LIB /D_NEED_VAR_IMPORT_ $(CFLAGS)
DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
@@ -97,7 +97,7 @@ plugin.c: $(DISSECTOR_SRC) moduleinfo.h ../../tools/make-dissector-reg
clean:
rm -f $(OBJECTS) $(RESOURCE) plugin.c *.pdb \
$(PLUGIN_NAME).dll $(PLUGIN_NAME).dll.manifest $(PLUGIN_NAME).lib \
- $(PLUGIN_NAME).exp $(PLUGIN_NAME).rc
+ $(PLUGIN_NAME).exp $(PLUGIN_NAME).rc
# We remove the generated files with "distclean" because one of them,
# "mate_parser.c", needs different #includes for UN*X and Windows
@@ -120,12 +120,12 @@ mate_parser.obj : mate_parser.c
mate_grammar.h : mate_grammar.c
mate_grammar.c : mate_grammar.lemon $(LEMON)\lemon.exe
- $(LEMON)\lemon.exe t=$(LEMON)\lempar.c mate_grammar.lemon
+ $(LEMON)\lemon.exe t=$(LEMON)\lempar.c mate_grammar.lemon
$(LEMON)\lemon.exe:
cd ../../tools/lemon
$(MAKE) /$(MAKEFLAGS) -f makefile.nmake
cd ../../plugins/mate
-checkapi:
+checkapi:
$(PERL) ../../tools/checkAPIs.pl $(DISSECTOR_SRC)
diff --git a/plugins/mate/mate_grammar.lemon b/plugins/mate/mate_grammar.lemon
index 97c5ba5f6c..466cbff0f7 100644
--- a/plugins/mate/mate_grammar.lemon
+++ b/plugins/mate/mate_grammar.lemon
@@ -1,7 +1,7 @@
%include {
/* mate_grammar.lemon
-* MATE's configuration language grammar
+* MATE's configuration language grammar
*
* Copyright 2005, Luis E. Garcia Ontanon <luis.ontanon@gmail.com>
*
@@ -15,12 +15,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-*
+*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@@ -28,7 +28,7 @@
#include "mate.h"
#include "mate_grammar.h"
-#include <wiretap/file_util.h>
+#include <wsutil/file_util.h>
#define DUMMY void*
@@ -68,7 +68,7 @@ typedef struct _gog_statements {
typedef struct _transf_match_t {
avpl_match_mode match_mode;
AVPL* avpl;
-} transf_match_t;
+} transf_match_t;
typedef struct _transf_action_t {
avpl_replace_mode replace_mode;
@@ -81,13 +81,13 @@ static void configuration_error(mate_config* mc, const gchar* fmt, ...) {
gint i;
mate_config_frame* current_frame;
va_list list;
-
+
va_start( list, fmt );
g_vsnprintf(error_buffer,sizeof(error_buffer),fmt,list);
va_end( list );
i = (gint) mc->config_stack->len;
-
+
while (i--) {
if (i>0) {
@@ -95,30 +95,30 @@ static void configuration_error(mate_config* mc, const gchar* fmt, ...) {
} else {
incl = " ";
}
-
+
current_frame = g_ptr_array_index(mc->config_stack,(guint)i);
-
+
g_string_append_printf(mc->config_error,"%s%s at line %u",incl, current_frame->filename, current_frame->linenum);
}
-
+
g_string_append_printf(mc->config_error,": %s\n",error_buffer);
-
+
THROW(MateConfigError);
}
static AVPL_Transf* new_transform_elem(AVPL* match, AVPL* replace, avpl_match_mode match_mode, avpl_replace_mode replace_mode) {
AVPL_Transf* t = g_malloc(sizeof(AVPL_Transf));
-
+
t->name = NULL;
t->match = match;
t->replace = replace;
t->match_mode = match_mode;
t->replace_mode = replace_mode;
-
+
t->map = NULL;
t->next = NULL;
-
+
return t;
}
@@ -128,12 +128,12 @@ static gchar* recolonize(mate_config* mc, gchar* s) {
gchar* r;
guint i,v;
gchar c;
-
+
vec = g_strsplit(s,":",0);
-
+
for (i = 0; vec[i]; i++) {
g_strdown(vec[i]);
-
+
v = 0;
switch ( strlen(vec[i]) ) {
case 2:
@@ -156,16 +156,16 @@ static gchar* recolonize(mate_config* mc, gchar* s) {
default:
configuration_error(mc,"bad token %s",s);
}
-
- g_string_append_printf(str,":%.2X",v);
+
+ g_string_append_printf(str,":%.2X",v);
}
-
+
g_strfreev(vec);
-
+
g_string_erase(str,0,1);
-
+
r = str->str;
-
+
g_string_free(str,FALSE);
return r;
@@ -207,9 +207,9 @@ static gchar* recolonize(mate_config* mc, gchar* s) {
%type criteria_statement { pdu_criteria_t* }
%type accept_mode { accept_mode_t }
-%type pdu_drop_unassigned_statement { gboolean }
-%type discard_pdu_data_statement { gboolean }
-%type last_extracted_statement { gboolean }
+%type pdu_drop_unassigned_statement { gboolean }
+%type discard_pdu_data_statement { gboolean }
+%type last_extracted_statement { gboolean }
%type extraction_statement {extraction_t*}
%type extraction_statements {extraction_t*}
@@ -264,8 +264,8 @@ decl ::= DONE_KW SEMICOLON.
debug_decl ::= DEBUG_KW OPEN_BRACE dbgfile_default dbglevel_default pdu_dbglevel_default gop_dbglevel_default gog_dbglevel_default CLOSE_BRACE SEMICOLON.
-dbgfile_default ::= FILENAME_KW QUOTED(Filename) SEMICOLON. { mc->dbg_facility = eth_fopen(Filename,"w"); if (mc->dbg_facility == NULL) report_open_failure(Filename,errno,TRUE); }
-dbgfile_default ::= FILENAME_KW NAME(Filename) SEMICOLON. { mc->dbg_facility = eth_fopen(Filename,"w"); if (mc->dbg_facility == NULL) report_open_failure(Filename,errno,TRUE); }
+dbgfile_default ::= FILENAME_KW QUOTED(Filename) SEMICOLON. { mc->dbg_facility = ws_fopen(Filename,"w"); if (mc->dbg_facility == NULL) report_open_failure(Filename,errno,TRUE); }
+dbgfile_default ::= FILENAME_KW NAME(Filename) SEMICOLON. { mc->dbg_facility = ws_fopen(Filename,"w"); if (mc->dbg_facility == NULL) report_open_failure(Filename,errno,TRUE); }
dbgfile_default ::= .
dbglevel_default ::= LEVEL_KW INTEGER(LevelString) SEMICOLON. { mc->dbg_lvl = (int) strtol(LevelString,NULL,10); }
@@ -341,9 +341,9 @@ transform_decl(A) ::= TRANSFORM_KW NAME(B) transform_body(C) SEMICOLON. {
for ( c = C; c; c = c->next )
c->name = g_strdup(B);
-
+
g_hash_table_insert(mc->transfs,C->name,C);
-
+
A = NULL;
}
@@ -351,7 +351,7 @@ transform_body(A) ::= OPEN_BRACE transform_statements(B) CLOSE_BRACE. { A = B; }
transform_statements(A) ::= transform_statements(C) transform_statement(B). {
AVPL_Transf* c;
-
+
for ( c = C; c->next; c = c->next ) ;
c->next = B;
A = C;
@@ -411,12 +411,12 @@ pdu_decl ::=
last_extracted_statement(LastExtracted)
CLOSE_BRACE SEMICOLON.
{
-
+
mate_cfg_pdu* cfg = new_pducfg(Name);
extraction_t *extraction, *next_extraction;
GPtrArray* transport_stack = g_ptr_array_new();
int i;
-
+
if (! cfg ) configuration_error(mc,"could not create Pdu %s.",Name);
cfg->hfid_proto = Field->id;
@@ -424,34 +424,34 @@ pdu_decl ::=
cfg->last_extracted = LastExtracted;
cfg->discard = DistcardPduData;
cfg->drop_unassigned = DropUnassigned;
-
+
g_string_append_printf(mc->protos_filter,"||%s",Field->abbrev);
/* flip the transport_stack */
for (i = Stack->len - 1; Stack->len; i--) {
g_ptr_array_add(transport_stack,g_ptr_array_remove_index(Stack,i));
}
-
+
g_ptr_array_free(Stack,FALSE);
-
+
cfg->transport_ranges = transport_stack;
cfg->payload_ranges = Payload;
-
+
if (Criteria) {
cfg->criterium = Criteria->criterium_avpl;
cfg->criterium_match_mode = Criteria->criterium_match_mode;
cfg->criterium_accept_mode = Criteria->criterium_accept_mode;
}
-
+
cfg->transforms = Transform;
-
+
for (extraction = Extraction; extraction; extraction = next_extraction) {
next_extraction = extraction->next;
-
+
if ( ! add_hfid(extraction->hfi, extraction->as, cfg->hfids_attr) ) {
configuration_error(mc,"MATE: failed to create extraction rule '%s'",extraction->as);
}
-
+
g_free(extraction);
}
}
@@ -482,20 +482,20 @@ extraction_statement(A) ::= EXTRACT_KW NAME(NAME) FROM_KW field(FIELD) SEMICOLON
}
-pdu_drop_unassigned_statement(A) ::= DROP_UNASSIGNED_KW true_false(B) SEMICOLON. { A = B; }
+pdu_drop_unassigned_statement(A) ::= DROP_UNASSIGNED_KW true_false(B) SEMICOLON. { A = B; }
pdu_drop_unassigned_statement(A) ::= . { A = mc->defaults.pdu.drop_unassigned; }
-discard_pdu_data_statement(A) ::= DISCARD_PDU_DATA_KW true_false(B) SEMICOLON. { A = B; }
-discard_pdu_data_statement(A) ::= . { A = mc->defaults.pdu.discard; }
+discard_pdu_data_statement(A) ::= DISCARD_PDU_DATA_KW true_false(B) SEMICOLON. { A = B; }
+discard_pdu_data_statement(A) ::= . { A = mc->defaults.pdu.discard; }
-last_extracted_statement(A) ::= LAST_PDU_KW true_false(B) SEMICOLON. { A = B; }
-last_extracted_statement(A) ::= . { A = mc->defaults.pdu.last_extracted; }
+last_extracted_statement(A) ::= LAST_PDU_KW true_false(B) SEMICOLON. { A = B; }
+last_extracted_statement(A) ::= . { A = mc->defaults.pdu.last_extracted; }
proto_stack(A) ::= proto_stack(B) SLASH field(C). {
int* hfidp = g_malloc(sizeof(int));
g_string_append_printf(mc->fields_filter,"||%s",C->abbrev);
-
+
*hfidp = C->id;
g_ptr_array_add(B,hfidp);
A = B;
@@ -504,7 +504,7 @@ proto_stack(A) ::= proto_stack(B) SLASH field(C). {
proto_stack(A) ::= field(B). {
int* hfidp = g_malloc(sizeof(int));
*hfidp = B->id;
-
+
g_string_append_printf(mc->fields_filter,"||%s",B->abbrev);
A = g_ptr_array_new();
@@ -518,7 +518,7 @@ field(A) ::= NAME(B). {
/******************************************* GOP
*/
-gop_decl(A) ::= GOP_KW NAME(Name) ON_KW pdu_name(PduName) MATCH_KW avpl(Key) OPEN_BRACE
+gop_decl(A) ::= GOP_KW NAME(Name) ON_KW pdu_name(PduName) MATCH_KW avpl(Key) OPEN_BRACE
gop_start_statement(Start)
gop_stop_statement(Stop)
extra_statement(Extra)
@@ -531,14 +531,14 @@ gop_decl(A) ::= GOP_KW NAME(Name) ON_KW pdu_name(PduName) MATCH_KW avpl(Key) OPE
show_times_statement(ShowTimes)
CLOSE_BRACE SEMICOLON. {
mate_cfg_gop* cfg;
-
+
if (g_hash_table_lookup(mc->gopcfgs,Name)) configuration_error(mc,"A Gop Named '%s' exists already.",Name);
if (g_hash_table_lookup(mc->gops_by_pduname,PduName) ) configuration_error(mc,"Gop for Pdu '%s' exists already",PduName);
cfg = new_gopcfg(Name);
g_hash_table_insert(mc->gops_by_pduname,PduName,cfg);
g_hash_table_insert(mc->gopcfgs,cfg->name,cfg);
-
+
cfg->on_pdu = PduName;
cfg->key = Key;
cfg->drop_unassigned = DropUnassigned;
@@ -550,12 +550,12 @@ gop_decl(A) ::= GOP_KW NAME(Name) ON_KW pdu_name(PduName) MATCH_KW avpl(Key) OPE
cfg->start = Start;
cfg->stop = Stop;
cfg->transforms = Transform;
-
+
merge_avpl(cfg->extra,Extra,TRUE);
delete_avpl(Extra,TRUE);
}
-gop_drop_unassigned_statement(A) ::= DROP_UNASSIGNED_KW true_false(B) SEMICOLON. { A = B; }
+gop_drop_unassigned_statement(A) ::= DROP_UNASSIGNED_KW true_false(B) SEMICOLON. { A = B; }
gop_drop_unassigned_statement(A) ::= . { A = mc->defaults.gop.drop_unassigned; }
gop_start_statement(A) ::= START_KW avpl(B) SEMICOLON. { A = B; }
@@ -608,7 +608,7 @@ time_value(A) ::= INTEGER(B). {
/************* GOG
*/
-gog_decl ::= GOG_KW NAME(Name) OPEN_BRACE
+gog_decl ::= GOG_KW NAME(Name) OPEN_BRACE
gog_key_statements(Keys)
extra_statement(Extra)
transform_list_statement(Transforms)
@@ -616,18 +616,18 @@ gog_decl ::= GOG_KW NAME(Name) OPEN_BRACE
gog_goptree_statement(Tree)
CLOSE_BRACE SEMICOLON. {
mate_cfg_gog* cfg = NULL;
-
+
if ( g_hash_table_lookup(mc->gogcfgs,Name) ) {
configuration_error(mc,"Gog '%s' exists already ",Name);
}
-
+
cfg = new_gogcfg(Name);
cfg->expiration = Expiration;
cfg->gop_tree_mode = Tree;
cfg->transforms = Transforms;
cfg->keys = Keys;
-
+
merge_avpl(cfg->extra,Extra,TRUE);
delete_avpl(Extra,TRUE);
}
@@ -676,7 +676,7 @@ extra_statement(A) ::= . { A = new_avpl(""); }
transform_list_statement(A) ::= TRANSFORM_KW transform_list(B) SEMICOLON. { A = B; }
transform_list_statement(A) ::= . { A = g_ptr_array_new(); }
-transform_list(A) ::= transform_list(B) COMMA transform(C). {
+transform_list(A) ::= transform_list(B) COMMA transform(C). {
A = B;
g_ptr_array_add(B,C);
}
@@ -688,12 +688,12 @@ transform_list(A) ::= transform(B). {
transform(A) ::= NAME(B). {
AVPL_Transf* t;
-
+
if (( t = g_hash_table_lookup(mc->transfs,B) )) {
A = t;
} else {
configuration_error(mc,"There's no such Transformation: %s",B);
- }
+ }
}
avpl(A) ::= OPEN_PARENS avps(B) CLOSE_PARENS. { A = B; }
@@ -706,7 +706,7 @@ avp(A) ::= NAME(B) AVP_OPERATOR(C) value(D). { A = new_avp(B,D,*C); }
avp(A) ::= NAME(B). { A = new_avp(B,"",'?'); }
avp(A) ::= NAME(B) OPEN_BRACE avp_oneoff(C) CLOSE_BRACE. { A = new_avp(B,C,'|'); }
-avp_oneoff(A) ::= avp_oneoff(B) PIPE value(C). { A = g_strdup_printf("%s|%s",B,C); }
+avp_oneoff(A) ::= avp_oneoff(B) PIPE value(C). { A = g_strdup_printf("%s|%s",B,C); }
avp_oneoff(A) ::= value(B). { A = g_strdup(B); }
value(A) ::= QUOTED(B). { A = g_strdup(B); }
diff --git a/plugins/mate/mate_parser.l b/plugins/mate/mate_parser.l
index 0a284a4a45..02e6624996 100644
--- a/plugins/mate/mate_parser.l
+++ b/plugins/mate/mate_parser.l
@@ -1,7 +1,7 @@
/*
* We don't use unput, so don't generate code for it.
*/
-%option nounput
+%option nounput
/*
* We don't read from the terminal.
@@ -31,20 +31,20 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-
-#include <wiretap/file_util.h>
-#include "mate.h"
+#include <wsutil/file_util.h>
+
+#include "mate.h"
#include "mate_grammar.h"
#include "mate_parser_lex.h"
@@ -62,16 +62,16 @@
#endif
void MateParserFree( void*, void(*)(void*) );
void MateParseTrace(FILE*,char*);
-
+
#define MAX_INCLUDE_DEPTH 10
static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
static int include_stack_ptr = 0;
-
+
static void* pParser;
static mate_config_frame* current_frame;
-
+
static mate_config* mc;
-
+
#define MATE_PARSE(token_type) MateParser(pParser, (token_type), g_strdup(yytext), mc );
/*
@@ -159,11 +159,11 @@ comment "//"[^\n]*\n
blk_cmnt_start "/*"
cmnt_char .
blk_cmnt_stop "*/"
-
+
%START OUTSIDE QUOTED INCLUDING COMMENT
%%
-{newline} current_frame->linenum++;
+{newline} current_frame->linenum++;
{whitespace} ;
<OUTSIDE>{include} BEGIN INCLUDING;
@@ -171,46 +171,46 @@ blk_cmnt_stop "*/"
<INCLUDING>{filename} {
if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
g_error("dtd_preparse: include files nested to deeply");
-
+
include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
- yyin = eth_fopen( yytext, "r" );
+ yyin = ws_fopen( yytext, "r" );
if (!yyin) {
yy_delete_buffer( YY_CURRENT_BUFFER );
-
+
/* coverity[negative_sink] */
yy_switch_to_buffer(include_stack[--include_stack_ptr] );
-
+
if (errno)
g_string_append_printf(mc->config_error, "Mate parser: Could not open file: '%s': %s", yytext, strerror(errno) );
-
+
} else {
-
+
current_frame = g_malloc(sizeof(mate_config_frame));
current_frame->filename = g_strdup(yytext);
current_frame->linenum = 1;
-
+
g_ptr_array_add(mc->config_stack,current_frame);
yy_switch_to_buffer(yy_create_buffer( yyin, YY_BUF_SIZE ) );
}
-
+
BEGIN OUTSIDE;
}
-<<EOF>> {
+<<EOF>> {
/* coverity[check_after_sink] */
if ( --include_stack_ptr < 0 ) {
yyterminate();
} else {
yy_delete_buffer( YY_CURRENT_BUFFER );
yy_switch_to_buffer( include_stack[include_stack_ptr] );
-
+
g_free(current_frame->filename);
g_free(current_frame);
current_frame = g_ptr_array_remove_index(mc->config_stack,mc->config_stack->len-1);
}
-}
+}
<OUTSIDE>{comment} ;
@@ -289,25 +289,25 @@ extern gboolean mate_load_config(const gchar* filename, mate_config* matecfg) {
volatile gboolean state = TRUE;
mc = matecfg;
- yyin = eth_fopen(filename,"r");
-
+ yyin = ws_fopen(filename,"r");
+
if (!yyin) {
g_string_append_printf(mc->config_error,"Mate parser: Could not open file: '%s', error: %s", filename, strerror(errno) );
return FALSE;
}
-
+
mc->config_stack = g_ptr_array_new();
-
+
current_frame = g_malloc(sizeof(mate_config_frame));
current_frame->filename = g_strdup(filename);
current_frame->linenum = 1;
-
+
g_ptr_array_add(mc->config_stack,current_frame);
pParser = MateParserAlloc(g_malloc);
-
+
/* MateParserTrace(stdout,""); */
-
+
TRY {
BEGIN OUTSIDE;
@@ -316,27 +316,27 @@ extern gboolean mate_load_config(const gchar* filename, mate_config* matecfg) {
MateParser(pParser, 0, NULL,mc);
yyrestart(NULL);
-
+
MateParserFree(pParser, g_free );
-
+
g_free(current_frame->filename);
g_free(current_frame);
-
+
g_ptr_array_free(mc->config_stack,FALSE);
} CATCH(MateConfigError) {
state = FALSE;
} CATCH_ALL {
- state = FALSE;
+ state = FALSE;
g_string_append_printf(mc->config_error,"An unexpected error occurred");
}
ENDTRY;
-
+
return state;
}
/*
* We want to stop processing when we get to the end of the input.
- * (%option noyywrap is not used because if used then
+ * (%option noyywrap is not used because if used then
* some flex versions (eg: 2.5.35) generate code which causes
* warnings by the Windows VC compiler).
*/
diff --git a/plugins/mate/mate_util.c b/plugins/mate/mate_util.c
index ac9ccf2569..769d60f49c 100644
--- a/plugins/mate/mate_util.c
+++ b/plugins/mate/mate_util.c
@@ -27,7 +27,7 @@
#include "mate.h"
#include "mate_util.h"
-#include <wiretap/file_util.h>
+#include <wsutil/file_util.h>
/***************************************************************************
* dbg_print
@@ -81,7 +81,7 @@ void dbg_print(const gint* which, gint how, FILE* where, const gchar* fmt, ... )
struct _scs_collection {
GHashTable* hash; /* key: a string value: guint number of subscribers */
GMemChunk* ctrs;
- GMemChunk* mate_small;
+ GMemChunk* mate_small;
GMemChunk* mate_medium;
GMemChunk* mate_large;
GMemChunk* mate_huge;
@@ -93,7 +93,7 @@ extern void destroy_scs_collection(SCS_collection* c) {
if ( c->mate_medium ) g_mem_chunk_destroy(c->mate_medium);
if ( c->mate_large ) g_mem_chunk_destroy(c->mate_large);
if ( c->mate_huge ) g_mem_chunk_destroy(c->mate_huge);
-
+
if (c->hash) g_hash_table_destroy(c->hash);
}
@@ -101,19 +101,19 @@ extern SCS_collection* scs_init(void) {
SCS_collection* c = g_malloc(sizeof(SCS_collection));
c->hash = g_hash_table_new(g_str_hash,g_str_equal);
-
+
c->ctrs = g_mem_chunk_new("ints_scs_chunk", sizeof(guint),
sizeof(guint) * SCS_SMALL_CHUNK_SIZE, G_ALLOC_AND_FREE);
-
+
c->mate_small = g_mem_chunk_new("small_scs_chunk", SCS_SMALL_SIZE,
SCS_SMALL_SIZE * SCS_SMALL_CHUNK_SIZE, G_ALLOC_AND_FREE);
-
+
c->mate_medium = g_mem_chunk_new("medium_scs_chunk", SCS_MEDIUM_SIZE,
SCS_MEDIUM_SIZE * SCS_MEDIUM_CHUNK_SIZE, G_ALLOC_AND_FREE);
-
+
c->mate_large = g_mem_chunk_new("large_scs_chunk", SCS_LARGE_SIZE,
SCS_LARGE_SIZE * SCS_LARGE_CHUNK_SIZE, G_ALLOC_AND_FREE);
-
+
c->mate_huge = g_mem_chunk_new("huge_scs_chunk", SCS_HUGE_SIZE,
SCS_HUGE_SIZE * SCS_HUGE_CHUNK_SIZE, G_ALLOC_AND_FREE);
return c;
@@ -137,7 +137,7 @@ gchar* scs_subscribe(SCS_collection* c, const gchar* s) {
guint* ip = NULL;
size_t len = 0;
GMemChunk* chunk = NULL;
-
+
g_hash_table_lookup_extended(c->hash,(gconstpointer)s,(gpointer)&orig,(gpointer)&ip);
if (ip) {
@@ -145,9 +145,9 @@ gchar* scs_subscribe(SCS_collection* c, const gchar* s) {
} else {
ip = g_mem_chunk_alloc(c->ctrs);
*ip = 0;
-
+
len = strlen(s) + 1;
-
+
if (len <= SCS_SMALL_SIZE) {
chunk = c->mate_small;
len = SCS_SMALL_SIZE;
@@ -165,10 +165,10 @@ gchar* scs_subscribe(SCS_collection* c, const gchar* s) {
len = SCS_HUGE_SIZE;
g_warning("mate SCS: string truncated to huge size");
}
-
+
orig = g_mem_chunk_alloc(chunk);
strncpy(orig,s,len);
-
+
g_hash_table_insert(c->hash,orig,ip);
}
@@ -188,15 +188,15 @@ void scs_unsubscribe(SCS_collection* c, gchar* s) {
guint* ip = NULL;
size_t len = 0xffff;
GMemChunk* chunk = NULL;
-
+
g_hash_table_lookup_extended(c->hash,(gconstpointer)s,(gpointer)&orig,(gpointer)&ip);
if (ip) {
if (*ip == 0) {
g_hash_table_remove(c->hash,orig);
-
+
len = strlen(orig);
-
+
if (len < SCS_SMALL_SIZE) {
chunk = c->mate_small;
} else if (len < SCS_MEDIUM_SIZE) {
@@ -205,8 +205,8 @@ void scs_unsubscribe(SCS_collection* c, gchar* s) {
chunk = c->mate_large;
} else {
chunk = c->mate_huge;
- }
-
+ }
+
g_mem_chunk_free(chunk,orig);
g_mem_chunk_free(c->ctrs,ip);
}
@@ -230,7 +230,7 @@ void scs_unsubscribe(SCS_collection* c, gchar* s) {
gchar* scs_subscribe_printf(SCS_collection* c, gchar* fmt, ...) {
va_list list;
static gchar buf[SCS_HUGE_SIZE];
-
+
va_start( list, fmt );
g_vsnprintf(buf, SCS_HUGE_SIZE-1 ,fmt, list);
va_end( list );
@@ -335,7 +335,7 @@ extern void avp_init(void) {
extern AVP* new_avp_from_finfo(const gchar* name, field_info* finfo) {
AVP* new = g_mem_chunk_alloc(avp_chunk);
gchar* value;
-
+
new->n = scs_subscribe(avp_strings, name);
if (finfo->value.ftype->val_to_string_repr) {
@@ -1098,17 +1098,17 @@ extern AVPL* new_avpl_every_match(const gchar* name, AVPL* src, AVPL* op, gboole
AVP* m;
AVP* copy;
gboolean matches;
-
+
#ifdef _AVP_DEBUGGING
dbg_print(dbg_avpl_op,3,dbg_fp,"new_avpl_every_match: %X src=%X op=%X name='%s'",newavpl,src,op,name);
#endif
if (src->len == 0) return NULL;
-
+
newavpl = new_avpl(scs_subscribe(avp_strings, name));
-
+
if (op->len == 0)
return newavpl;
-
+
matches = TRUE;
cs = src->null.next;
@@ -1195,7 +1195,7 @@ extern AVPL* new_avpl_exact_match(const gchar* name,AVPL* src, AVPL* op, gboolea
if (op->len == 0)
return newavpl;
-
+
if (src->len == 0) {
delete_avpl(newavpl,FALSE);
return NULL;
@@ -1254,7 +1254,7 @@ extern AVPL* new_avpl_exact_match(const gchar* name,AVPL* src, AVPL* op, gboolea
extern AVPL* new_avpl_from_match(avpl_match_mode mode, const gchar* name,AVPL* src, AVPL* op, gboolean copy_avps) {
AVPL* avpl = NULL;
-
+
switch (mode) {
case AVPL_STRICT:
avpl = new_avpl_exact_match(name,src,op,copy_avps);
@@ -1270,7 +1270,7 @@ extern AVPL* new_avpl_from_match(avpl_match_mode mode, const gchar* name,AVPL* s
merge_avpl(avpl, op, copy_avps);
break;
}
-
+
return avpl;
}
@@ -1325,7 +1325,7 @@ extern void avpl_transform(AVPL* src, AVPL_Transf* op) {
#endif
for ( ; op ; op = op->next) {
-
+
avpl = new_avpl_from_match(op->match_mode, src->name,src, op->match, TRUE);
if (avpl) {
@@ -1556,7 +1556,7 @@ static LoAL* load_loal_error(FILE* fp, LoAL* loal, AVPL* curr, int linenum, cons
gchar* desc;
LoAL* ret = NULL;
gchar* err;
-
+
va_start( list, fmt );
desc = g_strdup_vprintf(fmt, list);
va_end( list );
@@ -1630,7 +1630,7 @@ extern LoAL* loal_from_file(gchar* filename) {
state = START;
- if (( fp = eth_fopen(filename,"r") )) {
+ if (( fp = ws_fopen(filename,"r") )) {
while(( c = (gchar) fgetc(fp) )){
if ( feof(fp) ) {