chiark / gitweb /
adns.git
5 years agosrc/query.c: Export adns__cancel_children.
Mark Wooding [Sat, 7 Jun 2014 21:21:29 +0000 (22:21 +0100)]
src/query.c: Export adns__cancel_children.

We'll want this later.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/query.c: New function `adns__free_interim' for releasing memory.
Mark Wooding [Sat, 7 Jun 2014 21:29:28 +0000 (22:29 +0100)]
src/query.c: New function `adns__free_interim' for releasing memory.

Useful, for example, if you're growing a dynamically allocated array.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Track sizes of interim-allocated blocks.
Mark Wooding [Sat, 7 Jun 2014 18:47:28 +0000 (19:47 +0100)]
src/: Track sizes of interim-allocated blocks.

Now callers don't need to keep track of them by hand, which is annoying
and fiddly.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Support for transport over IPv6 (and other protocol families).
Mark Wooding [Thu, 5 Jun 2014 09:24:23 +0000 (10:24 +0100)]
src/: Support for transport over IPv6 (and other protocol families).

We create a UDP socket for each distinct protocol family during
initialization, and then use the appropriate one for each server.  The
changes are somewhat invasive, but not really very complicated.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoregress/: Include the protocol family in socket(2) lines.
Mark Wooding [Fri, 6 Jun 2014 09:40:28 +0000 (10:40 +0100)]
regress/: Include the protocol family in socket(2) lines.

I updated the test files with this rune:

grep -lZ "^ socket type=" *.sys | xargs -0r sed -i \
  's/^ socket type=/ socket domain=PF_INET type=/'

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoregress/: Use adns_addr2text/text2addr instead of inet_aton/ntoa.
Mark Wooding [Wed, 28 May 2014 22:52:34 +0000 (23:52 +0100)]
regress/: Use adns_addr2text/text2addr instead of inet_aton/ntoa.

Makes the test harness agnostic regarding address families.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Support IPv6 reverse queries.
Mark Wooding [Sat, 24 May 2014 13:00:03 +0000 (14:00 +0100)]
src/: Support IPv6 reverse queries.

This involves moving most of the label parser in ckl_ptr, and the
reverse-domain constructor, into addrfam and teaching them about IPv6.

The label parser is a little tricky because it involves keeping track of
a parse state for each possible address family until we run out of
possibilities or the parse is complete.

Moving the reverse-domain constructor introduces a slightly unpleasant
hack: because knowledge of the right reverse-lookup zone belongs in
addrfam, we get adns_submit_reverse to pass a sentinel through
_reverse_any to addrfam.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/, client/: Support for AAAA lookups.
Mark Wooding [Sat, 24 May 2014 13:00:03 +0000 (14:00 +0100)]
src/, client/: Support for AAAA lookups.

I've added a couple of simple test cases.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/, client/: Use the new adns_text2addr/addr2text functions.
Mark Wooding [Sat, 24 May 2014 13:00:03 +0000 (14:00 +0100)]
src/, client/: Use the new adns_text2addr/addr2text functions.

The sortlist is now IPv6 aware.  The nameserver configuration could cope
with IPv6 addresses, but the transport machinery can't, so we pick them
out by hand.  PTR reverse-query handling still doesn't do anything
special, because we don't have AAAA query support yet.

I've also hacked adnshost's `-i' and `--reverse' options to use the new
functions, and they'll accept IPv6 addresses, but the underlying
adns_submit_reverse machinery will reject them still.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/addrfam.c (adns_addr2text): Don't print junk in debugging output.
Mark Wooding [Sat, 24 May 2014 13:00:03 +0000 (14:00 +0100)]
src/addrfam.c (adns_addr2text): Don't print junk in debugging output.

