⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes

📁 早期freebsd实现
💻
📖 第 1 页 / 共 4 页
字号:
18. The q_system field of the query structure has been removed in favor of    a q_type field containing bit definitions.  The old PRIMING_CACHE magic    cookie is no longer used.  Go to the end of the universe, do not pass go.17. Converted to ANSI C.  All functions are static unless they are actually    needed outside the current module ("file" in C terminology); static     functions are declared with prototypes if they are forward-referenced.    Externally visible functions are declared in separate header files, with    prototypes.  ns.h and db.h have been split into four new header files:	db.h -> db_defs.h db_glob.h db_func.h	ns.h -> ns_defs.h ns_glob.h ns_func.h    The *_defs files contain only structure and type definitions, and macro    definitions.  Nothing that generates text or data space in the executable    is declared here.    The *_glob files contain only global variable declarations, which used to    be defined in the various *.c files in a more or less random fashion.  The    declarations are "extern" if included from non-main()-containing files, but    are defined globally and given initial values in main()-ish files.  This    reuse of the same declarations insures that the type and size declarations    match between definitions and external references to them.    The *_func files contains function prototypes for global ("extern")    functions.  The prototypes are all optional so will not break non-ANSI    systems.  Note that I don't have such a system any more so I may be wrong.16. Removed all remaining references to "short" or "long" that did not    depend on the vague semantics of those types.  Most uses were actually    depending on a size of 16 bits for short and 32 bits for long, and there    are processors/compilers where each of these types is different.  This    work was begun in 4.9 and is now complete.  Note that some structs that    are used in large data structures use "char" for 8-bit integers.  It helps.05Jul93 - ALPHA ReleasedThis is the cleanup release after 4.9.  I'm going to try the TCSH style oflogging the changes; let me know if you think it's a bad way of doing it.15. the resolver now includes an implementation of RFC 1101, which allows    network names to be encoded in the DNS tree rather than in /etc/networks.    this implementation is by rps@matuc2.mat.uc.pt (Rui Pedro Mendes Salgueiro)    i put the test program and original documentation in contrib/rfc1101/.  i    would like to see their main.c ("nettest") turned into a tools/nettest,    but i'm not willing to do the work myself.  it needs a man page, etc.14. as expected the initial HS zone transfer stuff didn't work that well.    thanks to <per@ericsson.se>, retries after failed SOA queries will use    C_IN rather than falling through to C_HS inappropriately.13. ns_init.c was fcntl(SETFL)'ing in a destructive way.  it now does a    fcntl(GETFL) to get the old option mask and then |'s in the new flag.    this patch came from Eduard Vopicka <Eduard.Vopicka@vse.cz>.12. there are two new conf/Info.* files; check 'em out.11. ultrix (some versions, especially the vax ones) libc.a had some bad    naming conventions for some resolver routines.  getshort/putshort just    have to be real functions, not just macros, or you can't link anything    with this resolver.  patch was sent by <aas@brain.physics.swin.oz.au>.10. sethostent(x) for host files was sticky for nonzero 'x' (avalon@anu.edu.au)9.  hp9000s700 is now supported in include/arpa/nameser.h (avalon@anu.edu.au)8.  statistics dumps now print the time in decimal-seconds-since-1970 in    addition to the old "ctime" format, for ease of debugging.  (Peter Koch).7.  systems with 14-character filename limitations have apparently been    having trouble in named-xfer since its temporary file names are bigger    than they can handle.  ash@hp sent in some patches a while ago, enabled    with SHORT_FNAMES in conf/options.h, to deal with this appropriately.    We should probably just generate short names always.6.  Some security stuff from ISI.  According to Anant Kumar <anant@isi.edu>:	The validation procedure is the major change here. Currently, we	accept anything from a server, as long as we had asked it a question.	This implies that a malicious server can really send us any data and	we not only pass it on, we also cache it for as long as the TTL	holds. This can be really bad for our health and for that of those	who use the DNS.	We add this procedure to verify for each RR returned by a server	that it is indeed authoritative for either that zone, or for a	parent zone.  We end up trusting the root servers for everything!	Also, the more rich our cache is the more choosy we become about the	data we add on to it. This stuff is all ifdef'd with "#ifdef VALIDATE"	The negative caching stuff adds on a d_rcode field to the databufs.	Any positive entry now shows a NOERROR there while negative entries	have either a NXDOMAIN or NOERROR_NODATA. NOERROR_NODATA rcode is	never returned.  It is used only to differentiate, within the	internal database, between negative and positive entries. We use the	regular hash table (hashtab) to store negative entries, too. Only	authoritative answers are negative cached, for NTTL (parameterized,	currently 10 minutes) seconds. Non-authoritative NXDOMAINs or	NOERROR with zero RR count, now generated, are now accepted but	never cached. This is ifdef'd with "#ifdef NCACHE".5. "make install" now has a prayer of working for the man pages. an observation   was made that net2++ systems _require_ formatted "cat" pages and that older   systems are _able_ to use them, so that's all we install.4. i wrote man pages for named.reload, named.restart, and named-xfer.  these   were actually in 4.9.1 for 4.4BSD.3. unneeded functions in compat/lib will now generate placeholder symbols, to   make sure that the linker doesn't generate ugly-but-harmless warnings.2. my ignorance of the true meaning of _POSIX_SOURCE has been corrected,   along with the ugly-but-working code in conf/portability.h and elsewhere.1. non-resolver routines moved from res/ to compat/lib/.  this will shorten   libresolv.a and make it easier to integrate new BIND releases into Net-2   descendents such as 4.4BSD and BSD/386.4.9.1 ------------------This is the integration of the changes that were made for 4.4BSD.  Thisrelease will not be published.  Changes include:doc/BOG/*: many changes to improve appearance of the output, including	orphan-avoidance and better tab stops.  Sent to me by someone on	the net who deserves thanks but I've lost the original mail.  Oops.include/*: the CSRG people weren't entirely pleased with the interface	changes i made to the res_*() and inet_*() functions.  in particular,	the changes from "long" to "u_int32_t" were too sweeping in their	opinion since Posix is already working on standardizing them and	might look unkindly on an apparently-still-evolving interface.  also,	the possibility that all the vendors will change their implementations	to match the new interface is apparently rather dim.  therefore most	externally-visible occurances of the int32_t type have been changed	back to "long" in the resolver interface.  we believe that this should	still be portable to Cray and AXP machines, but i'll wait to hear from	someone who can actually try it out and let me know.tools/*: the "net2" version of "lex" requires some additional flags and libs,	and this had implications for the Makefiles and the dig.c source file.	nslookup's man page is now in man/ rather than tools/nslookup, for	consistency.named/*: last-minute 4.9-FINAL changes to named-xfer.c and db_load.c resulted	in corruption of TXT records on zone transfers, and a high number of	useless syslog(SYS_ERR) messages about zones already being up to date.	these last-minute changes have been massaged into better shape and are	now a lot readier for prime time than they were.  a lesson was learned.	the inet_aton() function is now used where appropriate, rather than the	old inet_addr().  this is just an evolutionary move that should have no	practical implications.  bad addresses in the "tcplist", "bogusns", and	"sortlist" directives (from named.boot) are now syslogged.	some open files are still inherited by named-xfer from named, but they	are properly closed now.	the SIGXFSZ signal is now accepted as an alias for SIGHUP, in support	of the wierd DEC Hesiod implementation.  no practical significance.res/*: one important bug fix in the gethostent() stuff, and a whole bunch of	evolutionary include file changes.include/*: include/sys was moved to compat/include/sys, since systems that	do not need it really really really need to get their own instead.	at some point i'm going to move the res/*.c files that are needed for	compatibility but not really part of the resolver, into compat/lib.general: there are more settable parameters in the top-level Makefile, and	they are propagated downward into the subdirectories' Makefiles.  you	should not have to edit any Makefile except the top-level one.  Note	that "make links" still creates local Makefiles in the build directory	because "mkdep" still edits the Makefiles on most systems.4.9-FINAL -------------------Kevin Dunlap sent in some changes for the BOG.  So did a lot of other folks.Someone asked about AXP-OSF, so I did a trivial 64-bit port.  Porting toother 64-bit systems should be simple now.  Someone also sent in some MIPSRISCOS portability changes, which were simple and therefore were put in.  Note that some type names have been added to BSD 4.4 as a result of thiswork; they are going to be in <sys/types.h> in BSD 4.4 but they are in alocal include file called <sys/bitypes.h> in this distribution, with appropriate #ifdef's in the include files that depend on them.  Those of youwho are porting to 64-bit platforms where "long" isn't 32 bits should beusing these new names for your types; there was no standard before this,but the names we've added for BIND 4.9 and BSD 4.4 are going to be proposedto Posix at some point.  Sometimes it's just not OK for "int" to be the"natural integer size of the machine" and you just _have_ to tell the compilerhow many bits you want.The NIC added a new root server, thus pushing the size of a nonauthoritativeroot server response (which includes the root server list in the answer aswell as the authority sections) over the 512-byte limit.  This showed up along-term BIND bug wherein it failed to set the TC ("truncation occurred")bit if truncation occurred anywhere but the answer section.  Since truncationwas occuring at the end of the packet, in the additional data section, thismeant that BIND was generating truncated responses without setting TC in theresponse header.  Upon further investigation, I found that BIND ignored TCon responses it received from other name servers.  RFC 1035 states that RR'sfrom truncated responses should not be cached; with creative interpretationof the exact 1035 wording, I found a way to reach this goal while still caching the answer section (as long as the truncation occurred in some othersection, which 1035 gives no definitive way to determine but I'm happy withmy guess).While researching the above, I finally broke down and added credibilityoutput to the zone dump files.  They are in the comments so should causeno trouble.  There's more work to be done on the dump output; in particular,Phil Almquist proposed and even prototyped a "tagging" of all RR's with theA RR of the nameserver that sent them to us; this feature should be addedand the dump output should include it.  This would add a lot to our abilityto track down corrupt data.Don Lewis and I had more discussions about TC and ended up agreeing that theright thing to do is to set TC on responses that overflow in the answer orauthority section, truncating at an RR boundary, but do not set TC on responsesthat overflow in the additional-data section (truncating at a {name,type}boundary).  This actually solves the root server problem pretty well, sinceBIND 4.9 will, when it tries to use an NS whose A isn't in the cache, generatea sysquery() for the missing A.  (Heck, additional data TTL's are depreciatedat the rate of 5% per use, so this would end up happening pretty quickly evenif we did cache a partial {name,type} -- but now we won't have to.)While trying to fix all of this stuff I ended up moving some functions aroundto avoid duplicating them in different source files, and I reformatted somesource lines that went over 80 characters.  I also made a few things "static"that used to be unneccessarily global.  More of that will happen in 4.9.1.DEC's product version of MIT Hesiod uses SIGXFSZ for what we do with SIGHUP;since the default for SIGXFSZ is to exit, it seemed prudent to wire it up todo what SIGHUP does instead, so that this BIND can run on DEC Hesiod servers.At the request of several people, I integrated the USC "dig" and Rutgers"host" tools into the distribution.  This required some changes to theresolver library's debugging output formats, which will be visible innslookup, nsquery, and any other tool that sets the RES_DEBUG option.Note that there is no support for "DEFNAMES" in this version of dig, dueto design changes between 4.8 (from which "dig" is derived) and 4.9.  thereis no reason in principle why it can't be made to work, but it doesn't worknow.  therefore only fully-qualified names can be looked up with this "dig".I had to change the name of the resolver "state" structure to be "__res_state"for standards conformance (really, it is not reasonable to expect that becausea program includes <resolv.h> it will never define its own structure called"state".  This change highlights the imperative that any application which isrelinked against this resolver must first be recompiled against these includefiles (notably <resolv.h>).  This is true for almost all versions of libresolv.I asked for items for the "TODO" list and got quite a few.  Check them outbefore you hack; someone else may already have started doing what you want todo.  I also asked for tools for the "contrib" subdirectory and got 650KB worth.They make the BIND 4.9 distribution a lot larger than 4.8.3 was, but the extrabytes are well worth their weight.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -