Changeset 5a9b91bc0a14543e0995eba973fbeacc05aaee8b

Show
Ignore:
Timestamp:
07/09/08 16:47:24 (6 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1215622044 +0000
git-parent:

[4f6de158923dd98b2ae05e8152eb38ec6e6b9d1d]

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

svn merge -r 327:330 https://labs.omniti.com/reconnoiter/branches/dev/udns .

closes #38

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • configure.in

    rdeeaea6 r5a9b91b  
    250250 
    251251AC_FUNC_STRFTIME 
    252 AC_CHECK_FUNCS(ssetugid strlcpy strnstrn openpty) 
     252AC_CHECK_FUNCS(ssetugid strlcpy strnstrn openpty inet_pton inet_ntop getopt \ 
     253               poll) 
    253254 
    254255# Checks for header files. 
     
    505506src/jlog/Makefile 
    506507src/jlog/perl/Makefile.PL 
     508src/udns/Makefile 
    507509src/modules/Makefile 
    508510src/utils/Makefile 
  • src/Makefile.in

    r3277121 r5a9b91b  
    2828NOWHOLE_ARCHIVE=@NOWHOLE_ARCHIVE@ 
    2929 
    30 SUBS=lua utils eventer modules noitedit 
     30SUBS=lua utils eventer udns modules noitedit 
    3131 
    3232NOIT_OBJS=noitd.o noit_listener.o \ 
     
    6464noitd:  make-subdirs $(NOIT_OBJS) 
    6565        @$(CC) -o $@ $(NOIT_OBJS) \ 
     66                udns/libudns.o \ 
    6667                $(LDFLAGS) \ 
    6768                $(WHOLE_ARCHIVE) \ 
     
    7677stratcond:      make-subdirs $(STRATCON_OBJS) 
    7778        @$(CC) -o $@ $(STRATCON_OBJS) \ 
     79                udns/libudns.o \ 
    7880                $(LDFLAGS) \ 
    7981                $(WHOLE_ARCHIVE) \ 
  • src/modules/Makefile.in

    rc4546c7 r5a9b91b  
    1919 
    2020MODULES=ping_icmp.@MODULEEXT@ http.@MODULEEXT@ postgres.@MODULEEXT@ \ 
    21         lua.@MODULEEXT@
     21        lua.@MODULEEXT@ dns.@MODULEEXT@
    2222        @BUILD_MODULES@ 
    2323 
     
    4242postgres.lo:    postgres.c 
    4343        @$(CC) $(CPPFLAGS) $(SHCFLAGS) $(PGCFLAGS) -c $< -o $@ 
     44        @echo "- compiling $<" 
     45 
     46dns.@MODULEEXT@:        dns.lo 
     47        @$(MODULELD) $(LDFLAGS) -o $@ dns.lo 
     48        @echo "- linking $@" 
     49 
     50dns.lo: dns.c 
     51        @$(CC) $(CPPFLAGS) $(SHCFLAGS) -c $< -o $@ 
    4452        @echo "- compiling $<" 
    4553 
  • src/noit_check_tools.c

    rd993405 r5a9b91b  
    66#include "noit_defines.h" 
    77#include "noit_check_tools.h" 
     8#include "utils/noit_str.h" 
    89 
    910#include <assert.h> 
     
    1516} recur_closure_t; 
    1617 
    17 int 
     18static noit_hash_table interpolation_operators = NOIT_HASH_EMPTY; 
     19 
     20static int 
     21interpolate_oper_copy(char *buff, int len, const char *replacement) { 
     22  strlcpy(buff, replacement, len); 
     23  return strlen(buff); 
     24
     25 
     26API_EXPORT(int) 
     27noit_check_interpolate_register_oper_fn(const char *name, 
     28                                        intperpolate_oper_fn f) { 
     29  noit_hash_replace(&interpolation_operators, 
     30                    strdup(name), strlen(name), 
     31                    f, 
     32                    free, NULL); 
     33  return 0; 
     34
     35 
     36API_EXPORT(int) 
    1837noit_check_interpolate(char *buff, int len, const char *fmt, 
    1938                       noit_hash_table *attrs, 
     
    3958            if(*fmte == closer) { 
    4059              /* We have a full key here */ 
    41               const char *replacement; 
     60              const char *replacement, *oper, *nkey; 
     61              intperpolate_oper_fn oper_sprint; 
     62 
     63              /* keys can be of the form: :operator:key */ 
     64              oper = key; 
     65              if(*oper == ':' && 
     66                 (nkey = strnstrn(":", 1, oper + 1, fmte - key - 1)) != NULL) { 
     67                oper++; 
     68                /* find oper, nkey-oper */ 
     69                if(!noit_hash_retrieve(&interpolation_operators, 
     70                                       oper, nkey - oper, 
     71                                       (void **)&oper_sprint)) { 
     72                  /* else oper <- copy */ 
     73                  oper_sprint = interpolate_oper_copy; 
     74                } 
     75                nkey++; 
     76              } 
     77              else { 
     78                oper_sprint = interpolate_oper_copy; 
     79                nkey = key; 
     80              } 
    4281              if(!noit_hash_retrieve((closer == '}') ?  config : attrs, 
    43                                      key, fmte - key, (void **)&replacement)) 
     82                                     nkey, fmte - nkey, (void **)&replacement)) 
    4483                replacement = ""; 
    4584              fmt = fmte + 1; /* Format points just after the end of the key */ 
    46               strlcpy(cp, replacement, end-cp); 
    47               cp += strlen(cp); 
     85              cp += oper_sprint(cp, end-cp, replacement); 
     86              *(end-1) = '\0'; /* In case the oper_sprint didn't teminate */ 
    4887              replaced_something = 1; 
    4988              break; 
  • src/noit_check_tools.h

    r4b96846 r5a9b91b  
    1414 
    1515typedef int (*dispatch_func_t)(noit_module_t *, noit_check_t *); 
     16 
     17typedef int (*intperpolate_oper_fn)(char *, int len, const char *replacement); 
     18 
     19API_EXPORT(int) 
     20  noit_check_interpolate_register_oper_fn(const char *name, 
     21                                          intperpolate_oper_fn f); 
    1622 
    1723API_EXPORT(int) 
  • src/noit_config.h.in

    r5b8a066 r5a9b91b  
    103103#undef HAVE_STRNSTRN 
    104104#undef HAVE_OPENPTY 
     105#undef HAVE_INET_PTON 
     106#undef HAVE_INET_NTOP 
     107#undef HAVE_GETOPT 
     108#undef HAVE_POLL 
    105109 
    106110/* Kernel kqueue() support */ 
  • src/noit_defines.h

    rc4546c7 r5a9b91b  
    6565#endif 
    6666 
     67/* This is for udns */ 
     68#ifdef HAVE_INET_PTON 
     69#ifdef HAVE_INET_NTOP 
     70#define HAVE_INET_PTON_NTOP 1 
    6771#endif 
     72#endif 
     73/* udns checks for IPv6, noit doesn't work without it */ 
     74#define HAVE_IPv6 
     75 
     76#endif