At the point we print `adns_addr2text: will print scoped addr ...' the
buffer isn't null-terminated.  Fortunately, we have the length of the
valid portion of the buffer, so use that to print only the good piece.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoNew public-facing functions for address/text conversions.
Ian Jackson [Tue, 3 Jun 2014 19:42:01 +0000 (20:42 +0100)]
New public-facing functions for address/text conversions.

The usual functions for doing these conversions are getaddrinfo(3) and
getnameinfo(3).  Unfortunately, these seem generally to be rather buggy
(with different bugs on different platforms).  For example, the Linux
glibc implementation tries to do complicated things with AF_NETLINK
sockets even though it's only going to do a simple syntactic
transformation.

So we provide our own versions, which only handle conversions between
addresses and their text numerical representations (and don't try to do
anything complicated with DNS).

For compatibility, the functions handle various crazy things which are
generally undesirable:

  * traditional IPv4 text conversions allow degenerate forms A, A.B and
    A.B.C, where the host part is given as a simple number rather than
    being split into octets;

  * traditional IPv4 text conversions allow the individual components to
    be given in bases other than 10, using the usual C prefixes;

  * IPv6 socket addresses (but, annoyingly, not `struct in6_addr') have
    a `scope-id' field (which actually identifies what RFC4007 calls a
    `zone', i.e., the namespace in which the address should be
    interpreted), and these are described by a `%...' suffix; and

  * the `scope-id' may be a name, though the syntax and meaning of such
    names isn't defined anywhere except for the link-local scope, where
    the names and numbers are interface names and indices, which need to
    be looked up.

All of this means that there are a number of options and unfortunate
error conditions, which make the interface more complicated than is
really ideal.

[Code by iwj; commit message and merging by mdw.]

5 years agosrc/addrfam.c, src/...: Abstract out address-family-specific details.
Mark Wooding [Sat, 24 May 2014 13:00:03 +0000 (14:00 +0100)]
src/addrfam.c, src/...: Abstract out address-family-specific details.

Functions which know about the internals of particular address types and
socket-address structures live in a new file `addrfam.c'.

Some details aren't handled yet: notably, we don't have conversions
between internal address structures and external formats such as text
strings or reverse-lookup domain names.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Fix internals to carry around address families.
Mark Wooding [Tue, 3 Jun 2014 09:27:38 +0000 (10:27 +0100)]
src/: Fix internals to carry around address families.

This is preparatory work for IPv6 support, but there isn't any yet.
The code still acts directly on address structures (having asserted that
the family is AF_INET); switching on the address family is for later.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/adns.h, src/types.c: Now adns_rr_addr can hold a sockaddr_in6.
Mark Wooding [Sun, 1 Jun 2014 00:20:47 +0000 (01:20 +0100)]
src/adns.h, src/types.c: Now adns_rr_addr can hold a sockaddr_in6.

This uses the recently introduced variable-size record structure
machinery so that only clients compiled against the new header file see
the larger record structure.

Note that we don't even try to actually do lookups for IPv6 addresses.
That will come later on.  This is just about sorting out the binary
interface.

Arrange that regress/case-brokenmail.sys asks for the correct record
size, because otherwise the answers get printed out wrongly.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoBodge adns_r_addr query-id selection and fix regression tests to match.
Mark Wooding [Fri, 30 May 2014 20:04:19 +0000 (21:04 +0100)]
Bodge adns_r_addr query-id selection and fix regression tests to match.

A future change is going to change how query-ids are allocated for
adns_r_addr queries.  So here we apply a simple bodge which will produce
the same allocation pattern, but without the complexity of the rest of
the change, and fix the test suite to match.

I used the script regress/hack-query-ids to help me modify the
case-*.sys files, though this was primarily a rather tedious manual
process.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Lay the groundwork for variably-sized record structures.
Mark Wooding [Sat, 31 May 2014 23:13:20 +0000 (00:13 +0100)]
src/: Lay the groundwork for variably-sized record structures.

All records in a particular answer are going to be the same size: that's
not going to change.  The case we're dealing with here is that we're
going to want to include new information (e.g., new kinds of address
families) which will make the structures larger -- and would break old
binary clients.

The plan is for new clients to encode a flag saying that they understand
the extended structure in the type field (implicitly, through a header-
file change).  But all of this means that just dredging `typei->rrsz'
out of the typeinfo structure isn't going to cut it any more, so we add
a type hook to compute the right size, and make sure that we use it by
renaming the slot containing the fixed value.  Most places in the code
can avoid having to call the hook by grabbing the record size from the
answer structure.

This involves adding an extra parameter to the postsort hook, which
otherwise might not be able to determine the right size for itself.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Pass the wanted query's type code to adns__internal_submit.
Mark Wooding [Sat, 7 Jun 2014 18:38:01 +0000 (19:38 +0100)]
src/: Pass the wanted query's type code to adns__internal_submit.

