rm -f util/configlexer.c util/configparser.c util/configparser.h
rm -f Makefile
-lint:
- $Qfor i in $(filter-out util/configparser.c,$(filter-out util/configlexer.c,$(sort $(ALL_SRC)))); do \
- echo lint $$i; \
- $(LINT) $(LINTFLAGS) -I. -I$(srcdir) -I$(ldnsdir)/include $(srcdir)/$$i ; \
- if [ $$? -ne 0 ] ; then exit 1 ; fi ; \
- done
+$(BUILD)%.lint: $(srcdir)/%.c
+ $(INFO) Lint $<
+ @if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi
+ $Q$(LINT) $(LINTFLAGS) -I. -I$(srcdir) -I$(ldnsdir)/include $<
+ $Qtouch $@
+
+lint: $(addprefix $(BUILD),$(filter-out util/configparser.lint,$(filter-out util/configlexer.lint,$(sort $(ALL_SRC:.c=.lint)))))
tags: $(srcdir)/*.[ch] $(srcdir)/*/*.[ch]
ctags -f $(srcdir)/tags $(srcdir)/*.[ch] $(srcdir)/*/*.[ch]
26 April 2007: Wouter
- floating point exception fix in lock-verify.
+ - lint uses make dependency
+ - fixup lint in dname owner domain name compression code.
+ - define for offset range that can be compressed to.
25 April 2007: Wouter
- prettier code; parse_rrset->type kept in host byte order.
/** error codes, extended with EDNS, so > 15. */
#define EDNS_RCODE_BADVERS 16 /** bad EDNS version */
+/** largest valid compression offset */
+#define PTR_MAX_OFFSET 0x3fff
/**
* EDNS data storage
if(closest) uplabs = labs - closest->labs;
log_assert(uplabs >= 0);
while(uplabs--) {
- if(offset > 0x3fff) { /* largest valid compr. offset */
+ if(offset > PTR_MAX_OFFSET) {
if(lastparentptr)
*lastparentptr = closest;
return 1; /* compression pointer no longer useful */
struct compress_tree_node* p;
int labs = dname_count_labels(rk->dname);
p = compress_tree_lookup(*tree, rk->dname, labs);
- if(p) {
+ if(p && p->offset <= PTR_MAX_OFFSET) {
/* compress it */
int labcopy = labs - p->labs;
size_t len = 0;
from += lablen;
}
/* insert compression ptr */
- ptr = 0xc000 | p->offset;
+ ptr = (uint16_t)(0xc000 | p->offset);
ptr = htons(ptr);
memmove(dat, &ptr, sizeof(ptr));
len += sizeof(ptr);