Changeset 428

Show
Ignore:
Timestamp:
07/07/2005 10:39:14 PM (3 years ago)
Author:
jan
Message:

use log_* functions for debugging and don't segfault on evaluation

Location:
branches/lighttpd-1.3.x/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • branches/lighttpd-1.3.x/src/mod_cml.c

    r427 r428  
    3131        p->trigger_if      = buffer_array_init(); 
    3232        p->output_include  = buffer_array_init(); 
     33        p->params          = tnode_val_array_init(); 
    3334         
    3435        return p; 
     
    5455                free(p->config_storage); 
    5556        } 
     57         
     58        tnode_val_array_free(p->params); 
    5659         
    5760        buffer_array_free(p->eval); 
     
    290293        buffer_reset(p->trigger_handler); 
    291294         
     295        tnode_val_array_reset(p->params); 
     296         
    292297        if (buffer_is_empty(p->conf.ext)) return HANDLER_GO_ON; 
    293298         
  • branches/lighttpd-1.3.x/src/mod_cml.h

    r423 r428  
    7979int tnode_prepare_string(tnode *t); 
    8080 
     81tnode_val_array *tnode_val_array_init(); 
     82void tnode_val_array_free(tnode_val_array *tva); 
     83void tnode_val_array_reset(tnode_val_array *tva); 
     84 
    8185#define CACHE_FUNC_PROTO(x) int x(server *srv, connection *con, plugin_data *p, tnode *result) 
    8286 
  • branches/lighttpd-1.3.x/src/mod_cml_funcs.c

    r421 r428  
    3434         
    3535        if (p->params->ptr[0]->type != T_NODE_VALUE_STRING) { 
    36                 fprintf(stderr, "%s.%d: f_file_mtime: I need a string: %d\n",  
    37                         __FILE__, __LINE__, p->params->ptr[0]->type); 
     36                log_error_write(srv, __FILE__, __LINE__, "sd",  
     37                                "f_file_mtime: I need a string:",  
     38                                p->params->ptr[0]->type); 
    3839                 
    3940                return -1; 
     
    4748         
    4849        if (-1 == stat(b->ptr, &st)) { 
    49                 log_error_write(srv, __FILE__, __LINE__, "sbs", "trigger.if file.mtime():", b, strerror(errno)); 
     50                log_error_write(srv, __FILE__, __LINE__, "sbs",  
     51                                "trigger.if file.mtime():", b, strerror(errno)); 
    5052                 
    5153                buffer_free(b); 
     
    6567         
    6668        if (p->params->ptr[0]->type != T_NODE_VALUE_STRING) { 
    67                 fprintf(stderr, "%s.%d: f_mysql_escape: I need a string: %d\n",  
    68                         __FILE__, __LINE__, p->params->ptr[0]->type); 
     69                log_error_write(srv, __FILE__, __LINE__, "sd",  
     70                                "f_mysql_escape: I need a string:",  
     71                                p->params->ptr[0]->type); 
    6972                 
    7073                return -1; 
     
    8285         
    8386        if (p->params->ptr[0]->type != T_NODE_VALUE_STRING) { 
    84                 fprintf(stderr, "%s.%d: f_mysql_escape: I need a string: %d\n",  
    85                         __FILE__, __LINE__, p->params->ptr[0]->type); 
     87                log_error_write(srv, __FILE__, __LINE__, "sd",  
     88                                "f_mysql_query: I need a string:",  
     89                                p->params->ptr[0]->type); 
    8690                return -1; 
    8791        } 
  • branches/lighttpd-1.3.x/src/mod_cml_logic.c

    r427 r428  
    9292        free(tva); 
    9393} 
     94 
     95void tnode_val_array_reset(tnode_val_array *tva) { 
     96        size_t i; 
     97         
     98        if (!tva) return; 
     99         
     100        for (i = 0; i < tva->used; i++) { 
     101                tnode_val_free(tva->ptr[i]); 
     102        } 
     103         
     104        tva->used = 0; 
     105} 
     106 
    94107 
    95108tnode *tnode_init() { 
     
    330343                                         
    331344                                        if (0 != cache_parse_parameters(srv, con, p, br_open + 1, t->used - slen - 3, p->params)) { 
    332                                                 fprintf(stderr, "%s.%d: parsing parameters failed\n",  
    333                                                         __FILE__, __LINE__ 
    334                                                         ); 
     345                                                log_error_write(srv, __FILE__, __LINE__, "s",  
     346                                                                "parsing parameters failed"); 
     347                                                 
    335348                                                return -1; 
    336349                                        } 
    337350                                         
    338351                                        if (p->params->used != f[i].params) { 
    339                                                 fprintf(stderr, "%s.%d: wrong param-count for %s: %d, expected %d\n",  
    340                                                         __FILE__, __LINE__, 
    341                                                         f[i].name, 
    342                                                         p->params->used, 
    343                                                         f[i].params 
    344                                                         ); 
     352                                                log_error_write(srv, __FILE__, __LINE__, "sssdsd",  
     353                                                                "wrong param-count for", f[i].name, 
     354                                                                "got", p->params->used, 
     355                                                                "expected", f[i].params); 
    345356                                                return -1; 
    346357                                        } 
     
    348359                                         
    349360                                        if (0 != f[i].func(srv, con, p, n)) { 
    350                                                 fprintf(stderr, "%s.%d: function %s failed\n", __FILE__, __LINE__, f[i].name); 
     361                                                log_error_write(srv, __FILE__, __LINE__, "ss",  
     362                                                                "calling function failed for",  
     363                                                                f[i].name); 
    351364                                                return -1; 
    352365                                        } 
     
    363376                        if (*err != '\0') { 
    364377                                /* isn't a int */ 
    365                                 fprintf(stderr, "%s.%d: can't evaluate: '%s', '%s'\n",  
    366                                         __FILE__, __LINE__, 
    367                                         t->ptr, err); 
     378                                log_error_write(srv, __FILE__, __LINE__, "sss",  
     379                                                "can't evaluate:",  
     380                                                t->ptr, err); 
    368381                                 
    369382                                return -1;