This has two effects.  Firstly, we can propagate non-representation bits
(e.g., compatibility flags) from parent to child query.  Secondly, we
can have a single typeinfo handle several different low-level record
types.  The former is going to pay off very soon; the latter will take a
bit longer, but it'll be worth it.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Carve out a `representation' subfield of adns_rrtype.
Mark Wooding [Sat, 31 May 2014 23:48:59 +0000 (00:48 +0100)]
src/: Carve out a `representation' subfield of adns_rrtype.

Only the bits covered by adns_rrt_reprmask are used in translating a
query type into a typeinfo structure.

Arrange for adnstest to only print out the representation bits of the
type; otherwise lots of the regression test files need to change for no
especially good reason.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: PTR queries now submit A subqueries, not `addr'.
Mark Wooding [Sun, 1 Jun 2014 10:07:07 +0000 (11:07 +0100)]
src/: PTR queries now submit A subqueries, not `addr'.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/types.c, regress/: Use checklabel hook to parse PTR query domains.
Mark Wooding [Sun, 1 Jun 2014 20:50:59 +0000 (21:50 +0100)]
src/types.c, regress/: Use checklabel hook to parse PTR query domains.

A PTR with forward-lookup checking needs to parse the original question
into an address, so as to have something to compare the results of the
forward queries against.  Previously this was done in pa_ptr, when the
first PTR answer came in.  But parsing can fail, and is a simple
syntactic computation on the input domain name, so it seems rather
unfortunate to delay checking the name until an answer has come in.  Now
that we have the checklabel hook, then, we might as well use it here.
(Indeed, this is in fact the reason for introducing it.)

Unfortunately, this check now rejects a number of queries early, which
previously would have resulted in a query and maybe a NODATA or NXDOMAIN
answer, but in exactly the way we just rigged all of the test cases.  So
we remove the temporary hack to adns_submit and everything stays good.
Right?

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/, regress/: Prepare for early failures in PTR queries.
Mark Wooding [Sat, 7 Jun 2014 11:26:46 +0000 (12:26 +0100)]
src/, regress/: Prepare for early failures in PTR queries.

Soon we're going to change the way adns_r_ptr queries work: in
particular, queries with names which can't be parsed back into addresses
will be rejected during submission rather than waiting for the answer to
the initial PTR question to come back.

So here we apply a really simple temporary hack to adns_submit which
approximately captures the behaviour we're after, and adjust the various
test cases to match.  We'll take this hack out when we make the proper
change to the PTR handling.

Hopefully this will persuade reviewers that there's nothing up my
sleeves while I mess with the regression tests.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoregress/r1test: Support a `$debug' prefix variable.
Mark Wooding [Sat, 31 May 2014 22:05:19 +0000 (23:05 +0100)]
regress/r1test: Support a `$debug' prefix variable.

Amazingly, sometimes the tests don't pass.  When that happens, it's
handy to be able to debug the library and find out why.

It's a little tricky to attach GDB to the running process directly.  I
used the following:

$ debug="noip gdbserver localhost:666" ./r1test CASE

and then, in another terminal, something like

$ noip gdb adnstest_s
(gdb) target remote localhost:666

to debug the program.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Change how query domain names are checked.
Mark Wooding [Sat, 31 May 2014 16:26:34 +0000 (17:26 +0100)]
src/: Change how query domain names are checked.

The `qdparselabel' hook is no more.  Unescaping of the query domain is
now done in one place, and always in the same way.  Checking of the
domain name is done through a new `checklabel' hook, with a more
convenient interface.

The checklabel hook does not have the original possibly-escaped version
of the query domain available to it; it can only check the name being
submitted on the wire, not the form in which it was provided to the
library.  This eliminates the inconsistency in SRV record handling,
where

\095http._tcp.distorted.org.uk

is acceptable, but

_\104ttp._tcp.distorted.org.uk

is not.  It also now prohibits SRV queries on `_wrong', which I think
was always intended but didn't actually work.

All queries are checked, including internally generated ones, so this
can be used to store information about the query domain for later use,
so we let the hook store information in the qcontext structure.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: adns__internal_submit can modify ctx->tinfo.
Mark Wooding [Sat, 31 May 2014 17:56:42 +0000 (18:56 +0100)]
src/: adns__internal_submit can modify ctx->tinfo.

It will be convenient for type hooks to store information in their part
of the query context before the query is properly established.  We could
have adns__internal_submit make a copy of the caller's context, but it
turns out that none of them actually care if we change it.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/internal.h: Hoist the qcontext definition to before typeinfo.
Mark Wooding [Sat, 31 May 2014 15:37:48 +0000 (16:37 +0100)]
src/internal.h: Hoist the qcontext definition to before typeinfo.

