3506ac49 |
|
b0b8398b |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include "../../libclamav/hashtab.h" |
3506ac49 |
#include <sys/types.h>
#include <dirent.h>
#define MAX_LINE 1024
/* ------------ generating entity tables from .ent files ---------------- */ |
b0b8398b |
static uint16_t* map_data = NULL;
static size_t map_data_n = 0; |
3506ac49 |
|
cc447ac8 |
static void loadEntities(struct cli_hashtable* s) |
3506ac49 |
{
char line[MAX_LINE];
|
b0b8398b |
while( fgets(line, MAX_LINE, stdin)) {
const char* name = line;
char* mapto;
size_t val; |
cc447ac8 |
struct cli_element* elem; |
b0b8398b |
uint16_t converted;
int found=0, i;
mapto = strchr(line,',');
if(!mapto) {
fprintf(stderr,"Invalid line:%s\n",line);
abort(); |
3506ac49 |
} |
b0b8398b |
*mapto++ = '\0';
mapto[strlen(mapto)-1] = '\0'; |
cc447ac8 |
if(elem = cli_hashtab_find(s,name,strlen(name))) { |
b0b8398b |
if(strlen(elem->key) == strlen(name)) {
fprintf(stderr, "Duplicate entity:%s\n", name); |
3c882206 |
} |
b0b8398b |
continue; |
3506ac49 |
} |
b0b8398b |
converted = atoi(mapto); |
cc447ac8 |
cli_hashtab_insert(s,name,strlen(name), converted); |
3506ac49 |
}
} |
c3671221 |
extern short cli_debug_flag; |
3506ac49 |
int main(int argc, char* argv[])
{ |
cc447ac8 |
struct cli_hashtable ht; |
b0b8398b |
int i; |
c3671221 |
cli_debug_flag=1; |
cc447ac8 |
cli_hashtab_init(&ht,2048); |
3506ac49 |
|
b0b8398b |
loadEntities(&ht); |
cc447ac8 |
cli_hashtab_generate_c(&ht,"entities_htable"); |
3506ac49 |
return 0;
}
|