Changeset a136e6147196fd1969fa920391a6d55ed3975fde

Show
Ignore:
Timestamp:
02/22/08 03:33:54 (11 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1203651234 +0000
git-parent:

[e06b23eaa47ce975bd25ec9124c72ab282f7ae97]

git-author:
Theo Schlossnagle <jesus@omniti.com> 1203651234 +0000
Message:

rework a lot of config stuff, add docs in a bad place.. README.txt? come on Theo.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/Makefile.in

    rb7ec807 ra136e61  
    3030        noit_module.o noit_conf.o noit_tokenizer.o 
    3131 
    32 all:    noitd 
     32all:    noitd testcerts 
    3333 
    3434make-subdirs:   serf/.libs/libserf-0.a 
     
    6161        openssl req -key test.key -days 365 -new -out test.csr 
    6262 
    63 test.crt:       test.key test.crt 
     63test.crt:       test.key test.csr 
    6464        openssl x509 -req -in test.csr -signkey test.key -out test.crt 
    6565 
  • src/noit_conf.c

    rab565fa ra136e61  
    3939   * PLEASE: keep them alphabetically sorted. 
    4040   */ 
    41   { "/noit/modules/directory", MODULES_DIR }, 
     41  { "/noit/modules/@directory", MODULES_DIR }, 
    4242 
    4343  { NULL, NULL } 
     
    12631263  noit_conf_section_t *log_configs, *outlets; 
    12641264 
    1265   log_configs = noit_conf_get_sections(NULL, "/noit/logs/log", &cnt); 
    1266   noitL(noit_stderr, "Found %d /noit/logs/log stanzas\n", cnt); 
     1265  log_configs = noit_conf_get_sections(NULL, "/noit/logs//log", &cnt); 
     1266  noitL(noit_stderr, "Found %d /noit/logs//log stanzas\n", cnt); 
    12671267  for(i=0; i<cnt; i++) { 
    12681268    noit_log_stream_t ls; 
     
    12711271    noit_conf_boolean disabled; 
    12721272 
    1273     if(!noit_conf_get_stringbuf(log_configs[i], "@name", name, sizeof(name))) { 
     1273    if(!noit_conf_get_stringbuf(log_configs[i], 
     1274                                "ancestor-or-self::node()/@name", 
     1275                                name, sizeof(name))) { 
    12741276      noitL(noit_error, "log section %d does not have a name attribute\n", i+1); 
    12751277      exit(-1); 
    12761278    } 
    1277     if(!noit_conf_get_stringbuf(log_configs[i], "@type", type, sizeof(type))) { 
     1279    if(!noit_conf_get_stringbuf(log_configs[i], 
     1280                                "ancestor-or-self::node()/@type", 
     1281                                type, sizeof(type))) { 
    12781282      type[0] = '\0'; 
    12791283    } 
    1280     if(!noit_conf_get_stringbuf(log_configs[i], "@path", path, sizeof(path))) { 
     1284    if(!noit_conf_get_stringbuf(log_configs[i], 
     1285                                "ancestor-or-self::node()/@path", 
     1286                                path, sizeof(path))) { 
    12811287      path[0] = '\0'; 
    12821288    } 
    1283     config = noit_conf_get_hash(log_configs[i], "config/*"); 
     1289    config = noit_conf_get_hash(log_configs[i], 
     1290                                "ancestor-or-self::node()/config/*"); 
    12841291    ls = noit_log_stream_new(name, type[0] ? type : NULL, 
    12851292                             path[0] ? path : NULL, config); 
     
    12881295      exit(-1); 
    12891296    } 
    1290     if(noit_conf_get_boolean(log_configs[i], "@disabled", &disabled)) 
    1291       if(disabled) 
    1292         ls->enabled = 0; 
     1297 
     1298    noitL(noit_debug, "[%d] configuring log %s[%s:%s]\n", i, name, type, path); 
     1299 
     1300    if(noit_conf_get_boolean(log_configs[i], 
     1301                             "ancestor-or-self::node()/@disabled", 
     1302                             &disabled) && disabled) 
     1303      ls->enabled = 0; 
    12931304       
    1294     outlets = noit_conf_get_sections(log_configs[i], "outlet", &ocnt); 
     1305    outlets = noit_conf_get_sections(log_configs[i], 
     1306                                     "ancestor-or-self::node()/outlet", &ocnt); 
     1307    noitL(noit_debug, "found %d outlets for log '%s'\n", ocnt, name); 
     1308 
    12951309    for(o=0; o<ocnt; o++) { 
    12961310      noit_log_stream_t outlet; 
     
    12991313                              oname, sizeof(oname)); 
    13001314      outlet = noit_log_stream_find(oname); 
     1315      noitL(noit_debug, "log(%s) => log(%s)\n", name, oname); 
    13011316      if(!outlet) { 
    13021317        fprintf(stderr, "Cannot find outlet '%s' for %s[%s:%s]\n", oname, 
     
    13041319        exit(-1); 
    13051320      } 
    1306       noit_log_stream_add_stream(ls, outlet); 
     1321      else 
     1322        noit_log_stream_add_stream(ls, outlet); 
    13071323    } 
    13081324    if(outlets) free(outlets); 
  • src/noit_listener.c

    rb7ec807 ra136e61  
    4545 socketfail: 
    4646  eventer_remove_fd(e->fd); 
    47   close(e->fd); 
     47  e->opset->close(e->fd, &mask, e); 
    4848  return 0; 
    4949} 
     
    6464 socketfail: 
    6565    eventer_remove_fd(e->fd); 
    66     close(e->fd); 
     66    e->opset->close(e->fd, &mask, e); 
    6767    return 0; 
    6868  } 
  • src/noit_module.c

    r6550c57 ra136e61  
    2727  noit_module_t *module; 
    2828 
    29   if(!noit_conf_get_string(NULL, "/noit/modules/directory", &base)) 
     29  if(!noit_conf_get_string(NULL, "/noit/modules/@directory", &base)) 
    3030    base = strdup(""); 
    3131 
     
    8383  int i, cnt = 0; 
    8484 
    85   sections = noit_conf_get_sections(NULL, "/noit/modules/module", &cnt); 
     85  sections = noit_conf_get_sections(NULL, "/noit/modules//module", &cnt); 
    8686  if(!sections) return; 
    8787  for(i=0; i<cnt; i++) { 
     
    9090    char module_file[PATH_MAX]; 
    9191    char module_name[256]; 
    92     if(!noit_conf_get_stringbuf(sections[i], "image", 
     92    if(!noit_conf_get_stringbuf(sections[i], "ancestor-or-self::node()/@image", 
    9393                                module_file, sizeof(module_file))) { 
    9494      noitL(noit_stderr, "No image defined in module stanza %d\n", i+1); 
    9595      continue; 
    9696    } 
    97     if(!noit_conf_get_stringbuf(sections[i], "name", 
     97    if(!noit_conf_get_stringbuf(sections[i], "ancestor-or-self::node()/@name", 
    9898                                module_name, sizeof(module_name))) { 
    9999      noitL(noit_stderr, "No name defined in module stanza %d\n", i+1); 
  • src/noitd.c

    r1648bed ra136e61  
    7777 
    7878  /* Lastly, run through all other system inits */ 
    79   if(!noit_conf_get_stringbuf(NULL, "/noit/eventer/implementation", 
     79  if(!noit_conf_get_stringbuf(NULL, "/noit/eventer/@implementation", 
    8080                              conf_str, sizeof(conf_str))) { 
    8181    noitL(noit_stderr, "Cannot find '%s' in configuration\n", 
    82           "/noit/eventer/implementation"); 
     82          "/noit/eventer/@implementation"); 
    8383    exit(-1); 
    8484  } 
  • src/sample.conf

    rb7ec807 ra136e61  
    11<?xml version="1.0" encoding="utf8" standalone="yes"?> 
    22<noit> 
    3   <eventer> 
    4     <implementation>kqueue</implementation> 
     3  <eventer implementation="kqueue" > 
    54    <config> 
    65      <default_queue_threads>10</default_queue_threads> 
     
    87  </eventer> 
    98  <logs> 
    10     <log name="error"
     9    <console_output
    1110      <outlet name="stderr" /> 
    12     </log> 
    13     <log name="debug" disabled="true"> 
    14       <outlet name="stderr" /> 
    15     </log> 
     11      <log name="error" /> 
     12      <log name="debug" disabled="true" /> 
     13    </console_output> 
    1614    <!--<log name="feed" type="jlog" path="/var/log/noitd.feed" />--> 
    1715    <log name="feed"><outlet name="stderr"/></log> 
    18     <log name="check"
     16    <feeds
    1917      <outlet name="feed" /> 
    20     </log> 
    21     <log name="status"> 
    22       <outlet name="feed" /> 
    23     </log> 
    24     <log name="metrics"> 
    25       <outlet name="feed" /> 
    26     </log> 
     18      <log name="check"> 
     19        <outlet name="error" /> 
     20      </log> 
     21      <log name="status" /> 
     22      <log name="metrics" /> 
     23    </feeds> 
    2724  </logs> 
    28   <modules> 
    29     <directory>./modules</directory> 
    30     <module> 
    31       <image>ping_icmp</image> 
    32       <name>ping_icmp</name> 
    33       <config> 
    34         <key1>value2</key1> 
    35         <key2>value2</key2> 
    36       </config> 
    37     </module> 
    38     <module> 
    39       <image>http</image> 
    40       <name>resmon</name> 
    41     </module> 
    42     <module> 
    43       <image>http</image> 
    44       <name>resmon_part</name> 
    45     </module> 
    46     <module> 
    47       <image>http</image> 
    48       <name>http</name> 
    49     </module> 
     25  <modules directory="./modules"> 
     26    <module image="ping_icmp" name="ping_icmp" /> 
     27    <http image="http"> 
     28      <module name="resmon" /> 
     29      <module name="resmon_part" /> 
     30      <module name="http" />> 
     31    </http> 
    5032  </modules> 
    5133  <listeners> 
  • src/utils/noit_log.c

    r31a4ef4 ra136e61  
    152152  ls->enabled = 1; 
    153153  ls->config = config; 
    154   if(noit_hash_store(&noit_loggers, ls->name, strlen(ls->name), ls) == 0) { 
     154  /* This double strdup of ls->name is needed, look for the next one 
     155   * for an explanation. 
     156   */ 
     157  if(noit_hash_store(&noit_loggers, 
     158                     strdup(ls->name), strlen(ls->name), ls) == 0) { 
    155159    free(ls->name); 
    156160    free(ls); 
     
    192196  } 
    193197  else 
    194     if(noit_hash_store(&noit_loggers, ls->name, strlen(ls->name), ls) == 0) 
     198    /* We strdup the name *again*.  We'going to kansas city shuffle the 
     199     * ls later (see memcpy above).  However, if don't strdup, then the 
     200     * noit_log_stream_free up there will sweep our key right our from 
     201     * under us. 
     202     */ 
     203    if(noit_hash_store(&noit_loggers, 
     204                       strdup(ls->name), strlen(ls->name), ls) == 0) 
    195205      goto freebail; 
    196206 
     
    198208 
    199209 freebail: 
    200     free(ls->name); 
    201     if(ls->path) free(ls->path); 
    202     free(ls); 
    203     return NULL; 
     210  fprintf(stderr, "Failed to instantiate logger(%s,%s,%s)\n", 
     211          name, type ? type : "[null]", path ? path : "[null]"); 
     212  free(ls->name); 
     213  if(ls->path) free(ls->path); 
     214  free(ls); 
     215  return NULL; 
    204216} 
    205217