So that typeinfo functions can have argument types which involve the
qcontext structure.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/types.c: Rearrange the main typeinfo table.
Mark Wooding [Sat, 31 May 2014 14:24:41 +0000 (15:24 +0100)]
src/types.c: Rearrange the main typeinfo table.

Kill XTRA_TYPE, which won't scale at all well as new features are added
to the typeinfo structure.  Instead, allow additional arguments to
FLAT/DEEP_TYPE, which are used to carry designated initializers for the
more unusual fields.

I took the opportunity to factor out some common prefixes in the names
of the functions listed in the table, which gives us some additional
horizontal space.  This will come in useful later.

All of this involves a little nontrivial macrology, now in internal.h.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoregress/: Don't track the size of the socket-address buffer in recvfrom(3).
Mark Wooding [Wed, 28 May 2014 22:26:37 +0000 (23:26 +0100)]
regress/: Don't track the size of the socket-address buffer in recvfrom(3).

This is system specific, and (more annoyingly) will break the tests if
additional address families are supported in the future.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/: Separate context state into parts for the type itself and its parent.
Mark Wooding [Sun, 25 May 2014 15:57:41 +0000 (16:57 +0100)]
src/: Separate context state into parts for the type itself and its parent.

The `qcontext.info' union has two distinct uses.  A PTR query uses it to
store the initial query address, against which it compares the answer to
its child A query.  On the other hand, `pap_hostaddr' uses this space in
each child query it makes, to keep track of where to put the socket
addresses when the answers come back.

These two kinds of uses are incompatible, so split `qcontext.info' into
two pieces: one for the internal use of a query type, and one for the
use of a child query's parent -- and specifically for its completion
callback.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/types.c: Fix up the table-of-contents comments.
Mark Wooding [Mon, 9 Jun 2014 09:41:33 +0000 (10:41 +0100)]
src/types.c: Fix up the table-of-contents comments.

Cheesy but useful sed(1) rune:

sed -n '
  /order of sections/,/\*\//d
  /^ \* _/s///p
  /^static \+[a-z0-9_]\+ \+\**\([0-9a-z_]\+\).*$/s//  \1/p'

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoclient/adh-query.c: Surprising comma rather than semicolon.
Mark Wooding [Sat, 7 Jun 2014 23:01:46 +0000 (00:01 +0100)]
client/adh-query.c: Surprising comma rather than semicolon.

This doesn't change the meaning of the code, but it's really surprising.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/adns-internal.h: Kill decoy internal header file.
Mark Wooding [Sat, 31 May 2014 14:07:44 +0000 (15:07 +0100)]
src/adns-internal.h: Kill decoy internal header file.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/internal.h: Delete decoy type `rr_align'.
Mark Wooding [Sat, 7 Jun 2014 17:02:53 +0000 (18:02 +0100)]
src/internal.h: Delete decoy type `rr_align'.

The droid you were looking for is called `union maxalign'.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/types.c: Remove some unused macros.
Mark Wooding [Sat, 31 May 2014 14:05:17 +0000 (15:05 +0100)]
src/types.c: Remove some unused macros.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoRemove unused variables.
Mark Wooding [Sat, 24 May 2014 13:00:03 +0000 (14:00 +0100)]
Remove unused variables.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/setup.c: Check netmask more carefully.
Mark Wooding [Sat, 3 May 2014 14:35:29 +0000 (15:35 +0100)]
src/setup.c: Check netmask more carefully.

[crybaby ~/src/adns/build]RES_CONF_TEXT="sortlist 172.29.199.1/24" RES_OPTIONS="adns_checkc:entex" adnshost -ta www-cache.distorted.org.uk
adnshost: ../src/check.c:83: checkc_global: Assertion `!(ads->sortlist[i].base.s_addr & ~ads->sortlist[i].mask.s_addr)' failed.
Aborted

Unfortunately, `ccf_sortlist' only checked that the free bits of the
network address are clear when given a general netmask, so if you give a
prefix length or leave it implicit then you hit a consistency check
failure later.

Check the mask later on, after all of the variants are handled.  There's
a little bit of variation in the message.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agosrc/setup.c: Insert missing parentheses.
Mark Wooding [Sat, 24 May 2014 13:00:03 +0000 (14:00 +0100)]
src/setup.c: Insert missing parentheses.

