From: ian Date: Sun, 17 Sep 2000 00:45:54 +0000 (+0000) Subject: + * Documentation improved somewhat, including new GPL-vs-LGPL file. X-Git-Tag: rel-adns-pre-1-0--1~3 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=commitdiff_plain;h=239d2e4dfb6fcfc26fe3f740efae8f6944b99799 + * Documentation improved somewhat, including new GPL-vs-LGPL file. @@ -10,7 +10,7 @@ * adnsresfilter has --debug option. * Improvements to adnslogres (incl. new -c option) from Tony Finch. * adnslogres has --help option. - * Documentation improved somewhat. + * Documentation improved somewhat, including new GPL-vs-LGPL file. * Do not install adnstest test utility. Regression test improvements: --- 239d2e4dfb6fcfc26fe3f740efae8f6944b99799 diff --cc GPL-vs-LGPL index 0000000,62672f6..00c37b3 mode 000000,100644..100644 --- a/GPL-vs-LGPL +++ b/GPL-vs-LGPL @@@ -1,0 -1,429 +1,122 @@@ -NB that NO VERSIONS of this file from this branch have been released, -and I do not intend yet to publish this version. If you get an old -version of this file from my CVS repository definitely do not intend -the licence exceptions in it to apply - these too were drafts, as you -should know if you know what retreiving old CVS versions means ! - - - Ian Jackson, 9th March 2004. - -DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - + GPL vs LGPL, in the context of adns + ----------------------------------- + -Several people have asked me to release adns under the GNU Lesser ++Several people have asked me to release GNU adns under the GNU Lesser + General Public Licence (LGPL, formerly the Library GPL) instead of the + `stronger' GPL. This file is intended to answer most of these + questions. If you still have questions or comments, please mail me at + . + + Typically there are two or three kinds of situation where people make + this request: the first is where someone is developing a proprietary + program and wishes to make use of adns but doesn't wish to make their + program free software. The second case is where a free software -project is currently using an MIT-like licence and fear `GPL -infection'. The third case, which often overlaps with the second, is -where another free software project currently using a GPL-incompatible -licence, wishes to use adns. ++project is currently using an MIT-like licence or the LGPL and fear ++`GPL infection'. The third case, which often overlaps with the ++second, is where another free software project currently using a ++GPL-incompatible licence, wishes to use adns. + + + 1. Proprietary applications of adns + ----------------------------------- + -This section applies if you are developing a proprietary program, by -which I mean that you will not be distributing source code and not -allowing users to modify and share your software; in most cases you -will be doing this for (personal or corporate) financial gain. ++So, let me get this straight. You're writing a proprietary ++program, by which I mean that you will not be distributing source code ++and not allowing users to modify and share your software; most likely ++you are doing this for your own (personal or corporate) financial ++gain. + -In these cases I may be prepared to issue you a special `LGPL' for -adns (ie, allow you to use adns in your application according to the -terms of the LGPL). I will of course expect a significant licensing -fee. ++However, you want to take advantage of adns, software which I have ++spent my time and effort on, and which I release as free software so ++that everyone can improve, share and use it. + -If you are interested I would be happy to negotiate with you. Please -contact me with your serious initial offer, or if alternatively we can -first discuss your detailed requirements. ++Don't you think that is a little hypocritical ? I'm sorry, but I ++don't want you to just take my nice convenient software, without ++giving something back to the free software community or giving the ++same rights to your users as I do to you. + -The fee for proprietary applications of adns without prior approval is -US$1,000,000 per annum (or part thereof), per proprietary product, per -100,000 installed systems (or part thereof), plus any administration, -collection and legal fees required to recover the licence fee. Of -course, this does not apply to commercial Free software applications -whose use of adns is compatible with the GNU GPL v2. ++If you really aren't the nasty kind of person I've described here, for ++example if you have a good reason other than your own selfishness for ++wanting to restrict distribution of your program, then perhaps you ++should contact me to discuss it. + + + 2. GPL-avoiding projects (MIT licence, et al) + --------------------------------------------- + + Some free software projects prefer to avoid the GPL and other licences + which force the software always to be free. Instead they use + something like the MIT X licence, which allows proprietary versions of -their software. I have to say that I don't understand why they do -this, and think they are misguided, but that doesn't mean that they -don't have a perfect right to. ++their software, or the in the case of some free libraries, the LGPL, ++which allows proprietary applications. I have to say that I think ++these people are misguided, but that doesn't mean that they don't have ++a perfect right to do that. + + Some of these people think that merely writing to an interface + provided by GPL'd software will cause their program to become GPL'd + too, even if they don't distribute the GPL'd software. I don't think -this is the case. I'm perfectly happy for non-GPL'd software to refer -to adns in its source code or executables (eg, dynamic linking). -However, if you distribute adns yourself then whether a program which -uses it needs also to be GPL'd depends on the interpretation of the -`work as a whole' and `mere aggregation' parts of the GPL. - -Whether you are distributing a `work as a whole' might depend on many -things, but they key one to me is what the appearance is to a user. -If the user knows that they are getting a collection of software -rather than a single product, then it's probably an aggregation which -works together. So, you can distribute both your (i) non-GPLd program -source and/or binaries and (ii) adns source code or even binaries -(provided the adns source is available as per the GPL), eg from your -website, provided the user can tell that these are separate works and -can tell which parts are which. - -But, if you package your program and adns together so that the user is -no longer aware of adns as a separate work, then I think you are -distributing a `work as a whole', and the whole work including adns -and your software which depends on it must be GPL'd. This is of -course not a problem if your non-GPL licence is GPL-compatible (see -the next section): it just means that _when the whole lot is shipped -together as one work_ it is covered by the GPL. People who wish to -make proprietary works based on just your code can do so, provided -they (or you) arrange for something to fill the hole left by the lack -of adns. ++this is the case. I'm perfectly happy for non-GPL'd but ++GPL-compatible software to refer to adns in its source code. However, ++I think that exectuables (or compiled libraries) which contain or are ++dynamically linked against adns must be GPL'd; likewise executable ++programs (whether compiled or in an interpreted language) which ++require utilities from adns to function properly must be GPL'd. ++ ++So, you can distribute your non-GPL'd program source which needs adns ++to compile (provided it's under a GPL-compatible licence), but people ++who wish to distribute binaries must do so under the terms of the GNU ++GPL. This may make sense for some GPL-avoiding free software ++projects; people can still make proprietary programs from your code, ++provided that they make some provision to replace adns with something ++whose copyright allows proprietary versions. ++ ++However, this doesn't make much sense for the authors of LGPL'd ++libraries. All I can say to them is to ask which is more important: ++that their library be well-constructed and use all the best technology ++available as free software, or whether it is worth degrading quality ++of their library in order to allow proprietary programs to use it ! ++ ++To help the case of LGPL'd libraries for which adns is not a vital ++component - for example, a library which provides access to other ++libraries so that programs which use it need only use certain parts, ++I have released adns.h (just the public header file) under the LGPL as ++well as the GPL. See the copyright notice in adns.h for details. ++Note that this will not help you if it adns is essential to the ++functioning of your library, because all programs using your library ++must link against both your library and adns and so must be GPL'd. ++ ++ ++For some information and views from the Free Software Foundation on ++free software licensing, visit: ++ ++ Various licenses and comments about them ++ at http://www.fsf.org/philosophy/license-list.html ++ ++ Why you shouldn't use the Library GPL for your next library ++ at http://www.fsf.org/philosophy/why-not-lgpl.html + + + 3. GPL-incompatible free software licences + ------------------------------------------ + + Regrettably, there are a number of free software licences (and + semi-free licences) in existence which are not compatible with the + GPL. That is, they impose restrictions which are not present in the -GPL, and therefore distributing a whole work which contains such a -program and a GPL'd program is not possible: either the work would -have to be distributed under the GPL (violating the restrictions made -by the original author), or under the GPL-incompatible licence ++GPL, and therefore distributing a whole work which contains both such ++a program and a GPL'd program is not possible: either the combination ++would have to be distributed under the GPL (violating the restrictions ++made by the original author), or under the GPL-incompatible licence + (violating the GPL). + + I may be prepared to make exceptions for such a licence. Please + contact me at with the full text -of the GPL-incompatible licence. However, I would prefer it if you -could use a GPL-compatible licence for your project instead. - -There are a couple of common extra restrictions, and I make some -specific extensions to my licence for adns below. - - -3.1. BSD advertising clause, endorsement restriction, etc. - -The most notable and common extra restriction found in free software -licences is the `obnoxious BSD advertising clause' (see Richard -Stallman's article on the subject, available from www.gnu.org) and the -endorsement restriction. - -The problem with the advertising clause isn't that the sentence -required, referring the the Regents of the UC Berkeley, is awkward. -The problem is that if everyone contributing to a large project gets -such a mention the number of sentences required becomes very large; -however, it is unfair for some people to get credit and others not to. - -I disapprove of these clause, but I recognise that it may be difficult -for some people to get them removed from particular programs. The -other clauses are also arguable. - - -3.2. `Hosting service' restriction (eg, Affero GPL) - -The additional restriction in the AGPL v1 (section 2d) seems -reasonable to me, in the circumstances. - - -3.3. Licence extension - -So, I hereby make an extension to my licence for adns (`the Original -Work' in the text below). - - - LICENCE DEROGATION - ------------------ - - (A) Introduction: - - (i) The GNU GPL version 2, section 2b, and the later parts of - section 2, require that certain works be licenced to all - third parties under the terms of the GPL. - - (ii) As special relaxations of this requirement, described in - detail below, the terms of this onward licence to third - parties need not be (though they may be) exactly the terms of - the GPLv2. - - (B) Preconditions: - - (i) There is a work (the `Original Work') which is licensed under - the GNU GPL v2. - - (ii) There is a work (the `GPL'd Work'), either the same work as - the Original Work, or derived work of the Original Work, - which is licensed uner the GNU GPL v2. - - (iii) All of the copyright holders of the GPL'd Work state that - this Licence Derogation is to apply, and what the Original - Work is. (They may limit the Derogation to only some of the - Allowable Extra Provisions.) - - (iv) The GPL'd Work is combined with another work (the Other - Work) to make a `work as a whole', the Combined Work. - - (x) The Other Work is licenced free of charge to third parties; - under the terms of a licence henceforth known as the Other - Licence. - - (xi) The Other Licence is Free. - - (v) It would be an infringement of the copyright in the Other - Work for you to distribute the Combined Work under the terms - of the GNU GPL v2. - - (vi) There is a Resulting Licence which is the GNU GPL v2 amended - by the addition of Extra Provisions and the relevant - conditions from this Licence Derogation, where - - (viii) the Extra Provisions are some or all of the Allowable Extra - Provisions (see below), and - - (x) the Extra Provisions are provisions of the Other Licence. - - - (C) Permission: - - (i) Provided that the the conditions in this Licence Derogation - are met, you may distribute the Combined Work under the terms - of the Resulting Licence. - - (ii) When the Combined Work is distributed under the terms of the - Resulting Licence, references to `this licence' in the text - of the GPL v2 may be read as references to the Resulting - Licence, or as references to the GPL v2, at your option. - - (D) Further Conditions: - - (i) All parts of the Combined Work which are (identical to, parts - of, or derived from) the GPL'd Work can be easily separated - out from the Whole Work's source code to form once more a - Re-separated Work. - - (ii) The Re-separated Work is a version of the Original Work which - is similar or superior in all respects (including - completeness, functionality, quality etc.) to the Original - Work. - - (iii) The Re-separated Work is licensed to third parties under - terms identical to those under which the GPL'd Work is - licenced to those same third parties. - - (iv) Copyright licences and notices which would appear to the - reader to cover the Combined Work contain the following - statement or an equivalent: - Different parts of this software may be covered by - different copying conditions. See individual source code - files or copyright statements for details. - - - (E) The Allowable Extra Provision Kinds: - - (i) In each of the following Kinds (`(1)' onwards), the nature of - the Extra Provisions which are made Allowable, and the - further conditions which must be satisfied (and which - therefore form part of the Resulting Licence) are stated. - - (ii) All of the paragraphs (`(i)' onwards) stated in each Kind - must be satisfied, for Extra Provisions to be Allowable. - - (1) `Obnoxious advertising clause': - - (i) The Extra Provisions are those of the form: - All advertising materials mentioning features or use of - this software must display the following acknowledgement: - This product includes software developed by DEVELOPERS. - and re-wordings with similar effect, where DEVELOPERS is a - person or group associated with the development of the Other - Work. - - (ii) All advertising materials mentioning features or use of the - Combined Work must display a similar acknowledgement for - every Identifiable Author. - - (iii) All distributions of the Combined Work must contain a list of - the Identifiable Authors. - - (2) `Endorsement restriction': - - (i) The Extra Provisions are ones which restrict the use of the - authors', copyright holders' and/or contributors' names for - endorsement or promotion of products. - - (ii) The endorsement restriction(s) must benefit all of the - natural persons and organisations with an interest in the - Whole Work, unless those people wish otherwise. - - (3) `Liability limitation': - - (i) The Extra Provisions are ones which claim to exclude or limit - in any way the liability, for malfunctions, failures etc. of - the Whole Work or parts thereof, of any contributors, - distributors, copyright holders, authors, etc. of the - software. Provisions which seek to deny warranties, even - implied warranties, or which otherwise seek to limit similar - exposure(s) to risk(s), count. - - (ii) The protections of the Extra Provisions must be extended to - all of the authors and distributors of the Whole Work, unless - those people wish otherwise. - - - (4) `Pointless restatements': - - (i) The Extra Provisions are ones which require distributions of - the Whole Work to contain notices in source and/or binary - distributions, and/or in the documentation and/or other - materials provided with the distributions. - - (ii) The required notices must be simple truths, or restatements - of licence provisions which actually apply to the Combined - Work. - - (iii) (The author of this Licence Derogation believes that - `pointless restatement requirements' are compatible with the - GPLv2, since they seem to fall under the heading of an - `appropriate copyright notice and disclaimer of warranty', - which is already required by the GPLv2. However, this - relaxation is provided in case of doubt.) - - - (5) `Service provision - source code to users' (eg AGPL): - - (i) The Extra Provisions apply only - (a) when the Other Work or Combined Work is intended to - interact with people (`Users') through a computer network, - or - (b) when the Other Work or Combined Work is executed on behalf - of a third party (the `User'), - (or when both (a) and (b) apply). - - (ii) There exists a Sensible Publication Mechanism such that the - Extra Provisions are satisfied when: - (a) the Combined Work is made available free of charge to the - public, by that Sensible Publication Mechanism, and - (b) the existence and details of the Sensible Publication - Mechanism are made known in appropriate ways to each - User. - - (iii) A Sensible Publication Mechanism is a reasonable and - convenient means for allowing members of the public - (`Downloaders') to obtain the source code in machine-readable - form. - - (iv) A Sensible Publication Mechanism is not more onerous to - provide than a public-facing World Wide Web server. - - - (F) Additional definitions: - - (i) A Free software licence is one which is approved both - (a) as a Free Software licence by the Free Software - Foundation, and - (b) as an Open Source Licence by the Open Source Initiative. - - (ii) A Combining Participant includes any person: - (a) who makes a modification to the Other Work, which is - now included in the Combined Work, with a view to the - creation of any work which might be a Combined Work - according to this Licence Derogation; or - (b) who obtains the Other Work and GPL'd work separately and - distributes the Combined Work. - - (iii) An Identifiable Author is - (a) a natural person - (b) who contributed to the Combined Work (including without - limitation as a work for hire) - (c) whose identity or proper form of acknowledgement it - reasonably practical to determine by inspection of the - Authorship Documentation, - (d) and who has not stated publicly that they do not wish such - acknowledgements to be displayed. - - (iv) The Authorship Documentation includes all copyright notices, - authorship notices, credits files, change logs, - acknowledgements, and similar documentation, in the source - code for the Original Work, the GPL'd Work, the Other Work - and the Combined Work. - - (v) The Authorship Documentation also includes any communications - received by a Combining Participant regarding authorship of - any part of the Combined Work. - - - - - - (iv) A Sensible Publication Mechanism does not require any - Downloader to provide any identification or authorisation - other than that inherently required by the underlying - technical mechanisms. - - (v) A Sensible Publication Mechanism is free of charge. - - (vi) A Sensible Publication Mechanism does not make any efforts to - trace, track, cross-reference, or otherwise gain information - about Downloaders, other than the minimum data required for - direct technical fault-finding; any data collected shall be - used only for direct technical fault-finding. - - (vii) Where a Sensible Publication Mechanism involves - implementation of a technical communications protocol, the - Mechanism must permit the use by Downloaders of the widest - feasible range of standards-compliant software. - - (vii) For example, for download via the public World Wide Web to - satisfy this paragraph, the HTTP server must permit downloads - from any IP address, and it may not have any access controls, - cookies, reverse DNS requirements, registration forms, adult - checks, authorisation codes, email confirmations, URL - session-ids, browser restrictions, JavaScript, Java, Flash, - and must use the most conservative possible HTML, and the - webserver logs must contain the least possible information - and be expired quickly. - -DRAFT - -, or to pay anyone any - money. - - - -which there is a - Sensible Mechanism can be - -(to the Other Work publicly and freely available. ++of the GPL-incompatible licence. However, I would usually prefer it ++if you could use a GPL-compatible licence for your project instead. + - (a) (from `AGPL version 1') - If the Program as you received it is intended to - interact with users through a computer network and if, - in the version you received, any user interacting with - the Program was given the opportunity to request - transmission to that user of the Program's complete - source code, you must not remove that facility from - your modified version of the Program or work based on - the Program, and must offer an equivalent opportunity - for all users interacting with your Program through a - computer network to request immediate transmission by - HTTP of the complete source code of your modified - version or other derivative work. + ++-- Ian Jackson 17.9.2000 + -DRAFT --- Ian Jackson 10.5.1999 + + Local variables: + mode: text + End: diff --cc changelog index 524232d,1b7d991..c982726 --- a/changelog +++ b/changelog @@@ -1,255 -1,6 +1,255 @@@ -adns (0.2) experimental; urgency=low +adns (0.10) unstable; urgency=low + + Bugfixes: + * Fix incorrect `compressed datagram contains loop' error. + * Actually compile shared libraries by default ! + * Fix adnsresfilter usage message to include correct default timeout. + + General improvements: + * adnshost, adnslogres, adnsresfilter have options for config override. + * adnsresfilter has --debug option. + * Improvements to adnslogres (incl. new -c option) from Tony Finch. + * adnslogres has --help option. - * Documentation improved somewhat. ++ * Documentation improved somewhat, including new GPL-vs-LGPL file. + * Do not install adnstest test utility. + + Regression test improvements: + * Tests now include adnshost, adnslogres and adnsresfilter. + * Test cancellation both before and after query completion. + + Portability fixes and cleanups: + * adnstest: setvbuf(stdout,...) before we do first output. + * Cope with compilers that don't do `inline'. + * Add and fix various missing system #includes. + * Find install-sh properly when we need to use it, and chmod it +x. + * Do not use variadic macro, use stdarg instead (adnslogres.c). + * Regression tests work even if some syscalls are already macros. + * #include "config.h" before "adns.h". + * Cast a sizeof(...) in src/event.c to unsigned long before printing. + * Add pre-generated versions of m4-generated files in regress/. + * Kill bogus warning, adh-main.c: `arg2' might be used uninitialized ... + * Add extra {...} near adnslogres.c:167 to kill spurious warning. + * Use `printf' instead of `echo -n'. + * Add list of tested platforms in INSTALL file. + + -- + +adns (0.9) unstable; urgency=high + + Bug fixes: + * Don't make _processany always kill the TCP connection with the message + `TCP connection failed: poll/select: exceptional condition detected'. + * Call MEM_ROUND in __transfer_interim (avoids assert fail + `qu->interim_allocd>=0' on some platforms eg 64 bit). + * adnsresfilter doesn't resolve textual prefixes of addresses (eg, + 10.0.0.1 out of 10.0.0.123) if input happens to block at that point. + * Do not spin if TCP connection blocks for writing (and add test case). + * Fail queries if TCP dies repeatedly, rather than retrying many times. + * Do not abort in a couple of places if TCP unexpectedly broken. + * Do not free something twice if query fails and is then cancelled. + + Portability/compilation fixes: + * Move `extern "C" {' to after #include <...>'s. + * Pass LDFLAGS from configure on to ld via settings.make.in. + * make clean deletes *.so and *.so.* files. + * New --disable-dynamic configure option for non-ELF systems. + * Use AC_PROG_INSTALL (=> perhaps install-sh), to avoid bad `install'. + + Minor improvements: + * Do not print warning if sendto() gives EAGAIN. + * adnsresfilter default timeout changed to 1000ms. + * m1test script can invoke `hrecord' differently. + * regress/output-.report file contains more useful info. + * TODO list and other docs updated slightly. + * Referrals with RD+RA set, or RCODE=Refused, don't generate warnings, + just debug messages. BIND does this kind of thing all the time. + + -- Ian Jackson Wed, 9 Aug 2000 16:59:28 +0100 + +adns (0.8) BETA; urgency=medium + + Bugfixes: + * Race near adns_beforeselect which could cause infinite timeout fixed + (it's now less agressive, and will more often return a zero timeout.) + * Fixed infrequent race causing assertion failure in adns__tcp_broken + `ads->tcpstate == server_connecting || ads->tcpstate == server_ok'. + * Spurious `server failure on unidentifiable query' warning suppressed. + * If we get a referral, don't also always complain falsely about RD==0. + * adnslogres: cast chars to unsigned char before using ctype.h macros. + * In _beforeselect, global failure now means zero timeout, and in + tcp_events, really never try to do anything with the TCP connection if + act is zero. This might possibly cause an infinite delay (ie, lockup) + if things go badly wrong *and* a really unlikely race happens. + * Test suite `lines of syscall left' value is correct; !0 is failure. Portability fixes: + * install-sh (from autoconf 2.12 Debian r13) included. + * adnslogres: do not call equivalent of printf("%.*s",0,(char*)0). + + Documentation improvements: + * Security/performance note added, about local nameservers and DNSSEC. + * Documented that adns_rr_info _rr_hostaddr ( ) for address list + means permanent failure, and ? means temporary failure. + * Typo (*now for now in _beforeselect description) in adns.h fixed. + * Copyright notices updated. + + Changes to produce more defensive code: + * In adns_wait, assert that the timeout is not infinite. + * Make qu->id start out as -2 when initially allocated. + + -- Ian Jackson Sun, 7 May 2000 23:37:13 +0100 + +adns (0.7) BETA; urgency=medium + + * New adns_submit_reverse_any for eg RBL lookups, and corresponding + option to adnshost. + * README updated (from www home page). + + * In answers, quote all except alphanums and - _ / + (and document). + * Don't reject specials in cnames even without adns_qf_quotefail_cname. + * Better checking of long domain names and labels in queries. + * answer->owner may be null on error. Documented, and adnshost copes. + * Better reporting of unexpected or weird replies from nameserver. + * Add test case for recursion (infinite loop) domain compression. + + -- Ian Jackson Thu, 2 Mar 2000 01:55:53 +0000 + +adns (0.6) BETA; urgency=high + + Core library bugfixes: + * Avoid infinite timeouts, causing lockup, when they should be zero ! + * TCP handling revamped (avoids undefined behaviour due to reentrancy). + * Do not fail assertion if _qf_owner, _qf_search, domain ends in `.'. + * Many memory leaks fixed. + + Cool new utility: + * adnsresfilter is like `cat' but converts addresses to names without + delaying the output. Pipe `netstat -n', `tcpdump -ln', etc. into it. + + Test and client program bug and portability fixes: + * Dynamic library building works properly. + * adnshost prints somewhat better messages about some wrong usages. + * Include and in adnshost.h. + * adnslogres: parsing and error checking improved (Tony Finch). + * Regression tests can cope with zero-length reads. + * Regression tests check for memory leaks. + * adnstest copes with empty query type list. + * adnstest uninitialised memory bug fixed. + + General improvements + * Better control of adnshost output and error messages (new -F options). + * New adns_if_logpid option (functionality suggested by Tony Finch). + * New fanftest test program from Tony Finch (ignored by `make install'). + * Reads /etc/resolv-adns.conf if it exists. + * Declare flags parameters as enums again, not ints. + + -- Ian Jackson Wed, 24 Nov 1999 17:13:03 +0000 + +adns (0.5) unstable; urgency=high + + New features: + * adnslogres, ~100x faster replacement for Apache logresolve; + Thanks to Tony Finch for the program and the performance figure. + * Internal consistency checking with assert if right options set. + * adns_wait_poll function like adns_wait but uses poll, not select. + * adns_reverse_submit function for easy in-addr queries. + * adns_errtypeabbrev funcion for getting eg "permfail" from _s_nodata. + * adnshost utility for scripts and the like (rather alpha). + + Incompatible changes: + * RRs with mailboxes never rejected due to strange chars if _raw. + * Lack of a mailbox produces `.' not `<>'. + * Better usage messages (and no default query domain) for adnstest. + * Return EAGAIN from _check instead of EWOULDBLOCK. + * adns_rr_info on _r_mx etc. shows status type abbrev and status number. + + Bugfixes: + * Do not invoke __autosys indirectly from __procdgram (result: coredump + usually in memmove, unless adns_if_noautosys was used). + * Do not scramble innards when a query on the output queue is cancelled. + * Do not close tcp socket twice. + * Mailboxes containing spaces in their names are quoted. + * Give ESRCH, not EAGAIN, if _check called with no queries outstanding. + * adns_rr_hostaddr naddrs is -1 on temporary failure (as documented). + * Reject TXT RRs with no strings. + * Correct error messages for qname CNAME foo, foo CNAME bar. + * adns_processany actually does something. + * Fixed typos in adns.h. + + General improvements: + * Promise not to change fds in adns_beforepoll (if now is specified). + * Improved textual error string for _s_prohibitedcname. + * New comment in adns_processany and return 0 (not r which is 0). + * Documentation of resolv.conf directives and options, and of environment + variables understood, in adns.h + * Regression test scripts set EF_DISABLE_BANNER (for Electric Fence). + + Portability and build improvements: + * Give install the '-c' flag (otherwise some delete the original !). + * Do not remove top-level Makefile on `make clean'. + * Don't complain so much about poll(2) tests if not available. + * Do not give -u 0 -g 0 options to install. + * Remove trailing , from some enums in adns.h. + * Dynamically linked clients now made with -l, so as to avoid rpath. + * Do not use $^ in make rules (should help with non-GNU make). + * Declare flags parameters as ints not enums because C++ is crap. + + -- Ian Jackson Wed, 13 Oct 1999 02:24:35 +0100 + +adns (0.4) unstable; urgency=high + + General important bugfixes: + * make _qf_owner work if _qf_search not specified, and test it (oops!) + * ads->configerrno now initialised (in setup.c). + * timercmp(,,<=) doesn't work - use !timercmp(,,>). + * Changed memory semantics of internal queries to fix bugs. + * Restarting a TCP-using query (eg due to CNAME) doesn't abort. + + Fixes for handling of broken kinds of reply: + * Only accept a reply from the subset of servers we sent the query. + * Ignore CNAME(s) in answer after RR(s) (and test). + + Other bugfixes and improvements: + * adns_s_systemfail is in table of errors (for eg adns_strerror). + * Do not ship config.cache, Makefile, etc. + * Improvements to install instructions, TODO, etc. + * Regression tests compile on systems without poll(2). + * Do not install adnstest_s. + * _submit returns ENOSYS, not adns_s_unknownquery; documented, tested. + * includes , , . + + -- Ian Jackson Thu, 5 Aug 1999 01:17:38 +0100 + +adns (0.3) unstable; urgency=low + + Incompatible changes: + * Low adns_status values (below adns_s_max_tempfail) renumbered to make + room for future locally-induced and locally-detected errors. + * Event loop functions for use by select(2) renamed and tidied up. + + Features / improvements: + * New adns_errabbrev() for getting status abbreviation strings. + * regress/checkall prints summary list of failed tests, if any. + * Event loop functions for poll(2), and some raw variants. + * adnstest has ability to use poll(2), and user can set initflags. + * checkall prints passed list as well as failed list, if any failed. + * You can iterate over outstanding queries (but only once at a time). + + Bugfixes: + * Non-RFC822 mailbox `domain' formatting now works, and clarified. + * Rejection of bad characters in domains (without quoteok) works. + * Clean up parents from adns->childw (otherwise would abort/segfault). + * In adnstest, allocate enough space for, and terminate, query types. + * In adnstest, don't print errno values as adns_status values. + + * Added TODO file. + * Made adnstest.c test context pointers. + + -- Ian Jackson Thu, 15 Jul 1999 00:23:12 +0100 + +adns (0.2) experimental; urgency=low + + Portability fixes for compilation on various platforms: * Include and in files with . * Don't use GCC union assignment feature (.rrs=0 => .rrs.untyped=0). * Explictly cast things to [const] struct sockaddr* in syscall args.