diff options
Diffstat (limited to 'utility/config.c')
-rw-r--r-- | utility/config.c | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/utility/config.c b/utility/config.c index 847d474..d3a6ca5 100644 --- a/utility/config.c +++ b/utility/config.c | |||
@@ -3,6 +3,7 @@ | |||
3 | #include "apr_file_io.h" | 3 | #include "apr_file_io.h" |
4 | #include "apr_strings.h" | 4 | #include "apr_strings.h" |
5 | #include "apr_hash.h" | 5 | #include "apr_hash.h" |
6 | #include "apr_uri.h" | ||
6 | 7 | ||
7 | #include "shell.h" | 8 | #include "shell.h" |
8 | #include "config.h" | 9 | #include "config.h" |
@@ -65,18 +66,6 @@ static apr_status_t config_set_loglevel(config_t *cfg, config_opt_t *opt, | |||
65 | return APR_SUCCESS; | 66 | return APR_SUCCESS; |
66 | } | 67 | } |
67 | 68 | ||
68 | static apr_status_t config_set_dbconnect(config_t *cfg, config_opt_t *opt, | ||
69 | int argc, const char **argv) | ||
70 | { | ||
71 | return APR_SUCCESS; | ||
72 | } | ||
73 | |||
74 | static apr_status_t config_set_dbparam(config_t *cfg, config_opt_t *opt, | ||
75 | int argc, const char **argv) | ||
76 | { | ||
77 | return APR_SUCCESS; | ||
78 | } | ||
79 | |||
80 | static apr_status_t config_set_inputfile(config_t *cfg, config_opt_t *opt, | 69 | static apr_status_t config_set_inputfile(config_t *cfg, config_opt_t *opt, |
81 | int argc, const char **argv) | 70 | int argc, const char **argv) |
82 | { | 71 | { |
@@ -123,12 +112,12 @@ static apr_status_t config_set_output_field(config_t *cfg, config_opt_t *opt, | |||
123 | config_output_field_t *field; | 112 | config_output_field_t *field; |
124 | char *type, *size, *temp; | 113 | char *type, *size, *temp; |
125 | 114 | ||
126 | if (argc < 4) | 115 | if (argc < 5) |
127 | return APR_EINVAL; | 116 | return APR_EINVAL; |
128 | field = (config_output_field_t *)apr_array_push(cfg->output_fields); | 117 | field = (config_output_field_t *)apr_array_push(cfg->output_fields); |
129 | field->field = apr_pstrdup(cfg->pool, argv[1]); | 118 | field->field = apr_pstrdup(cfg->pool, argv[1]); |
130 | field->source = apr_pstrdup(cfg->pool, argv[3]); | 119 | field->source = apr_pstrdup(cfg->pool, argv[4]); |
131 | 120 | field->def = apr_pstrdup(cfg->pool, argv[3]); | |
132 | type = size = apr_pstrdup(cfg->pool, argv[2]); | 121 | type = size = apr_pstrdup(cfg->pool, argv[2]); |
133 | while (*size!='\0' && *size!='(') | 122 | while (*size!='\0' && *size!='(') |
134 | size++; | 123 | size++; |
@@ -156,13 +145,13 @@ static apr_status_t config_set_output_field(config_t *cfg, config_opt_t *opt, | |||
156 | } | 145 | } |
157 | 146 | ||
158 | // Has a function | 147 | // Has a function |
159 | if (argc > 4) { | 148 | if (argc > 5) { |
160 | int i; | 149 | int i; |
161 | field->fname = apr_pstrdup(cfg->pool, argv[4]); | 150 | field->fname = apr_pstrdup(cfg->pool, argv[5]); |
162 | field->func = parser_get_func(field->fname); | 151 | field->func = parser_get_func(field->fname); |
163 | field->args = apr_pcalloc(cfg->pool, sizeof(char *) * (argc-4+1)); | 152 | field->args = apr_pcalloc(cfg->pool, sizeof(char *) * (argc-5+1)); |
164 | for (i=5; i<=argc; i++) { | 153 | for (i=6; i<=argc; i++) { |
165 | field->args[i-5] = apr_pstrdup(cfg->pool, argv[i]); | 154 | field->args[i-6] = apr_pstrdup(cfg->pool, argv[i]); |
166 | } | 155 | } |
167 | } | 156 | } |
168 | 157 | ||
@@ -208,6 +197,9 @@ void config_dump(config_t *cfg) | |||
208 | 197 | ||
209 | printf("InputDir: %s\n", cfg->input_dir); | 198 | printf("InputDir: %s\n", cfg->input_dir); |
210 | 199 | ||
200 | printf("DB Driver: %s\n", cfg->dbdriver); | ||
201 | printf("DB Params: %s\n", cfg->dbparams); | ||
202 | |||
211 | printf("Table: %s\n", cfg->table); | 203 | printf("Table: %s\n", cfg->table); |
212 | printf("Transactions: %d\n", cfg->transactions); | 204 | printf("Transactions: %d\n", cfg->transactions); |
213 | printf("MachineID: %s\n", cfg->machineid); | 205 | printf("MachineID: %s\n", cfg->machineid); |
@@ -231,7 +223,9 @@ void config_dump(config_t *cfg) | |||
231 | printf("Output Fields:\n"); | 223 | printf("Output Fields:\n"); |
232 | fields = (config_output_field_t *)cfg->output_fields->elts; | 224 | fields = (config_output_field_t *)cfg->output_fields->elts; |
233 | for (i=0; i<cfg->output_fields->nelts; i++) { | 225 | for (i=0; i<cfg->output_fields->nelts; i++) { |
234 | printf(">> %s %s(%d): %s", fields[i].field, logsql_field_datatyeName(fields[i].datatype), fields[i].size, fields[i].source); | 226 | printf(">> %s %s(%d) DEFAULT '%s': %s", fields[i].field, |
227 | logsql_field_datatyeName(fields[i].datatype), | ||
228 | fields[i].size, fields[i].def, fields[i].source); | ||
235 | if (fields[i].func) { | 229 | if (fields[i].func) { |
236 | printf(" :: %s(", fields[i].fname); | 230 | printf(" :: %s(", fields[i].fname); |
237 | if (fields[i].args) { | 231 | if (fields[i].args) { |
@@ -280,11 +274,10 @@ void config_init(apr_pool_t *p) | |||
280 | config_add_option(p, "InputFile", "Parse only this file", | 274 | config_add_option(p, "InputFile", "Parse only this file", |
281 | config_set_inputfile, NULL); | 275 | config_set_inputfile, NULL); |
282 | 276 | ||
283 | config_add_option(p, "DBConnect", | 277 | config_add_option(p, "DBDDriver", "DBD Driver to use", |
284 | "DB Connection information type://user:pass@hostname/database", | 278 | config_set_string, (void *)APR_OFFSETOF(config_t, dbdriver)); |
285 | config_set_dbconnect, NULL); | 279 | config_add_option(p, "DBDParams", "DBD Connection Parameters", |
286 | config_add_option(p, "DBParam", "DB Connection Parameter", | 280 | config_set_string, (void *)APR_OFFSETOF(config_t, dbparams)); |
287 | config_set_dbparam, NULL); | ||
288 | config_add_option(p, "Table", "Table to import the log to", | 281 | config_add_option(p, "Table", "Table to import the log to", |
289 | config_set_string, (void *)APR_OFFSETOF(config_t, table)); | 282 | config_set_string, (void *)APR_OFFSETOF(config_t, table)); |
290 | config_add_option(p, "UseTransactions", "Enable Transactions?", | 283 | config_add_option(p, "UseTransactions", "Enable Transactions?", |
@@ -330,7 +323,6 @@ config_t *config_create(apr_pool_t *p) | |||
330 | cfg->summary = 1; | 323 | cfg->summary = 1; |
331 | cfg->transactions = 1; | 324 | cfg->transactions = 1; |
332 | cfg->input_files = apr_array_make(cfg->pool, 10, sizeof(char *)); | 325 | cfg->input_files = apr_array_make(cfg->pool, 10, sizeof(char *)); |
333 | cfg->dbconfig = apr_table_make(cfg->pool, 5); | ||
334 | cfg->log_formats = apr_hash_make(cfg->pool); | 326 | cfg->log_formats = apr_hash_make(cfg->pool); |
335 | cfg->output_fields = apr_array_make(cfg->pool, 10, | 327 | cfg->output_fields = apr_array_make(cfg->pool, 10, |
336 | sizeof(config_output_field_t)); | 328 | sizeof(config_output_field_t)); |