Found from GCC warning.  This code never worked.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years agoHacking to make out-of-tree builds work properly.
Mark Wooding [Sat, 26 Apr 2014 13:22:11 +0000 (14:22 +0100)]
Hacking to make out-of-tree builds work properly.

This is mostly standard.  The regression-test scripts have had an
interface enhancement: they will look for source-like files using the
$srcdir environment variable, which defaults to `.' for compatibility.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
5 years ago.gitignore: Add subdirectories' .cvsignores
Ian Jackson [Mon, 5 May 2014 16:15:29 +0000 (17:15 +0100)]
.gitignore: Add subdirectories' .cvsignores

 egrep . */.cvsignore | perl -pe 's#/\.cvsignore:#/#' >>.gitignore
 git-rm */.cvsignore

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years ago.gitignore: Add *.o *.so *.a and *~
Ian Jackson [Mon, 5 May 2014 16:14:47 +0000 (17:14 +0100)]
.gitignore: Add *.o *.so *.a and *~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years ago.gitignore: Rename from .cvsignore
Ian Jackson [Mon, 5 May 2014 16:13:51 +0000 (17:13 +0100)]
.gitignore: Rename from .cvsignore

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
5 years agoCVS to git conversion cvs-to-git-conversion
Ian Jackson [Mon, 5 May 2014 16:07:54 +0000 (17:07 +0100)]
CVS to git conversion

Record the scripts etc. we used (and their history) for posterity,
by binding them into the history.

5 years agomake script's actual tag anyway
Ian Jackson [Mon, 5 May 2014 16:03:30 +0000 (17:03 +0100)]
make script's actual tag anyway

5 years agomerge the script's history into the generated history
Ian Jackson [Mon, 5 May 2014 16:02:07 +0000 (17:02 +0100)]
merge the script's history into the generated history

5 years agoMerge remote-tracking branch 'mdw/mdw/convert-script'
Ian Jackson [Wed, 30 Apr 2014 17:34:39 +0000 (18:34 +0100)]
Merge remote-tracking branch 'mdw/mdw/convert-script'

"iwj's original" 8298cc36e3a7eef91f722e7115ea8b5a9366fb55
is actually identical to 8e04e8e83b27a61d1471c81de5f8aabe29dda30a
apart from the .gitignore

Conflicts:
convert

5 years agofix
Ian Jackson [Wed, 30 Apr 2014 17:25:58 +0000 (18:25 +0100)]
fix

5 years agoDiff the changelog by hand if the commit message is `empty'.
Mark Wooding [Tue, 29 Apr 2014 23:37:13 +0000 (00:37 +0100)]
Diff the changelog by hand if the commit message is `empty'.

5 years agoWrap long single-line comment messages.
Mark Wooding [Tue, 29 Apr 2014 23:20:26 +0000 (00:20 +0100)]
Wrap long single-line comment messages.

5 years agoAvoid printing removed lines unless necessary; avoid version headers.
Mark Wooding [Tue, 29 Apr 2014 23:13:28 +0000 (00:13 +0100)]
Avoid printing removed lines unless necessary; avoid version headers.

5 years agoUse `git mumble' consistently in place of `git-mumble'.
Mark Wooding [Tue, 29 Apr 2014 23:03:45 +0000 (00:03 +0100)]
Use `git mumble' consistently in place of `git-mumble'.

Newer versions of Git don't leave the implementations on the PATH.

5 years agoiwj's original.
Mark Wooding [Tue, 29 Apr 2014 23:02:14 +0000 (00:02 +0100)]
iwj's original.

5 years agoscript is in new location
Ian Jackson [Tue, 29 Apr 2014 19:42:42 +0000 (20:42 +0100)]
script is in new location

5 years agomerge rather than abandon pollfds
Ian Jackson [Tue, 29 Apr 2014 19:42:22 +0000 (20:42 +0100)]
merge rather than abandon pollfds

5 years agomove graftmergein (nfc)
Ian Jackson [Tue, 29 Apr 2014 19:40:12 +0000 (20:40 +0100)]
move graftmergein (nfc)

5 years agotidy up a bit
Ian Jackson [Tue, 29 Apr 2014 19:39:32 +0000 (20:39 +0100)]
tidy up a bit

5 years agofound
Ian Jackson [Tue, 29 Apr 2014 19:39:03 +0000 (20:39 +0100)]
found

5 years agoFOUND on davenant
ian [Wed, 16 Apr 2014 23:47:02 +0000 (23:47 +0000)]
FOUND on davenant
/u/ian/things/Adns/adns
-rw-rw-r-- 1 ian ian 12465 Oct 18  2006 client/adnsresfilter.c

5 years agoFOUND on davenant
ian [Wed, 16 Apr 2014 23:46:09 +0000 (23:46 +0000)]
FOUND on davenant
/u/ian/things/Adns/adns
-rw-r--r-- 1 ian ian 9594 Jan  2  2007 README.html

12 years agofinalise version 1.4 rel-adns-1-4
ian [Tue, 17 Oct 2006 16:15:19 +0000 (16:15 +0000)]
finalise version 1.4

12 years ago+ Improvements for multithreaded programs:
ian [Wed, 9 Aug 2006 11:16:59 +0000 (11:16 +0000)]
+  Improvements for multithreaded programs:

@@ -1,3 +1,14 @@
+adns (1.3.0.99.1); urgency=low
+
+  Improvements for multithreaded programs:
+  * New documentation comment in adns.h explaining thread guarantees
+    (or lack of them), replaces `single-threaded' note at the top.
+  * Fix string conversion of adns_r_addr not to use a static buffer
+    (function csp_addr) so as to make thread promise true.
+  * Make an internal variable const-correct (expectdomain in pa_ptr).
+
+ --
+
 adns (1.3); urgency=low

   Portability fixes:

13 years agoMINOR=3 rel-adns-1-3
ian [Tue, 6 Jun 2006 19:38:16 +0000 (19:38 +0000)]
MINOR=3

13 years agoget rid of junk file x.gdb
ian [Tue, 6 Jun 2006 19:37:17 +0000 (19:37 +0000)]
get rid of junk file x.gdb

13 years agoDISTVERSION 1.3
ian [Tue, 6 Jun 2006 19:27:17 +0000 (19:27 +0000)]
DISTVERSION 1.3

13 years agofinalise adns 1.3
ian [Tue, 6 Jun 2006 19:23:34 +0000 (19:23 +0000)]
finalise adns 1.3

13 years ago+ * Do away with `mismatch' variable in parse.c:adns__findrr_anychk so that
ian [Tue, 6 Jun 2006 19:20:30 +0000 (19:20 +0000)]
+  * Do away with `mismatch' variable in parse.c:adns__findrr_anychk so that

@@ -10,6 +10,9 @@
     (Report from Mihai Ibanescu.)
+  * Do away with `mismatch' variable in parse.c:adns__findrr_anychk so that
+    overzealous GCC cannot complain about members of eo_fls being
+    uninitialised.  (Report from Jim Meyering.)

13 years ago+ Portability fixes:
ian [Wed, 10 May 2006 10:58:02 +0000 (10:58 +0000)]
+  Portability fixes:

@@ -1,13 +1,15 @@
 adns (1.3); urgency=low

-  Bugfixes:
-  * In configure.in, quote macro name argument to define() to
-    suppress spurious autoconf error.  (Report from Mihai Ibanescu.)
+  Portability fixes:
   * Cast ptrdiff_t to int for %.*s length in adnsheloex and adnslogres,
     as is required.  (Report from Jim Meyering.)
-  * Use autoconf's values for {bin,lib,include}_dir rather than inventing
+  * In configure.in, quote macro name argument to define() to
+    suppress spurious autoconf error.  (Report from Mihai Ibanescu.)
+  * Use autoconf's values for {bin,lib,include}dir rather than inventing
     our own from @exec_prefix@, making configure --libdir work.
     (Patch from Mihai Ibanescu.)
+  * Remove spurious `_' from {bin,lib,include}dir Makefile variables.
+    (Report from Mihai Ibanescu.)

  --

13 years ago+ * Use autoconf's values for {bin,lib,include}_dir rather than inventing
ian [Tue, 9 May 2006 19:43:07 +0000 (19:43 +0000)]
+  * Use autoconf's values for {bin,lib,include}_dir rather than inventing

@@ -5,6 +5,9 @@
     as is required.  (Report from Jim Meyering.)
+  * Use autoconf's values for {bin,lib,include}_dir rather than inventing
+    our own from @exec_prefix@, making configure --libdir work.
+    (Patch from Mihai Ibanescu.)

13 years ago+ * Cast ptrdiff_t to int for %.*s length in adnsheloex and adnslogres,
ian [Tue, 9 May 2006 19:37:58 +0000 (19:37 +0000)]
+  * Cast ptrdiff_t to int for %.*s length in adnsheloex and adnslogres,

@@ -3,6 +3,8 @@
     suppress spurious autoconf error.  (Report from Mihai Ibanescu.)
+  * Cast ptrdiff_t to int for %.*s length in adnsheloex and adnslogres,
+    as is required.  (Report from Jim Meyering.)

13 years ago+ Bugfixes:
ian [Tue, 9 May 2006 19:31:03 +0000 (19:31 +0000)]
+  Bugfixes:

@@ -1,3 +1,11 @@
+adns (1.3); urgency=low
+
+  Bugfixes:
+  * In configure.in, quote macro name argument to define() to
+    suppress spurious autoconf error.  (Report from Mihai Ibanescu.)
+
+ --
+
 adns (1.2); urgency=medium

   New features:

13 years agochangelog version finalised, 1.2 rel-adns-1-2
ian [Sat, 8 Apr 2006 14:41:39 +0000 (14:41 +0000)]
changelog version finalised, 1.2

13 years agoupdate DISTVERSION
ian [Sat, 8 Apr 2006 14:37:21 +0000 (14:37 +0000)]
update DISTVERSION

13 years agoupdate copyright dates
ian [Sat, 8 Apr 2006 14:36:57 +0000 (14:36 +0000)]
update copyright dates

13 years agoupdate copyright dates and ADNS_VERSION_STRING
ian [Sat, 8 Apr 2006 14:36:23 +0000 (14:36 +0000)]
update copyright dates and ADNS_VERSION_STRING

13 years agorestructured and improved changelog
ian [Sat, 8 Apr 2006 14:09:41 +0000 (14:09 +0000)]
restructured and improved changelog

13 years agoA few more links for the README.
ian [Sat, 8 Apr 2006 14:01:14 +0000 (14:01 +0000)]
A few more links for the README.

13 years agolicence waiver section improved
ian [Sat, 8 Apr 2006 13:16:34 +0000 (13:16 +0000)]
licence waiver section improved

13 years agofix up adnstest for r_unknown; tests for r_unknown
ian [Fri, 7 Apr 2006 00:51:47 +0000 (00:51 +0000)]
fix up adnstest for r_unknown; tests for r_unknown

13 years agounknown rr types seem to work
ian [Fri, 7 Apr 2006 00:25:14 +0000 (00:25 +0000)]
unknown rr types seem to work

13 years agospec for adns_r_unknown
ian [Thu, 6 Apr 2006 18:59:53 +0000 (18:59 +0000)]
spec for adns_r_unknown

13 years agoSRV supported
ian [Thu, 6 Apr 2006 18:49:25 +0000 (18:49 +0000)]
SRV supported

13 years agoSERVFAIL is definitely not conclusive. Eg, recursive server is supposedly
ian [Thu, 6 Apr 2006 18:47:43 +0000 (18:47 +0000)]
SERVFAIL is definitely not conclusive.  Eg, recursive server is supposedly
slave for a zone but it has timed out or something - this gives SERVFAIL
in BIND8 at least.  But another server (eg not with broken config)
may be able to answer the question

13 years agosemicolon _is_ comment in resolv.conf now
ian [Thu, 6 Apr 2006 18:46:38 +0000 (18:46 +0000)]
semicolon _is_ comment in resolv.conf now

13 years agoSRV is now supported
ian [Thu, 6 Apr 2006 18:46:03 +0000 (18:46 +0000)]
SRV is now supported

13 years agoregression tests for srv, part 2
ian [Thu, 6 Apr 2006 18:45:45 +0000 (18:45 +0000)]
regression tests for srv, part 2

13 years agoregression tests for srv, part 1
ian [Thu, 6 Apr 2006 18:44:25 +0000 (18:44 +0000)]
regression tests for srv, part 1

13 years agoremove debugging from srv with postsort
ian [Thu, 6 Apr 2006 18:40:26 +0000 (18:40 +0000)]
remove debugging from srv with postsort

13 years agosrv with postsort seems to work
ian [Thu, 6 Apr 2006 18:39:44 +0000 (18:39 +0000)]
srv with postsort seems to work

13 years agorevert: put back postsort - the RFC doesn't say that the server does
ian [Wed, 5 Apr 2006 00:24:37 +0000 (00:24 +0000)]
revert: put back postsort - the RFC doesn't say that the server does
that for us

13 years agodo away with postsort - the server does that for us
ian [Wed, 5 Apr 2006 00:20:21 +0000 (00:20 +0000)]
do away with postsort - the server does that for us

13 years agono, do not add new types to adnstest - it breaks regress totally!
ian [Wed, 5 Apr 2006 00:19:52 +0000 (00:19 +0000)]
no, do not add new types to adnstest - it breaks regress totally!

13 years agofix parsing of SRVs
ian [Wed, 5 Apr 2006 00:15:54 +0000 (00:15 +0000)]
fix parsing of SRVs

13 years agosrv processing written (except for sorting); now to be debugged
ian [Tue, 4 Apr 2006 23:29:24 +0000 (23:29 +0000)]
srv processing written (except for sorting); now to be debugged

13 years agofurther wip on SRV - need per-type functions now including postsort
ian [Tue, 4 Apr 2006 01:21:39 +0000 (01:21 +0000)]
further wip on SRV - need per-type functions now including postsort

13 years agoinitial SRV WIP - adns.h
ian [Tue, 4 Apr 2006 00:19:52 +0000 (00:19 +0000)]
initial SRV WIP - adns.h

13 years ago+ * Document in adns.h EINVAL from adns_init meaning bad configuration. before-srv-2006-04-04
ian [Mon, 3 Apr 2006 23:47:41 +0000 (23:47 +0000)]
+  * Document in adns.h EINVAL from adns_init meaning bad configuration.

@@ -9,6 +9,7 @@ adns (1.1.999.0.2); urgency=medium
   * adnstest converts some errno values to EFOOBAR: all of the ones
     mentioned in adns.h, at least.  This makes the regression test
     more portable (fixes problem noticed by Bernd Eckenfels).
+  * Document in adns.h EINVAL from adns_init meaning bad configuration.

   Fixes from or suggested by Bernd Eckenfels, the Debian maintainer:
   * Correct type of various printf arguments: ptrdiff_t != int.

13 years ago * adnstest converts some errno values to EFOOBAR: all of the ones
ian [Mon, 3 Apr 2006 23:47:13 +0000 (23:47 +0000)]
  * adnstest converts some errno values to EFOOBAR: all of the ones
    mentioned in adns.h, at least.  This makes the regression test
    more portable (fixes problem noticed by Bernd Eckenfels).

13 years ago+ * Update MINOR to 2 because of adns_init_logfn.
ian [Mon, 3 Apr 2006 23:32:11 +0000 (23:32 +0000)]
+  * Update MINOR to 2 because of adns_init_logfn.

@@ -5,6 +5,7 @@
     and patch from Nix of esperi.org.uk.)
+  * Update MINOR to 2 because of adns_init_logfn.

13 years ago+ * Create $(bin_dir) and $(lib_dir) on `make install', and also
ian [Mon, 3 Apr 2006 23:05:20 +0000 (23:05 +0000)]
+  * Create $(bin_dir) and $(lib_dir) on `make install', and also

@@ -2,6 +2,9 @@
     in README.html.
+  * Create $(bin_dir) and $(lib_dir) on `make install', and also
+    make a libadns.so.1 -> libadns.so.1.<minor> link.  (Suggestions
+    and patch from Nix of esperi.org.uk.)

13 years agoInclude reference to Peter Simons's Haskell bindings
ian [Mon, 3 Apr 2006 23:00:48 +0000 (23:00 +0000)]
Include reference to Peter Simons's Haskell bindings

13 years ago+ Fixes from or suggested by Bernd Eckenfels, the Debian maintainer:
ian [Mon, 3 Apr 2006 22:49:32 +0000 (22:49 +0000)]
+  Fixes from or suggested by Bernd Eckenfels, the Debian maintainer:

@@ -3,10 +3,12 @@
   * Include reference to Peter Simons's Haskell bindings
     in README.html.

-  Fixes from Bernd Eckenfels, the Debian maintainer:
+  Fixes from or suggested by Bernd Eckenfels, the Debian maintainer:
   * Correct type of various printf arguments: ptrdiff_t != int.
   * Do not print size of leaked blocks of memory (this causes
-    a spurious regression test failure).
+    a spurious regression test failure on some platforms)
+  * Provide adns_if_none and adns_qf_none (which will help with compilers
+    which complain about plain `0' being passed where an enum is wanted).

  --

13 years agoDo not print size of leaked blocks of memory (this causes a spurious
ian [Mon, 3 Apr 2006 22:45:58 +0000 (22:45 +0000)]
Do not print size of leaked blocks of memory (this causes a spurious
regression test failure on some platforms).