======================================================================== * bind-9.11.4-P2/README.md ======================================================================== # BIND 9 ### Contents 1. [Introduction](#intro) 1. [Reporting bugs and getting help](#help) 1. [Contributing to BIND](#contrib) 1. [BIND 9.11 features](#features) 1. [Building BIND](#build) 1. [macOS](#macos) 1. [Compile-time options](#opts) 1. [Automated testing](#testing) 1. [Documentation](#doc) 1. [Change log](#changes) 1. [Acknowledgments](#ack) ### Introduction BIND (Berkeley Internet Name Domain) is a complete, highly portable implementation of the DNS (Domain Name System) protocol. The BIND name server, `named`, is able to serve as an authoritative name server, recursive resolver, DNS forwarder, or all three simultaneously. It implements views for split-horizon DNS, automatic DNSSEC zone signing and key management, catalog zones to facilitate provisioning of zone data throughout a name server constellation, response policy zones (RPZ) to protect clients from malicious data, response rate limiting (RRL) and recursive query limits to reduce distributed denial of service attacks, and many other advanced DNS features. BIND also includes a suite of administrative tools, including the `dig` and `delv` DNS lookup tools, `nsupdate` for dynamic DNS zone updates, `rndc` for remote name server administration, and more. BIND 9 is a complete re-write of the BIND architecture that was used in versions 4 and 8. Internet Systems Consortium ([https://www.isc.org](https://www.isc.org)), a 501(c)(3) public benefit corporation dedicated to providing software and services in support of the Internet infrastructure, developed BIND 9 and is responsible for its ongoing maintenance and improvement. BIND is open source software licenced under the terms of ISC License for all versions up to and including BIND 9.10, and the Mozilla Public License version 2.0 for all subsequent verisons. For a summary of features introduced in past major releases of BIND, see the file [HISTORY](HISTORY.md). For a detailed list of changes made throughout the history of BIND 9, see the file [CHANGES](CHANGES). See [below](#changes) for details on the CHANGES file format. For up-to-date release notes and errata, see [http://www.isc.org/software/bind9/releasenotes](http://www.isc.org/software/bind9/releasenotes) ### Reporting bugs and getting help To report non-security-sensitive bugs or request new features, you may open an Issue in the BIND 9 project on the [ISC GitLab server](https://gitlab.isc.org) at [https://gitlab.isc.org/isc-projects/bind9](https://gitlab.isc.org/isc-projects/bind9). Please note that, unless you explicitly mark the newly created Issue as "confidential", it will be publicly readable. Please do not include any information in bug reports that you consider to be confidential unless the issue has been marked as such. In particular, if submitting the contents of your configuration file in a non-confidential Issue, it is advisable to obscure key secrets: this can be done automatically by using `named-checkconf -px`. If the bug you are reporting is a potential security issue, such as an assertion failure or other crash in `named`, please do *NOT* use GitLab to report it. Instead, please send mail to [security-officer@isc.org](mailto:security-officer@isc.org). Professional support and training for BIND are available from ISC at [https://www.isc.org/support](https://www.isc.org/support). To join the __BIND Users__ mailing list, or view the archives, visit [https://lists.isc.org/mailman/listinfo/bind-users](https://lists.isc.org/mailman/listinfo/bind-users). If you're planning on making changes to the BIND 9 source code, you may also want to join the __BIND Workers__ mailing list, at [https://lists.isc.org/mailman/listinfo/bind-workers](https://lists.isc.org/mailman/listinfo/bind-workers). ### Contributing to BIND ISC maintains a public git repository for BIND; details can be found at [http://www.isc.org/git/](http://www.isc.org/git/). Information for BIND contributors can be found in the following files: - General information: [doc/dev/contrib.md](doc/dev/contrib.md) - BIND 9 code style: [doc/dev/style.md](doc/dev/style.md) - BIND architecture and developer guide: [doc/dev/dev.md](doc/dev/dev.md) Patches for BIND may be submitted as [Merge Requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests) in the [ISC GitLab server](https://gitlab.isc.org) at at [https://gitlab.isc.org/isc-projects/bind9/merge_requests](https://gitlab.isc.org/isc-projects/bind9/merge_requests). By default, external contributors don't have ability to fork BIND in the GitLab server, but if you wish to contribute code to BIND, you may request permission to do so. Thereafter, you can create git branches and directly submit requests that they be reviewed and merged. If you prefer, you may also submit code by opening a [GitLab Issue](https://gitlab.isc.org/isc-projects/bind9/issues) and including your patch as an attachment, preferably generated by `git format-patch`. ### BIND 9.11 features BIND 9.11.0 includes a number of changes from BIND 9.10 and earlier releases. New features include: * Added support for Catalog Zones, a new method for provisioning servers: a list of zones to be served is stored in a DNS zone, along with their configuration parameters. Changes to the catalog zone are propagated to slaves via normal AXFR/IXFR, whereupon the zones that are listed in it are automatically added, deleted or reconfigured. * Added support for "dnstap", a fast and flexible method of capturing and logging DNS traffic. * Added support for "dyndb", a new API for loading zone data from an external database, developed by Red Hat for the FreeIPA project. * "fetchlimit" quotas are now compiled in by default. These are for the use of recursive resolvers that are are under high query load for domains whose authoritative servers are nonresponsive or are experiencing a denial of service attack: * `fetches-per-server` limits the number of simultaneous queries that can be sent to any single authoritative server. The configured value is a starting point; it is automatically adjusted downward if the server is partially or completely non-responsive. The algorithm used to adjust the quota can be configured via the "fetch-quota-params" option. * `fetches-per-zone` limits the number of simultaneous queries that can be sent for names within a single domain. (Note: Unlike `fetches-per-server`, this value is not self-tuning.) * New stats counters have been added to count queries spilled due to these quotas. * Added a new `dnssec-keymgr` key mainenance utility, which can generate or update keys as needed to ensure that a zone's keys match a defined DNSSEC policy. * The experimental "SIT" feature in BIND 9.10 has been renamed "COOKIE" and is no longer optional. EDNS COOKIE is a mechanism enabling clients to detect off-path spoofed responses, and servers to detect spoofed-source queries. Clients that identify themselves using COOKIE options are not subject to response rate limiting (RRL) and can receive larger UDP responses. * SERVFAIL responses can now be cached for a limited time (defaulting to 1 second, with an upper limit of 30). This can reduce the frequency of retries when a query is persistently failing. * Added an `nsip-wait-recurse` switch to RPZ. This causes NSIP rules to be skipped if a name server IP address isn't in the cache yet; the address will be looked up and the rule will be applied on future queries. * Added a Python RNDC module. This allows multiple commands to sent over a persistent RNDC channel, which saves time. * The `controls` block in named.conf can now grant read-only `rndc` access to specified clients or keys. Read-only clients could, for example, check `rndc status` but could not reconfigure or shut down the server. * `rndc` commands can now return arbitrarily large amounts of text to the caller. * The zone serial number of a dynamically updatable zone can now be set via `rndc signing -serial `. This allows inline-signing zones to be set to a specific serial number. * The new `rndc nta` command can be used to set a Negative Trust Anchor (NTA), disabling DNSSEC validation for a specific domain; this can be used when responses from a domain are known to be failing validation due to administrative error rather than because of a spoofing attack. Negative trust anchors are strictly temporary; by default they expire after one hour, but can be configured to last up to one week. * `rndc delzone` can now be used on zones that were not originally created by "rndc addzone". * `rndc modzone` reconfigures a single zone, without requiring the entire server to be reconfigured. * `rndc showzone` displays the current configuration of a zone. * `rndc managed-keys` can be used to check the status of RFC 5001 managed trust anchors, or to force trust anchors to be refreshed. * `max-cache-size` can now be set to a percentage of available memory. The default is 90%. * Update forwarding performance has been improved by allowing a single TCP connection to be shared by multiple updates. * The EDNS Client Subnet (ECS) option is now supported for authoritative servers; if a query contains an ECS option then ACLs containing `geoip` or `ecs` elements can match against the the address encoded in the option. This can be used to select a view for a query, so that different answers can be provided depending on the client network. * The EDNS EXPIRE option has been implemented on the client side, allowing a slave server to set the expiration timer correctly when transferring zone data from another slave server. * The key generation and manipulation tools (`dnssec-keygen`, `dnssec-settime`, `dnssec-importkey`, `dnssec-keyfromlabel`) now take `-Psync` and `-Dsync` options to set the publication and deletion times of CDS and CDNSKEY parent-synchronization records. Both `named` and `dnssec-signzone` can now publish and remove these records at the scheduled times. * A new `minimal-any` option reduces the size of UDP responses for query type ANY by returning a single arbitrarily selected RRset instead of all RRsets. * A new `masterfile-style` zone option controls the formatting of text zone files: When set to `full`, a zone file is dumped in single-line-per-record format. * `serial-update-method` can now be set to `date`. On update, the serial number will be set to the current date in YYYYMMDDNN format. * `dnssec-signzone -N date` sets the serial number to YYYYMMDDNN. * `named -L ` causes named to send log messages to the specified file by default instead of to the system log. * `dig +ttlunits` prints TTL values with time-unit suffixes: w, d, h, m, s for weeks, days, hours, minutes, and seconds. * `dig +unknownformat` prints dig output in RFC 3597 "unknown record" presentation format. * `dig +ednsopt` allows dig to set arbitrary EDNS options on requests. * `dig +ednsflags` allows dig to set yet-to-be-defined EDNS flags on requests. * `mdig` is an alternate version of dig which sends multiple pipelined TCP queries to a server. Instead of waiting for a response after sending a query, it sends all queries immediately and displays responses in the order received. * `serial-query-rate` no longer controls NOTIFY messages. These are separately controlled by `notify-rate` and `startup-notify-rate`. * `nsupdate` now performs `check-names` processing by default on records to be added. This can be disabled with `check-names no`. * The statistics channel now supports DEFLATE compression, reducing the size of the data sent over the network when querying statistics. * New counters have been added to the statistics channel to track the sizes of incoming queries and outgoing responses in histogram buckets, as specified in RSSAC002. * A new NXDOMAIN redirect method (option `nxdomain-redirect`) has been added, allowing redirection to a specified DNS namespace instead of a single redirect zone. * When starting up, named now ensures that no other named process is already running. * Files created by named to store information, including `mkeys` and `nzf` files, are now named after their corresponding views unless the view name contains characters incompatible with use as a filename. Old style filenames (based on the hash of the view name) will still work. #### BIND 9.11.1 BIND 9.11.1 is a maintenance release, and addresses the security flaws disclosed in CVE-2016-6170, CVE-2016-8864, CVE-2016-9131, CVE-2016-9147, CVE-2016-9444, CVE-2016-9778, CVE-2017-3135, CVE-2017-3136, CVE-2017-3137 and CVE-2017-3138. #### BIND 9.11.2 BIND 9.11.2 is a maintenance release, and addresses the security flaws disclosed in CVE-2017-3140, CVE-2017-3141, CVE-2017-3142 and CVE-2017-3143. It also addresses several bugs related to the use of an LMDB database to store data related to zones added via `rndc addzone` or catalog zones. #### BIND 9.11.3 BIND 9.11.3 is a maintenance release, and addresses the security flaw disclosed in CVE-2017-3145. #### BIND 9.11.4 BIND 9.11.4 is a maintenance release, and addresses the security flaw disclosed in CVE-2018-5738. #### BIND 9.11.4-P1 BIND 9.11.4-P1 addresses the security flaw disclosed in CVE-2018-5740. #### BIND 9.11.4-P2 BIND 9.11.4-P2 fixes several operationally significant bugs with inline-signing zones. ### Building BIND BIND requires a UNIX or Linux system with an ANSI C compiler, basic POSIX support, and a 64-bit integer type. Successful builds have been observed on many versions of Linux and UNIX, including RedHat, Fedora, Debian, Ubuntu, SuSE, Slackware, FreeBSD, NetBSD, OpenBSD, Mac OS X, Solaris, HP-UX, AIX, SCO OpenServer, and OpenWRT. BIND is also available for Windows XP, 2003, 2008, and higher. See `win32utils/readme1st.txt` for details on building for Windows systems. To build on a UNIX or Linux system, use: $ ./configure $ make If you're planning on making changes to the BIND 9 source, you should run `make depend`. If you're using Emacs, you might find `make tags` helpful. Several environment variables that can be set before running `configure` will affect compilation: |Variable|Description | |--------------------|-----------------------------------------------| |`CC`|The C compiler to use. `configure` tries to figure out the right one for supported systems.| |`CFLAGS`|C compiler flags. Defaults to include -g and/or -O2 as supported by the compiler. Please include '-g' if you need to set `CFLAGS`. | |`STD_CINCLUDES`|System header file directories. Can be used to specify where add-on thread or IPv6 support is, for example. Defaults to empty string.| |`STD_CDEFINES`|Any additional preprocessor symbols you want defined. Defaults to empty string. For a list of possible settings, see the file [OPTIONS](OPTIONS.md).| |`LDFLAGS`|Linker flags. Defaults to empty string.| |`BUILD_CC`|Needed when cross-compiling: the native C compiler to use when building for the target system.| |`BUILD_CFLAGS`|Optional, used for cross-compiling| |`BUILD_CPPFLAGS`|| |`BUILD_LDFLAGS`|| |`BUILD_LIBS`|| #### macOS Building on macOS assumes that the "Command Tools for Xcode" is installed. This can be downloaded from https://developer.apple.com/download/more/ or if you have Xcode already installed you can run "xcode-select --install". This will add /usr/include to the system and install the compiler and other tools so that they can be easily found. #### Compile-time options To see a full list of configuration options, run `configure --help`. On most platforms, BIND 9 is built with multithreading support, allowing it to take advantage of multiple CPUs. You can configure this by specifying `--enable-threads` or `--disable-threads` on the `configure` command line. The default is to enable threads, except on some older operating systems on which threads are known to have had problems in the past. (Note: Prior to BIND 9.10, the default was to disable threads on Linux systems; this has now been reversed. On Linux systems, the threaded build is known to change BIND's behavior with respect to file permissions; it may be necessary to specify a user with the -u option when running `named`.) To build shared libraries, specify `--with-libtool` on the `configure` command line. Certain compiled-in constants and default settings can be increased to values better suited to large servers with abundant memory resources (e.g, 64-bit servers with 12G or more of memory) by specifying `--with-tuning=large` on the `configure` command line. This can improve performance on big servers, but will consume more memory and may degrade performance on smaller systems. For the server to support DNSSEC, you need to build it with crypto support. To use OpenSSL, you should have OpenSSL 1.0.2e or newer installed. If the OpenSSL library is installed in a nonstandard location, specify the prefix using "--with-openssl=<PREFIX>" on the configure command line. To use a PKCS#11 hardware service module for cryptographic operations, specify the path to the PKCS#11 provider library using "--with-pkcs11=<PREFIX>", and configure BIND with "--enable-native-pkcs11". To support the HTTP statistics channel, the server must be linked with at least one of the following: libxml2 [http://xmlsoft.org](http://xmlsoft.org) or json-c [https://github.com/json-c](https://github.com/json-c). If these are installed at a nonstandard location, specify the prefix using `--with-libxml2=/prefix` or `--with-libjson=/prefix`. To support compression on the HTTP statistics channel, the server must be linked against libzlib. If this is installed in a nonstandard location, specify the prefix using `--with-zlib=/prefix`. To support storing configuration data for runtime-added zones in an LMDB database, the server must be linked with liblmdb. If this is installed in a nonstandard location, specify the prefix using "with-lmdb=/prefix". To support GeoIP location-based ACLs, the server must be linked with libGeoIP. This is not turned on by default; BIND must be configured with "--with-geoip". If the library is installed in a nonstandard location, use specify the prefix using "--with-geoip=/prefix". For DNSTAP packet logging, you must have installed libfstrm [https://github.com/farsightsec/fstrm](https://github.com/farsightsec/fstrm) and libprotobuf-c [https://developers.google.com/protocol-buffers](https://developers.google.com/protocol-buffers), and BIND must be configured with "--enable-dnstap". Portions of BIND that are written in Python, including `dnssec-keymgr`, `dnssec-coverage`, `dnssec-checkds`, and some of the system tests, require the 'argparse' and 'ply' modules to be available. 'argparse' is a standard module as of Python 2.7 and Python 3.2. 'ply' is available from [https://pypi.python.org/pypi/ply](https://pypi.python.org/pypi/ply). On some platforms it is necessary to explicitly request large file support to handle files bigger than 2GB. This can be done by using `--enable-largefile` on the `configure` command line. Support for the "fixed" rrset-order option can be enabled or disabled by specifying `--enable-fixed-rrset` or `--disable-fixed-rrset` on the configure command line. By default, fixed rrset-order is disabled to reduce memory footprint. If your operating system has integrated support for IPv6, it will be used automatically. If you have installed KAME IPv6 separately, use `--with-kame[=PATH]` to specify its location. `make install` will install `named` and the various BIND 9 libraries. By default, installation is into /usr/local, but this can be changed with the `--prefix` option when running `configure`. You may specify the option `--sysconfdir` to set the directory where configuration files like `named.conf` go by default, and `--localstatedir` to set the default parent directory of `run/named.pid`. For backwards compatibility with BIND 8, `--sysconfdir` defaults to `/etc` and `--localstatedir` defaults to `/var` if no `--prefix` option is given. If there is a `--prefix` option, sysconfdir defaults to `$prefix/etc` and localstatedir defaults to `$prefix/var`. ### Automated testing A system test suite can be run with `make test`. The system tests require you to configure a set of virtual IP addresses on your system (this allows multiple servers to run locally and communicate with one another). These IP addresses can be configured by running the command `bin/tests/system/ifconfig.sh up` as root. Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules, and will be skipped if these are not available. Some tests require Python and the 'dnspython' module and will be skipped if these are not available. See bin/tests/system/README for further details. Unit tests are implemented using Automated Testing Framework (ATF). To run them, use `configure --with-atf`, then run `make test` or `make unit`. ### Documentation The *BIND 9 Administrator Reference Manual* is included with the source distribution, in DocBook XML, HTML and PDF format, in the `doc/arm` directory. Some of the programs in the BIND 9 distribution have man pages in their directories. In particular, the command line options of `named` are documented in `bin/named/named.8`. Frequently (and not-so-frequently) asked questions and their answers can be found in the ISC Knowledge Base at [https://kb.isc.org](https://kb.isc.org). Additional information on various subjects can be found in other `README` files throughout the source tree. ### Change log A detailed list of all changes that have been made throughout the development BIND 9 is included in the file CHANGES, with the most recent changes listed first. Change notes include tags indicating the category of the change that was made; these categories are: |Category |Description | |-------------- |-----------------------------------------------| | [func] | New feature | | [bug] | General bug fix | | [security] | Fix for a significant security flaw | | [experimental] | Used for new features when the syntax or other aspects of the design are still in flux and may change | | [port] | Portability enhancement | | [maint] | Updates to built-in data such as root server addresses and keys | | [tuning] | Changes to built-in configuration defaults and constants to improve performance | | [performance] | Other changes to improve server performance | | [protocol] | Updates to the DNS protocol such as new RR types | | [test] | Changes to the automatic tests, not affecting server functionality | | [cleanup] | Minor corrections and refactoring | | [doc] | Documentation | | [contrib] | Changes to the contributed tools and libraries in the 'contrib' subdirectory | | [placeholder] | Used in the master development branch to reserve change numbers for use in other branches, e.g. when fixing a bug that only exists in older releases | In general, [func] and [experimental] tags will only appear in new-feature releases (i.e., those with version numbers ending in zero). Some new functionality may be backported to older releases on a case-by-case basis. All other change types may be applied to all currently-supported releases. ### Acknowledgments * The original development of BIND 9 was underwritten by the following organizations: Sun Microsystems, Inc. Hewlett Packard Compaq Computer Corporation IBM Process Software Corporation Silicon Graphics, Inc. Network Associates, Inc. U.S. Defense Information Systems Agency USENIX Association Stichting NLnet - NLnet Foundation Nominum, Inc. * This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. [http://www.OpenSSL.org/](http://www.OpenSSL.org/) * This product includes cryptographic software written by Eric Young (eay@cryptsoft.com) * This product includes software written by Tim Hudson (tjh@cryptsoft.com) ======================================================================== * bind-9.11.4-P2/contrib/dnspriv/README.md ======================================================================== ### DNS Privacy in BIND This directory contains sample configuration files to enable BIND, with Nginx as a TLS proxy, to provide DNS over TLS. `named.conf` configures a validating recursive name server to listen on the localhost address at port 8853. `nginx.conf` configures a TLS proxy to listen on port 853 and forward queries and responses to `named`. For more information, please see [https://dnsprivacy.org/wiki/](https://dnsprivacy.org/wiki/) ======================================================================== * bind-9.11.4-P2/contrib/idn/idnkit-1.0-src/wsock/README.txt ======================================================================== idn wrapper - Client Side IDN Conversion Software for Windows Copyright (c) 2000,2001,2002 Japan Network Information Center. All rights reserved. *** NOTICE ****************************************************** If you have installed mDN Wrapper (former version of idn wrapper) on your system, you should unwrap all the programs before installing idn wrapper. ***************************************************************** 1. Introduction For supporting internationalized domain names, each client application should convert domain names (their encodings) to that DNS server accepts. This requires applications to handle internationalized domain names in its core, and it is the vendor's responsibility to make their programs IDN-compatible. Although there are ongoing efforts in IETF to standardize IDN framework (architecture, encoding etc.) and several RFCs are expected to be published soon as the result, not many applications support IDN to this date. So, there are needs for some helper application which makes legacy applications IDN-aware. `runidn' in idnkit is one of such solutions for Unix-like operating systems, and this software, `idn wrapper' is the one for Windows. On windows, name resolving request is passed to WINSOCK DLL. idn wrapper replaces WINSOCK DLL with the one that can handle IDN, which makes legacy windows applications compatible with IDN. 2. Architecture 2.1. Wrapper DLL Wrapper DLL resides between application and original DLL. It intercept application's calls to original DLL, and preforms some additional processing on those calls. +------------+ Call +------------+ Call +------------+ | |------->| |------->| | |Application | |Wrapper DLL | |Original DLL| | |<-------| |<-------| | +------------+ Return +------------+ Return +------------+ additional processing here DLL call from apllication is passed to wrapper DLL. Wrapper DLL then performs some additional processing on that call, and then calls original DLL. Also, result from original DLL will once passed to wrapper DLL and wrapper does additional process on that result, and finally result will passed to the application. idn wrapper provides wrapper DLLs for WINSOCK, WSOCK32.DLL WINSOCK V1.1 WS2_32.DLL WINSOCK V2.0 to resolve multi-lingual domain names. 2.2. Wrapping APIs idn wrapper performs additional processing on name resolving APIs in WINSOCK, listed below. both WINSOCK 1.1, WINSOCK 2.0 gethostbyaddr gethostbyname WSAAsyncGetHostByAddr WSAAsyncGetHostByName only in WINSOCK 2.0 getaddrinfo freeaddrinfo getnameinfo WSALookupServiceBeginA WSALookupServiceNextA WSALookupServiceEnd Some applications do not use these APIs to resolve domain names. `nslookup' is one of those programs. `nslookup' builds and parse DNS messages internally and does not use WINSOCK's name resolver APIs. idn wrapper cannot make those programs IDN-aware. NOTE: WINSOCK 2.0 also contains WIDE-CHARACTER based name resolution APIs, WSALookupServiceBeginW WSALookupServiceNextW idn wrapper does not wrap these APIs. These APIs are used in Microsoft's own internationalization framework. It is dangerous to convert to another internationalization framework. 2.3. Other APIs in WINSOCK For other APIs in WINSOCK, idn wrapper does nothing, only calls original DLL's entries. idn wrapper copies original WINSOCK DLLs with renaming as below, and forward requests to them. wsock32.dll -> wsock32o.dll ws2_32.dll -> ws2_32o.dll Wrappper DLL will be installed with original DLL names. So after installation of idn wrapper, WINSOCK DLLs should be wsock32.dll idn wrapper for WINSOCK V1.1 ws2_32.dll idn wrapper for WINSOCK V2.0 wsock32o.dll Original WINSOCK V1.1 DLL ws2_32o.dll Original WINSOCK V2.0 DLL 2.4. Asynchronous API Domain name conversion take place on request to DNS convert from local encoding to DNS compatible encoding response from DNS convert from DNS encoding to local encoding For synchronous APIs, local to DNS conversion is done before calling original API, and after return from original API, name should be converted from DNS encoding to local encoding. But WINSOCK having some asynchronous APIs, such as WSAAsyncGetHostByAddr WSAAsyncGetHostByName In these APIs, completion is notified with windows message. To perform DNS to local conversion, wrapper should hook target window procedure to capture those completion messages. So, if asynchronous API was called, idn wrapper set hook to target window procedure (passed with API parameter). If hook found notify message (also given with API parameter), then convert resulting name (in DNS encoding) to local encoding. 2.5. Installing Wrapper DLLs WINSOCK DLLs are placed at Windows's system directory. To wrap WINSOCK DLLs, one could do following sequence at system directory. + Rename Original WINSOCK DLLs ren wsock32.dll wsock32o.dll ren ws2_32.dll ws2_32o.dll + Install (copy in) Wrapper DLLs copy somewhere\wsock32.dll wsock32.dll copy somewhere\ws2_32.dll ws2_32.dll copy another DLLs also However, replacing DLLs in Window's system directory is very dangerous: a) If you re-install idn wrapper again, original WINSOCK DLLs may be lost. b) Some application or service pack will replace WINSOCK DLLs. It may corrupt WINSOCK environment. If these happen, at least networking does not work, and worse, Windows never startup again. So, idn wrapper usually does not wrap in the system directory, but wrap in each indivisual application's directory. In Windows, DLL will be searched in the following places: Application's Load Directory %SystemRoot%\System32 %SystemRoot% Directories in PATH and loaded & linked first found one. So if installed wrapper DLLs is found on application's load directory, the application's call to WINSOCK will wrapped. But some applications or DLLs are binded to specific DLL, they do not rely on above DLL's search path. For those applcaitons or DLLs, idn wrapper (in standard installation) cannot wrap them. NOTE: Netscape is one of those program. It cannot be wrapped if installed to applications directory. Also WINSOCK DLLs are also binded to related DLLs in system directory. On the other hand, Internet Explore or Window Media Player relys on standard DLL search path, and well wrapped with idn wrapper. 2.6. At which point conversion applied If windows supporting WINSOCK 2.0, there are DLLs one for 1.1 and another for 2.0, and call to WINSOCK 1.1 will redirected to 2.0 DLL. +------------+ Call +------------+ Call +------------+ | |------->| |------->| | |Application | |WINSOCK 1.1 | |WINSOCK 2.0 | | |<-------| |<-------| | +------------+ Return +------------+ Return +------------+ In this case, calls to 1.1 and 2.0 are both passed to 2.0 DLL. So conversion will done in WINSOCK 2.0 DLL side. If windows only supports WINSOCK 1.1, there's 1.1 DLL only. +------------+ Call +------------+ | |------->| | |Application | |WINSOCK 1.1 | | |<-------| | +------------+ Return +------------+ In this case, conversion must done in 1.1 DLL. If idn wrapper was installed on system directory, DLLs will work as described above. But if wrapper was installed on application's directory, call/return sequence changes. Original WINSOCK 1.1 DLL in windows seems binded to specific WINSOCK 2.0 DLL, placed at window's system diretory. So call from WINSOCK 1.1 to WINSOCK 2.0 will passed to original DLL (in system directory) and never passed to wrapper DLL in application's directory. So in this case, both 1.1 and 2.0 DLLs should coonvert domain name encodings. These DLL binding is not documented. It may be change on OS versions or DLL versions. So, mDn wrapper determines place of conversion on registry value. With this registry value, idn wrappper absolb OS/DLL variations. Registry values for idn wrapper will placed under HKEY_LOCAL_MACHINE\SOFTWARE\JPNIC\IDN HKEY_CURRENT_USER\SOFTWARE\JPNIC\IDN Place of conversion is determined with registry value "Where", Registry Value "Where" REG_DWORD 0 both on WINSOCK 1.1 and WINSOCK 2.0 1 if WINSOCK 2.0 exist, only in WINSOCK 2.0 otherwise, convert on WINSOCK 1.1 2 only in WINSOCK 1.1 3 only in WINSOCK 2.0 If you install idn wrapper into application's directory, use "0". If you install idn wrapper into system directory, use "1". If there are no "Where" value, idn wrapper uses "0" as default, it is suited to installation into application's directory (default installation). 2.7. Converting From/To Wrapper DLL convert resolving domain name encoded with local code to DNS server's encoding. Also, wrapper DLL convert resulting name ( encoded with DNS's encoding) back to local encoding. There are several proposals for DNS encodings to handle multi-lingual domain names. Wrapper DLL should be configured to convert to one of those encodings. This DNS side encoding will specified with registry. When installing idn wrapper, this registry will set to some (yet undefined) DNS encoding. Registry values for idn wrapper will placed under HKEY_LOCAL_MACHINE\SOFTWARE\JPNIC\IDN HKEY_CURRENT_USER\SOFTWARE\JPNIC\IDN DNS encoding name will given with registry value (REG_SZ) of "Encoding", this name must be one of encoding names which 'libmdn' recognize. Registry Value "Encoding" REG_SZ Encoding name of DNS server accepts. Local encodings (Windows Apllication Encodings) is generally acquired from process's code page. 'iconv' library, used for idn wrapper, generally accepts MS's codepage names. Some windows apllication encode domain name with some specific multi- lingual encoding. For example, if you configured IE to use UTF-8, then domain names are encoded with UTF-8. UTF-8 is one of proposed DNS encoding, but DNS server may expect another encoding. For those cases, idn wrapper accept program specific encoding as local encoding. These program specific local encoding should be marked in registry. Program specific registry setting will placed under HKEY_LOCAL_MACHINE\SOFTWARE\JPNIC\IDN\PerProg HKEY_CURRENT_USER\SOFTWARE\JPNIC\IDN\PerProg using program name (executable file name) as key. For example, setting specific to Internet Explore, it executable name is "IEXPLORE", will plcaed at HKEY_LOCAL_MACHINE\SOFTWARE\JPNIC\IDN\PerProg\IEXPLORE Local encoding name will specified with registry value (REG_SZ) of "Encoding". This name must be one of encoding names which ' recognize.libmdn' Registry Value "Encoding" REG_SZ Encoding name of application program encodes, if it is not system's default encoding. 3. Setup and Configuration idn wrapper wraps WINSOCK DLL by placing wrapper (fake) DLLs in the application's directory. For the installation, idn wrapper comes with a setup program and a configuration program. NOTE: You can also install idn wrapper DLLs in the Windows system directory. But this installation is very dangerous and may cause severe problems in your system. You should try it at your own risk. 3.1. Setup Program To install idn wrapper, run "setup.exe". Setup program will do: Installing Files Copy idn wrapper files (DLL, Program EXE, etc) into diretory "\Program Files\JPNIC\idn wrapper" This directory may be changed on setup sequence. Setting registry entries Setup program will create keys and values under registry: "HKEY_LOCAL_MACHINES\Software\JPNIC\IDN" InstallDir REG_SZ "" Pathname of the idn wrapper's installation directory. The installer makes copies of the original WINSOCK DLLs in that directory, which is referenced by the idn wrapper's fake DLLs. ConfFile REG_SZ "\idn.conf" Name of the idnkit's configuration file, which defines various parameter regarding multilingual domain name handling. See the contents of the file for details. This value can be changed with the Configuration Program or the registry editor. LogFile REG_SZ "\idn_wrapper.log" Name of the idn wrapper's log file. This value can be changed with the Configuration Program or the registry editor. LogLevel DWORD -1 Logging level. Default is -1, which indicates no logging is made. This value can be changed with the Configuration Program or the registry editor. PerProg KEY Under this key, idn wrapper set program specific values. idn wrapper uses program's executable name as key, and put values under that key. PerProg\\Where REG_DWORD Encoding Position PerProg\>progname>\Encoding REG_SZ Local Encoding Name Configuration program set local encpoding name. "Where" value is usually not required in standard installation. If you installed idn wrapper in system directory, chanage "Where" values to fit your environment. Creating ICON Setup program will create program icon for idn wrapper's configuration program, and put it into "Start Menu". You can start configuration program with it. 3.2. Configuration Program Configuration program is a tool for wrap specific program, or unwrap programs. If you start "Configuration Program", you'll get window like this. +---+-------------------------------------------------+---+---+---+ | | idn wrapper - Configuration | _ | O | X | +---+-------------------------------------------------+---+---+---+ | idn wrapper Configuration Program version X.X | +-----------------------------------------------------------------+ | Wrapped Program +---------+ | | +---------------------------------------------+---+ | Wrap.. | | | | | A | +---------+ | | | +---+ +---------+ | | | | | | Unwrap..| | | | | | +---------+ | | | | | +---------+ | | | | | |UnwrapAll| | | | | | +---------+ | | | | | +---------+ | | | | | |RewrapAll| | | | | | +---------+ | | | | | +---------+ | | | | | | Log.. | | | | | | +---------+ | | | | | +---------+ | | | +---+ |Advanced.| | | | | V | +---------+ | | +---+-------------------------------------+---+---+ +---------+ | | | < | | > | | Exit | | | +---+-------------------------------------+---+ +---------+ | +-----------------------------------------------------------------+ Listbox contains list of current wrapped programs. Initially it is empty. To wrap a program, press button "wrap". You'll get following dialog. +---+-------------------------------------------------+---+---+---+ | | idn wrapper - Wrap Executable | _ | O | X | +---+-------------------------------------------------+---+---+---+ | +----------------------------------------+ +--------+ | | Program: | | |Browse..| | | +----------------------------------------+ +--------+ | | +----------+ | | Encoding: | | o Default o UTF-8 | | +----------+ | | [] Force local DLL reference | +-----------------------------------------------------------------+ | +--------+ +--------+ | | | Wrap | | Cancel | | | +--------+ +--------+ | +-----------------------------------------------------------------+ First, enter program (executable name with full path) or browse wrapping exectable from file browser. Then set local encoding of that program. Usually use "Default" as local encoding. If target program uses internationalized encoding, then specify "UFT-8". The "Force local DLL reference" button controls the DLL search order of the program to be wrapped (Windows95 does not have this capability, hence this button does not appear). If it is checked, DLLs in the local directory (the directory which the executable file is in) are always preferred, even if the executable specifies otherwise. If you have problem with wrapping, checking this button may solve the problem, but it is also possible that it causes other problem. Finally, put "wrap" button to wrap specified program with given encoding. Wrapped program will be listed in listbox of the first window. When you install a new version of idn wrapper, you have to re-wrap your programs in order to update DLLs used for wrapping. "Rewrap all" button is provided for this purpose. Just press the button, and all the currently wrapped programs will be re-wrapped. To unwrap a program, press button "unwrap". You'll get following confirmating dialog. +---+-------------------------------------------------+---+---+---+ | | idn wrapper - Unwrap Executable | _ | O | X | +---+-------------------------------------------------+---+---+---+ | +---------------------------------------------------+ | | Program: | | | | +---------------------------------------------------+ | +-----------------------------------------------------------------+ | +--------+ +--------+ | | | Unwrap | | Cancel | | | +--------+ +--------+ | +-----------------------------------------------------------------+ If you unwrap a program, the program will be vanished from listbox of the first window. Also "Unwrap all" button is provided to unwrap all the programs that are currently wrapped. To configure logging, press button "log". You'll get the following dialog. +---+-------------------------------------------------+---+---+---+ | | idn wrapper - Log Configuration | _ | O | X | +---+-------------------------------------------------+---+---+---+ | Log Level: o None o Fatal o Error o Warning o Info o Trace | | | | +------------------------------------+ +---------+ | | Log File:| | | Browse..| | | +------------------------------------+ +---------+ | | +------+ +--------+ | |Log Operation: | View | | Delete | | | +------+ +--------+ | +-----------------------------------------------------------------+ | +--------+ +--------+ | | | OK | | Cancel | | | +--------+ +--------+ | +-----------------------------------------------------------------+ Logging level can be selected from the followings. None no logging at all Fatal only records fatal errors Error also records non-fatal errors Warning also records warning mssages Info also records informational messages Trace also records trace information Note that these levels are for log output from IDN library (idnkit.dll). idn wrapper itself supports only off (None) and on (the rest). Pathname of the log file can also be specified with this dialog. You can view the current log file contents by pressing "View" button, or delete it by "Delete" button. Note that log level and log file configuration doesn't affect already running processes. Press "advanced" button to invoke the advanced configuration dialog. This dialog is for advanced users and enables customization for some basic parameters which normal users need not change, since appropriate defaults are provided. +---+-------------------------------------------------+---+---+---+ | | idn wrapper - Advanced Configuration | _ | O | X | +---+-------------------------------------------------+---+---+---+ | IDN Wrapping Mode | | o Wrap both WINSOCK 1.1 and WINSOCK 2.0 | | o Wrap only WINSOCK 1.1 | | o Wrap only WINSOCK 2.0 | | o Wrap only WINSOCK 2.0 if it exists. | | Otherwise wrap only WINSOCK 1.1 | +-----------------------------------------------------------------+ | IDN Configuration | | +--------------------------------+ +----------+ | | Config File: | | | Browse.. | | | +--------------------------------+ +----------+ | | +------+ | | | Edit | | | +------+ | +-----------------------------------------------------------------+ | +--------+ +--------+ | | | OK | | Cancel | | | +--------+ +--------+ | +-----------------------------------------------------------------+ With the dialog users can do the following configuration. Wrapping Mode Customize wrapping mode. Normally the default item should be appropriate. Changing it to other item may help when you have problems. IDN Configuration Set the configuration file for multilingual domain name handling. By pressing "Edit" button, you can edit then contents of the file. 4. Limitations 4.1. DLL Versions Wrapper DLL is tightly coupled with specific DLL version, because it must export all the entries including un-documented ones. If WINSOCK DLL version changed, idn wrapper may not work correctly. Current idn wrapper is tested on Win2000 (WINSOCK 1.1 + 2.0) WinME (WINSOCK 1.1 + 2.0) But there are no assuarance for future versions of Windows. 4.2. DNS, WINS, LMHOSTS There are three name resolving methods in windows, DNS, WINS and LMHOSTS. Using idn wrapper, domain name conversion will performed on all of thoses methods. It may cause some trouble if windows using WINS or LMHOSTS. We recommend use DNS oly if you want to use idn wrapper. 4.3. Converting Names other than Domain Name In WINSOCK 2.0, there are generic name resolution APIs are introduced. WSALookupServiceBeginA WSALookupServiceNextA WSALookupServiceEnd They are use mainly domain name conversion now, but not limited to resolving domain name. idn wrapper hooks this API and convert given name anyway. This causes some trouble if conversion name is not domain name. 4.4. Applications don't use these APIa Some applications don't use these APIs to resolving domain names. For example, 'nslookup' issue DNS request locally. For these applications, idn wrapper does not work. 4.5. Applications bound to specific WINSOCK DLL Some applications are bound to specific DLL, not relying on standard DLL search path. Netscape Communicator seems to be one of such programs. idn wrapper in standard installation cannot wrap such programs. If you want to wrap those programs, you may use installation into system directory. But this installation is very dangerous, for it is possible that your system cannot boot again. 5. Registry Setting - Summary 5.1. Priority of Setting Settings of idn wrapper is placed on registry Software\JPNIC\IDN under HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER. idn wrapper first read HKEY_LOCAL_MACHINE, and if HKEY_CURRENT_USER exist, overwrite with this one. Usually set HKEY_LOCAL_MACHINE only. But if you need per user setting, then set HKEY_CURRENT_USER. Note that the configuration program reads/writes only HKEY_LOCAL_MACHINE. 5.2. Registry Key There's common settings and per program settings. _Common Settings Software\JPNIC\IDN\InstallDir Installation directory Software\JPNIC\IDN\Where Where to convert encoding 0: both WINSOCK 1.1 and WINSOCK 2.0 1: if WINSOCK 2.0 exist, convert at 2.0 DLL if WINSOCK 1.1 only, convert at 1.1 DLL 2: only in WINSOCK1.1 3: only in WINSOCK2.0 Software\JPNIC\IDN\ConfFile idnkit Configuration File Software\JPNIC\IDN\LogFile Log File Software\JPNIC\IDN\LogLevel Log Level _Per Program Settings Converting position and program's local encoding may be set per program bases. Software\JPNIC\IDN\PerProg\\Where Software\JPNIC\IDN\PerProg\\Encoding If not specified, the following values are assumed. Where 0 (both 1.1 DLL and 2.0 DLL) Encoding [process's code page] ======================================================================== * bind-9.11.4-P2/contrib/idn/idnkit-1.0-src/wsock/README_j.txt ======================================================================== idn wrapper - Windows におけるクライアント側での IDN 変換ソフトウェア Copyright (c) 2000,2001,2002 Japan Network Information Center. All rights reserved. *** 注意 ********************************************************** もしもすでに mDN Wrapper (idn wrapper の前身) がインストールされて いるマシンに idn wrapper をインストールする場合には、インストール前 に、ラップされているすべてのプログラムをアンラップしてください。 ******************************************************************* 1. はじめに Windows で国際化ドメイン名を扱えるようにするためには、Windows 上の クライアントアプリケーションにおいて、解決しようとする名前のエンコー ディングを、DNS サーバが受付ける形式のものに変換する必要があります。 これは、Windows 上のアプリケーションが、きちんと国際化ドメイン名を 扱えるようになっていなければならない、ということであり、本来はそれ ぞれのプログラムの作成者が行なうべきことです。 現在 IETF にて国際化ドメイン名のフレームワークを標準化する努力が続 けられており、その結果として一連の RFC がもうすぐ発行されることに なっていますが、それでも国際化ドメイン名に対応したアプリケーション はまだまだ少ないのが現状です。 そこで、既存のアプリケーションを国際化ドメイン名に対応させるための ヘルパーアプリケーションが必要になります。idnkit に含まれる runidn コマンドは Unix 系の OS での一つの解決策ですし、Windows に対する解 決策としてはここで説明する idn wrapper があります。 Windows において、多くの場合、ドメイン名解決の要求はWINSOCK DLL に 渡されます。そこで、WINSOCK DLL を国際化ドメイン名対応のものに置き 換えてやれば、既存のプログラムからでも国際化ドメイン名を使うことが できるようになります。 2. 実現方法 2.1. ラッパーDLL ラッパーDLL は、アプリケーションと元のDLL との間に割り込んで、アプリ ケーションからのDLL の呼び出しを横取りして、本来のDLL とは異なった処 理をさせるものです。 +------------+ Call +------------+ Call +------------+ | |------->| |------->| | |Application | |Wrapper DLL | |Original DLL| | |<-------| |<-------| | +------------+ Return +------------+ Return +------------+ additional processing here アプリケーションからのDLL の呼び出しはラッパー DLLに渡されます。ラッ パー DLLはそこで、付加的な処理を行なって、元のDLL のエントリを呼び出 します。また、元のDLL の処理結果は一旦ラッパー DLLに返され、ここでも 付加的な処理を行なって、最終的な結果がアプリケーションに返されること になります。 idn wrapper では、WINSOCK DLLの WSOCK32.DLL WINSOCK V1.1 WS2_32.DLL WINSOCK V2.0 に対するラッパーDLL を提供して、国際化ドメイン名の名前解決ができるよ うにします。16ビット版のWINSOCK (WINSOCK.DLL) は対象外です。 2.2. 処理対象のAPI idn wrapper はWINSOCK の名前解決に関連したAPI についてのみ付加的な処 理を行ないます。処理の対象となるWINSOCK APIは以下のものです。 WINSOCK 1.1, WINSOCK 2.0 の両方にあるもの gethostbyaddr gethostbyname WSAAsyncGetHostByAddr WSAAsyncGetHostByName WINSOCK 2.0 だけにあるもの WSALookupServiceBeginA WSALookupServiceNextA WSALookupServiceEnd アプリケーションによっては、これらのAPI を使わないで独自にドメイン名 の解決を行なうものもあります。例えば、nslookupは、これらのAPI を使わ ないで、内部で独自にDNS リクエストの生成、解釈を行なっています。当然 のことながら、これらのアプリケーションについては、idn wrapper では多 言語化対応させることはできません。 注:WINSOCK 2.0 には、WIDE CHARACTER ベースの名前解決のAPI として WSALookupServiceBeginW WSALookupServiceNextW もありますが、これらについてはラップしません。これらのAPI はマ イクロソフト仕様による国際化に対応したものですから、そのフレー ムワーク上で使うべきものです。これらについては他の多言語化フレー ムワークに変換してしまうのは危険ではないと判断しました。 2.3. 処理対象外のAPI 上記以外のWINSOCK API については、idn wrapper はなにもしないで、元の WINSOCK API を呼び出します。 idn wrapper では、元のWINSOCK DLL を名前を変えてコピーし、それを 呼び出すように作られています。 wsock32.dll -> wsock32o.dll ws2_32.dll -> ws2_32o.dll ラッパーDLL は元のWINSOCK DLL と同じ名前で作成されます。従ってidn wrapper がインストールされた状態では、 wsock32.dll idn wrapper for WINSOCK V1.1 ws2_32.dll idn wrapper for WINSOCK V2.0 wsock32o.dll Original WINSOCK V1.1 DLL ws2_32o.dll Original WINSOCK V2.0 DLL となります。 2.4. 非同期 API ドメイン名の変換は、以下のタイミングで行なわれる必要があります。 DNS へのリクエスト時 ローカルエンコーディング -> DNS エンコーディング DNS からの応答受信時 DNS エンコーディング -> ローカルエンコーディング 同期API においては、ローカルエンコーディングからDNS エンコーディング への変換は、元のAPI を呼び出す前に行われ、DNS エンコーディングからロー カルエンコーディングへの変換は、元のAPI から復帰してきたところで行な われます。 しかし、WINSOCK の以下のAPI は非同期API で、DNS からの応答受信前に復 帰してしまいます。 WSAAsyncGetHostByAddr WSAAsyncGetHostByName これらのAPI においては、名前解決の完了は、Windows へのメッセージによっ て通知されます。このため、DNS エンコーディングからローカルエンコーディン グへの変換を行なうには、ラッパーは通知先のウィンドウプロシジャのメッ セージキューをフックして、この完了メッセージを捕獲する必要があります。 そこで、非同期API が呼び出された場合には、idn wrapper は、通知先のウィン ドウプロシジャ(これはAPI のパラメタで指示されます)にフックを設定し ます。フックが完了メッセージ(これもAPI のパラメタで指示されます)を 検出したなら、フックは結果の格納領域(これもAPI のパラメタで指示され ています)のドメイン名を、DNS 側のエンコーディングからローカルエンコー ディングに変換するものとします。 2.5. Wrapper DLL のインストール WINSOCK DLL はWindows のシステムディレクトリに置かれています。 WINSOCK を確実にラップするには、システムディレクトリにおいて オリジナルWINSOCK DLL の名前の変更 ren wsock32.dll wsock32o.dll ren ws2_32.dll ws2_32o.dll ラッパーDLL の導入 copy somewhere\wsock32.dll wsock32.dll copy somewhere\ws2_32.dll ws2_32.dll copy another DLLs also を行なう必要があります。 しかし、システムディレクトリでこのようなDLL の置き換えを行なうのは大 変危険な操作になります。 a) DLL を入れ替えた状態で、もういちど同じ操作を行なうと、オリジナル のWINSOCK DLL が失われてしまうことになります。 b) サービスパックやアプリケーションなどで、WINSOCK DLL を再導入する ものがありますが、これによってもWINSOCK が利用不能になることがあ ります。 このような状態になると、ネットワーク機能が全く使えなくなったり、最悪 はWindows の起動すら出来なくなる可能性があります。 そこで、idn wrapper では、上のようなシステムレベルのラップではなく、 アプリケーションに対するラップを基本機能として提供するものとします。 Windows において、DLL は、基本的には アプリケーションのロードディレクトリ %SystemRoot%\System32 %SystemRoot% PATH で指示されるディレクトリ の順序で検索されて、最初に見つかったものがロードされます。ですから、 一般的には、DLL をアプリケーションのロードディレクトリにインストール すれば、そのアプリケーションからのWINSOCK の呼び出しをラップすること ができます。 ただし、いくつかのアプリケーション、DLL では、検索パスを経由せずに特 定のDLL をリンクするようになっているものがあります。このような構成の アプリケーション、DLL が使われた場合には idn wrapperでは対処すること はできません。 注:Netscapeは特定DLL にバインドされているようで、アプリケーションディ レクトリへのインストールではラップできません。WINSOCK DLL 自体も システムディレクトリの関連DLL にバインドされているようです。一方、 Internet ExploreやWindows Media Playerは標準のサーチパスに従って いるので、ラップすることができます。 2.6. エンコーディングの変換位置 WINSOCK 2.0 をサポートしているWindows には、WINSOCK の1.1 と2.0 のそ れぞれに対応するDLL があり、WINSOCK 1.1 のAPI の呼び出しは2.0 の同じ エントリにリダイレクトされるようになっています。 +------------+ Call +------------+ Call +------------+ | |------->| |------->| | |Application | |WINSOCK 1.1 | |WINSOCK 2.0 | | |<-------| |<-------| | +------------+ Return +------------+ Return +------------+ この場合には1.1 に対する呼び出しも2.0 に対する呼び出しも、ともにV2.0 用のDLL に渡されるので、2.0用のラッパーDLL 側だけでエンコーディングの 変換を行なうようにするべきでしょう。 一方、WINSOCK 1.1 しかサポートしていない場合(Win95)には、1.1 に対応し たDLL しかありません。 +------------+ Call +------------+ | |------->| | |Application | |WINSOCK 1.1 | | |<-------| | +------------+ Return +------------+ この場合には必然的に1.1 用のラッパーDLL でエンコーディングを変換しな ければなりません。 idn Wrapepr がwindows のシステムディレクトリにインストールされた場合 には、上の通りに動作するので、 WINSOCK 2.0 あり 2.0 ラッパーで変換 WINSOCK 1.1 のみ 1.1 ラッパーで変換 する必要があります。 しかし、アプリケーションディレクトリにインストールされた場合には動作 が変わってきます。Windows 付属の WINSOCK 1.1 DLLは、システムディレク トリのWINSOCK 2.0 にバインドされているため、アプリケーションディレク トリ側のWINSOCK 2.0 ラッパーDLL にはリダイレクトされてきません。この ため、アプリケーションディレクトリへのインストールにおいては、1.1DLL、 2.0DLLの両方でエンコーディングを変換する必要があります。 このようなDLL 間のバインディングはドキュメントされていませんので、環 境、バージョンによっては異なった動作をするかも知れません。そこでidn wrapper では、レジストリ値によって、ラッパーDLL のどこで変換を行なう かを決定するようにして、インストール先による差異、あるいはバージョン による差異を吸収するようにします。 idn wrapper 用のレジストリ設定は HKEY_LOCAL_MACHINE\SOFTWARE\JPNIC\IDN HKEY_CURRENT_USER\SOFTWARE\JPNIC\IDN 以下に配置されます。エンコーディング変換を行なう位置については、この 直下のレジストリ値 Where(REG_DWORD) によって決定します。有効な値は、 レジストリ Where (REG_DWORD) 0 WINSOCK 1.1、WINSOCK 2.0 の両方で変換する 1 WINSOCK 2.0 があれば、WINSOCK 2.0だけで変換する WINSOCK 1.1 だけの場合には WINSOCK 1.1 で変換する 2 WINSOCK 1.1 だけで変換する 3 WINSOCK 2.0 だけで変換する の4通りです。アプリケーションディレクトリにインストールする場合には 「0」を、システムディレクトリにインストールする場合には「1」を設定 する必要があります。レジストリ値が存在しない場合には「0」を想定しま す。これはアプリケーションディレクトリへのインストールを標準としたも のです。 2.7. 変換元/先のエンクコーディング ラッパーDLL では、解決しようとするドメイン名を、マシンのローカルエン コーディングからDNS サーバのエンコーディングに変換し、また、DNS が返 してきたドメイン名(DNS サーバのエンコーディング)をマシンのローカルエン コーディングに戻します。 現在、DNS 側の国際化エンコーディングについては、いくつもの方式が提 案されています。ラッパーDLL はそれらのDNS 側エンコーディングのどれか ひとつに変換するように構成されます。このDNS 側エンコーディングはレジ ストリで指示されます。このレジストリには、idn wrapper のインストール 時に(現時点では未定の)デフォルトエンコーディングが設定されます。当 然、このレジストリは、後で他のものに変更することもできます。 idn wrapper 用のレジストリ設定は HKEY_LOCAL_MACHINE\SOFTWARE\JPNIC\IDN HKEY_CURRENT_USER\SOFTWARE\JPNIC\IDN 以下に配置されます。DNS 側のエンコーディングはレジストリ値 Encoding (REG_SZ)で指示されます。このエンコーディング名は、libmdnで認識され るものでなければなりません。 レジストリ Encoding (REG_SZ) DNS サーバ側のエンコーディング名を設定します 一方、アプリケーションが使用しているローカルエンコーディングは、通常 はプロセスのコードページから求めます。ラッパーDLL が使用する 'iconv' ライブラリは、windows のコードページ名をエンコーディング名として受付 けることができるので、コードページ名をそのままローカルエンコーディン グ名として使用します。 しかし、アプリケーションによっては、特定の国際化エンコーディングで ドメイン名をエンコーディングしてしまうものもあります。例えば、IEでは ドメイン名をUTF-8 で表記するように指示することができるようになってい ます。UTF-8 によるエンコーディングは、提案されている国際化方式のひ とつですが、国際化されたDNS サーバは他のエンコーディングしか受付け ないかも知れません。 このような状況に対処するため、idn ラッパーは、ローカルエンコーディン グとしてプログラム特有のエンコーディングも受付けることができるように します。このようなプログラム特有のローカルエンコーディングはレジスト リ記載されるものとします。 idn wrapper 用のプログラム特有のレジストリ設定は HKEY_LOCAL_MACHINE\SOFTWARE\JPNIC\IDN\PerProg HKEY_CURRENT_USER\SOFTWARE\JPNIC\IDN\PerProg 以下に、プログラム名(実行モジュールファイル名)をキーとして配置され ます。例えば、Internet Explore の場合には、実行モジュール名の IEXPLOREをキーとして HKEY_LOCAL_MACHINE\SOFTWARE\JPNIC\IDN\PerProg\IEXPLORE 以下に置かれます。ローカルエンコーディング名は、レジストリ値 Encoding (REG_SZ)で指示します。これもlibmdnで認識されるものでなけれ ばなりません。 レジストリ Encoding (REG_SZ) アプリケーションプログラム特有のエンコーディング名(デフォル トのエンコーディング以外を必要とする場合)を指定します。 3.セットアップとコンフィギュレーション idn wrapper は、基本インストレーションとして、アプリケーションディレ クトリでWINSOCK をラップします。これに合わせて、セットアッププログラ ムとコンフィギュレーションプログラムとを提供します。 注:システムディレクトリでのラップも可能ですが、これは危険な設定です ので、標準インストレーションとしては提供しません。システムディレ クトリへのインストールを行なう場合には、自己責任でやってください。 3.1.セットアッププログラム idn wrapper をインストールするには"setup.exe" を実行します。セットアッ ププログラムは以下の処理を実行します。 ファイルのインストール ディレクトリ「\Program Files\JPNIC\idn wrapper」 ( セットアップ 時点で変更可能)以下に、idn wrapper を構成するファイルをコピーし ます。 レジストリの設定 HKEY_LOCAL_MACHINE\Software\JPNIC\IDN 以下に必要なレジストリキー、 レジストリ値を作成、設定します。 InstallDir REG_SZ "<インストールディレクトリ>" idn wrapper のインストールディレクトリのパス名です。セット アッププログラムはこのディレクトリにオリジナルのWINSOCK DLL のコピーを作成します。idn wrapper のラッパー DLL は実 行時にこの DLL を参照します。 ConfFile REG_SZ "<インストールディレクトリ>\idn.conf" idn wrapper が国際化ドメイン名の変換処理に使用している idnkit のコンフィギュレーションファイルの名前です。このファ イルは国際化ドメイン名の処理に必要な各種のパラメータを設定 するためのものです。詳しくはファイルの内容をご覧ください。 この値は後述するコンフィギュレーションプログラムで変更する ことができます。 LogFile REG_SZ "<インストールディレクトリ>\idn_wrapper.log" idn wrapper のログファイルの名前です。この値もコンフィギュ レーションプログラムで変更することができます。 LogLevel DWORD -1 ログレベルの指定です。デフォルトは -1 で、これは全くログを 出力しないという意味です。この値もコンフィギュレーションプ ログラムで変更することができます。 PerProg キー プログラム毎の設定値を格納するためのキーです。この下に、プロ グラムの実行モジュール名をキーとしてプログラム個別の設定が記 録されます。設定される情報は以下の二つです。 PerProg\\Where REG_DWORD 変換位置 PerProg\\Encoding REG_SZ エンコーディング名 エンコーディング名は通常コンフィギュレーションプログラムによっ て設定されます。変換位置は、標準インストールでは不要です。シ ステムディレクトリへのインストールを行なった場合には、レジス トリエディタで環境に合わせて設定する必要があります。 アイコンの作成 コンフィギュレーションプログラムのアイコンを作成し、スタートメニュー に登録します。これによってコンフィギュレーションプログラムを起動 することができます。 アンインストールするには、コントロールパネルの「アプリケーションの追 加と削除」で、「idn wrapper」 を選択して削除(「追加と削除」ボタン) します。 3.2.コンフィギュレーションプログラム コンフィギュレーションプログラムは、アプリケーションを特定してラップ したり、アプリケーションのラップを解除するためのツールです。 起動すると以下のような画面が表示されます。 ┌─┬─────────────────────────┬─┬─┬─┐ │ │idn wrapper - Configuration │_│□│×│ ├─┴─────────────────────────┴─┴─┴─┤ │ idn wrapper Configuration Program version X.X │ ├─────────────────────────────────┤ │ Wrapped Program ┌─────┐│ │┌──────────────────────┬─┐│ Wrap.. ││ ││ │∧│└─────┘│ ││ ├─┤┌─────┐│ ││ │ ││ Unwrap.. ││ ││ │ │└─────┘│ ││ │ │┌─────┐│ ││ │ ││UnwrapAll.││ ││ │ │└─────┘│ ││ │ │┌─────┐│ ││ │ ││RewrapAll.││ ││ │ │└─────┘│ ││ │ │┌─────┐│ ││ │ ││ Log.. ││ ││ │ │└─────┘│ ││ │ │┌─────┐│ ││ ├─┤│Advanced..││ ││ │∨│└─────┘│ │├─┬──────────────────┬─┼─┘┌─────┐│ ││〈│ │〉│ │ Exit ││ │└─┴──────────────────┴─┘ └─────┘│ └─────────────────────────────────┘ リストボックスには、その時点でラップされているプログラムが表示されま す。最初に実行した場合には空になっています。 プログラムをラップするには、"wrap"ボタンを押します。"wrap"ボタンを押 すと以下のようなダイアログが表示されます。 ┌─┬────────────────────────┬─┬─┬─┐ │ │idn wrapper - Wrap Executable │_│□│×│ ├─┴────────────────────────┴─┴─┴─┤ │ ┌───────────────────┐┌────┐│ │ Program: │ ││Browse..││ │ └───────────────────┘└────┘│ │ ┌───┐ │ │Encoding: │ │ ○Default ○UTF-8 │ │ └───┘ │ │ □ Force local DLL reference │ ├────────────────────────────────┤ │ ┌────┐┌────┐│ │ │ wrap ││ cancel ││ │ └────┘└────┘│ └────────────────────────────────┘ 最初に、ラップするプログラムの実行ファイル名を設定します。直接入力 するか、ブラウズボタンでファイルを探してください。次にそのプログラ ムのローカルエンコーディングを指定します。通常は「Default」 でかま いません。プログラムが国際化エンコーディングに従っている場合にのみ 「UTF-8」 を指示します。 「Force local DLL reference」ボタンにより、ラップするプログラムの DLL の探索順序を変更することができます (ただし Windows95 にはこの 機能がないため、このボタンも表示されません)。このボタンをチェック すると、たとえプログラムが別の場所の DLL を指定していても、常に実 行ファイルがあるディレクトリの DLL が優先されるようになります。も しプログラムがうまくラップできない場合には、このボタンをチェックす るとうまくいくかもしれません。ただし同時に他の問題が発生する可能性 もあります。 最後に「wrap」ボタンを押せば、プログラムが、指定されたエンコーディ ングでラップされます。ラップされたプログラムは、最初のウィンドウの リストボックスに反映されます。 idn wrapper をバージョンアップした場合には、ラップ用の DLL をアップ デートするために、プログラムを再ラップする必要があります。このために、 現在ラップされているプログラムに対して再度ラップを行うための「rewrap all」ボタンが用意されています。 プログラムに対するラップを解除するには、リストボックスで解除するプロ グラムを選択して、「unwrap」ボタンを押します。以下の確認用のダイアロ グが表示されますので、間違いがなければ「unwrap」ボタンを押してくださ い。 ┌─┬────────────────────────┬─┬─┬─┐ │ │idn wrapper - Unwrap Executable │_│□│×│ ├─┴────────────────────────┴─┴─┴─┤ │ ┌─────────────────────────┐│ │Program: │ ││ │ └─────────────────────────┘│ ├────────────────────────────────┤ │ ┌────┐┌────┐│ │ │ Unwrap ││ Cancel ││ │ └────┘└────┘│ └────────────────────────────────┘ ラップが解除されると、そのプログラムは最初のウィンドウのリストボック スからも削除されます。 プログラムに対して現在設定されているラップをすべて解除するための 「unwrap all」ボタンも用意されています。 ログの設定を行うには、"log" ボタンを押します。次のようなダイアログが 表示されます。 ┌─┬────────────────────────┬─┬─┬─┐ │ │idn wrapper - Log Configuration │_│□│×│ ├─┴────────────────────────┴─┴─┴─┤ │ Log Level: ○None ○Fatal ○Error ○Warning ○Info ○Trace │ │ ┌─────────────────┐┌────┐│ │ Log File:│ ││Browse..││ │ └─────────────────┘└────┘│ │ ┌───┐ ┌───┐ │ │Log Operation:│ View │ │Delete│ │ │ └───┘ └───┘ │ ├────────────────────────────────┤ │ ┌────┐┌────┐│ │ │ OK ││ Cancel ││ │ └────┘└────┘│ └────────────────────────────────┘ ログレベルは次の中から選択することができます。 None ログを出力しない Fatal 致命的エラーのみ記録する Error 致命的でないエラーも記録する Warning 警告メッセージも記録する Info その他の情報も記録する Trace トレース出力も記録する ここにあげたログレベルの設定は、IDN ライブラリ (idnkit.dll) が出力する ログに対してのみ有効です。idn wrapper 自身が出力するログは ON/OFF しかできません。None を指定すると OFF に、それ以外のレベルを指定すると ON になります。 このダイアログを用いて、ログファイルのパス名を指定することもできます。 また、ログファイルの内容を表示させたり、ログファイルを削除することも 可能です。 ログレベルやログファイルの設定は、設定時にすでに動作しているプロセス には影響を与えないことに気をつけてください。 "advanced" ボタンを押すと「advanced configuration」用のダイアログ が表示されます。このダイアログは上級ユーザのためのもので、適切なデ フォルトが設定されているために通常ユーザが変更する必要のないような 基本的なパラメータを変更することができます。 ┌─┬────────────────────────┬─┬─┬─┐ │ │idn wrapper - Advanced Configuration │_│□│×│ ├─┴────────────────────────┴─┴─┴─┤ │ IDN Wrapping Mode │ │ ○Wrap both WINSOCK 1.1 and WINSOCK 2.0 │ │ ○Wrap only WINSOCK 1.1 │ │ ○Wrap only WINSOCK 2.0 │ │ ○Wrap only WINSOCK 2.0 if it exists. │ │ Otherwise wrap only WINSOCK 1.1 │ ├────────────────────────────────┤ │ IDN Configuration │ │ ┌─────────────────┐┌────┐│ │ Log File:│ ││Browse..││ │ └─────────────────┘└────┘│ │ ┌───┐ │ │ │ Edit │ │ │ └───┘ │ ├────────────────────────────────┤ │ ┌────┐┌────┐│ │ │ OK ││ Cancel ││ │ └────┘└────┘│ └────────────────────────────────┘ このダイアログを使用して、次の3種類の設定を行うことができます。 Wrapping Mode ラップ方法を設定します。通常はデフォルトで設定されている項目を 選択しておけばよいはずですが、問題が起ったときには別の項目にす ると動くようになるかもしれません。 IDN Configuration コンフィギュレーションファイル名を指定します。また "Edit" ボタ ンを押すことにより、ファイルの内容を編集することも可能です。 4. 制限事項 4.1. DLL バージョン ラッパーDLL は、元のWINSOCK のDLL のバージョンに強く依存します。これ は、非公開のエントリも含めてすべてのエントリを提供する必要があるため です。このためWINSOCK DLL のバージョンが変わると、idn wrapper が動作 しなくなる可能性があります。 今回作成されたidn wrapper は、 Win2000 (WINSOCK 1.1 + 2.0) WinME (WINSOCK 1.1 + 2.0) で動作を確認しています。ただ、将来にわたって動作する保証はありません。 4.2. DNS, WINS, LMHOSTS Windows では、DNS だけではなく、WINSやLMHOSTS によってもドメイン名、 ホスト名の解決が行なわれます。idn wrapper を使った場合には、ドメイン 名の変換が、これらの方式へのディスパッチを行なう場所よりも上位層で行 なわれるので、これらのすべての方式について、ドメイン名、ホスト名の変 換が行なわれることになります。このため、Windows が、WINSやLMHOSTS を 使っている場合には、予期しない問題が発生する可能性があります。これに ついては、idn wrapper を使う場合には、名前解決にDNS だけを使用するこ とをお勧めします。 3.3. ドメイン名以外の名前の解決 WINSOCK 2.0 の名前解決API WSALookupServiceBeginA WSALookupServiceNextA WSALookupServiceEnd は、ドメイン名以外でも使用できる、汎用の名前解決用のAPI として定義さ れています。現時点では、これらはもっぱらドメイン名の解決で使用されて いますが、他の名前(例えばサービス名)の解決にも使用できることになって います。 idn wrapper は、名前の対象の如何にかかわらず、名前のエンコーディング を変換してしまうので、これらのAPI が、ドメイン名以外の解決に使われて いる場合には、問題を引き起こす可能性があります。 4.4. 名前解決API を使わないプログラム アプリケーションによっては、ドメイン名の解決にこれらのAPI を使用しな いものもあります。例えば、'nslookup'は、これらのAPI を使用しないで、 直接DNS サーバと通信してしまいます。このようなアプリケーションについ ては、idn wrapper は役に立ちません。 4.5. 特定WINSOCK DLL にバインドされたアプリケーション アプリケーションによっては、標準のDLL サーチパスに従わないで、特定の パスのDLL にバインドされているものがあります。よく使われるプログラム の中では、Netscape Communicator がそうなっています。このようなプログ ラムについては、標準のインストール/コンフィギュレーションではラップ することはできません。 このようなプログラムについて、どうしてもラップする必要があるなら、シ ステムディレクトリへのインストールを行なうことができます。ただし、こ のインストールは大変危険で、場合によってはシステムを再起動不能にして しまう可能性もあります。 5. レジストリ設定 - まとめ 5.1. レジストリの優先順位 idn wrapper の設定情報は、HKEY_LOCAL_MACHINE、HKEY_CURRENT_USERの Software\JPNIC\IDN 以下に格納されます。idn wrapperは最初にHKEY_LOCAL_MACHINEの設定を読 み込み、HKEY_CURRENT_USER側にも設定があれば、これで上書きします。通 常は、HKEY_LOCAL_MACHINE 側だけを設定します。ユーザ個別に異なった設 定を使いたい場合のみ、HKEY_CURRENT_USERを設定するようにしてください。 なお、コンフィギュレーションプログラムは HKEY_LOCAL_MACHINE の設定 だけを読み書きするようになっています。 4.2. レジストリキー 全体の共通の設定と、プログラム個別設定とがあります。 _共通定義 Software\JPNIC\IDN\InstallDir インストールディレクトリ Software\JPNIC\IDN\Where 変換位置 0:WINSOCK1.1 WINSOCK2.0の両方で 1:WINSOCK2.0 があればそちらで 2:WINSOCK1.1 だけで 3:WINSOCK2.0 だけで Software\JPNIC\IDN\ConfFile idnkit の設定ファイル Software\JPNIC\IDN\LogLevel ログレベル Software\JPNIC\IDN\LogFile ログファイル _プログラム個別設定 変換位置、およびプログラム側のエンコーディングはプログラム毎に特定す ることもできます。これらは、以下のキーハイブの下に、プログラム名をキー とする値で設定します。 Software\JPNIC\IDN\PerProg\\Where Software\JPNIC\IDN\PerProg\\Encoding 指定されていない場合には、 Where 0 1.1、2.0 の両方で変換 Encoding プロセスのコードページ とみなします。 ======================================================================== * bind-9.11.4-P2/doc/arm/README-SGML ======================================================================== Copyright (C) Internet Systems Consortium, Inc. ("ISC") See COPYRIGHT in the source root or http://isc.org/copyright.html for terms. The BIND v9 ARM master document is now kept in DocBook 5 XML format. Most of the ARM is in the single file "Bv9ARM-book.xml", with certain other files included into it: - dlz.xml - dnssec.xml - libdns.xml - logging-categories.xml - managed-keys.xml - notes.xml - pkcs11.xml - BIND man pages All of the published ARM formats - HTML, PDF, etc - are generated from this master source. The file "notes.xml" contains the release notes for the current release. In addition to being included in the ARM as an appendix, it is also built into a stand-alone document: "notes.pdf" and "notes.html". Building these these files requires DocBook 5 and dblatex. These are available as packages in many OS distributes; in debian, for example: $ sudo apt-get install docbook5-xml docbook-xml docbook-xsl-ns \ docbook-utils dblatex To build all documentation, run "make doc". When committing changes or submitting patches, it is only necessary to edit the XML source (i.e., the files with ".docbook" or ".xml" suffixes); the files in HTML and man page format are built from the XML source by a cron job. If you are familiar with SGML or HTML, editing the DocBook XML is quite straightforward. You only need to know what the tags are and how to use them. You can find a good resource either for this either online or in printed form: DocBook: The Definitive Guide By Norman Walsh and Leonard Muellner ISBN: 156592-580-7 1st Edition, October 1999 Copyright (C) 1999 by O'Reilly & Associates, Inc. All rights reserved. The book is available online in HTML format: http://docbook.org/ After editing documentation, it is useful to check the correctness of the XML; this can be done using the "xmllint" utility. ======================================================================== * bind-9.11.4-P2/lib/isc/include/pk11/README.site ======================================================================== Copyright (C) Internet Systems Consortium, Inc. ("ISC") See COPYRIGHT in the source root or http://isc.org/copyright.html for terms. How to use site.h for the PKCS#11 provider of your HSM ------------------------------------------------------ First run "pkcs11-tokens" (in bin/pkcs11). This tool is built when BIND9 is configured with the --with-pcks11 flag. It prints the addresses of selected tokens per algorithm: - random number generation - RSA (sign/verify) - DSA (sign/verify) - DH (secret derivation) - digest (hash) - EC (ECDSA, sign/verify) - GOST (Russian hash and sign/verify) - AES (encrypt/decrypt) ...and a summary of PKCS#11 tokens that have been found. Current well-known HSMs are predefined in site.h according to HSM "flavors": - Thales nCipher (default) - OpenDNSSEC SoftHSMv2 ...and with experimental status: - OpenDNSSEC SoftHSMv1 with SHA224 support added - Cryptech - AEP Keyper If BIND9 is configured with native PKCS#11 support (--enable-native-pkcs11), then pkcs11-tokens will raise an error when a mandatory algorithm is not supported. (The usual error is 0x70, or CKR_MECHANISM_INVALID; 0x0 indicates that a required flag is not available.) The following steps may be taken, depending on which algorithms indicate failures: - rand or RSA: nothing can be done; native PKCS#11 is not supported in BIND9 with this HSM. - DSA or DH: run pkcs11-tokens with the -v (verbose) flag. If the parameter generation mechanism is not supported you can make the token selection to ignore the error. Note DSA and DH are not critical algorithms; you can use BIND9 in production without them. - digest: run pkcs11-tokens with the -v (verbose) flag. If the problem is with HMAC mechanisms, use the corresponding REPLACE flags in site.h. If the problem is with MD5, use the corresponding DISABLE flag in site.h. If the problem is with SHA224, contact the implementor of the PKCS#11 provider and ask to have this hash algorithm implemented. For any other problem, nothing can be done; native PKCS#11 is not supported with this HSM. - EC: you may wish to configure BIND9 without ECDSA support by adding --without-ecdsa to the "configure" arguments. - GOST: you SHOULD configure BIND9 without GOST support by adding --without-gost to the "configure" arguments. - AES: you MUST reconfigure bind9 without AES support by adding --without-aes to configure arguments. You can disable some algorithms (e.g. DSA, DH and MD5) using the "disable-algorithms" option in named.conf, and some other algorithms can be disabled at compile time (ECDSA, GOST, AES). Note, however, that disabling algorithms can have unwanted side effects; for instance, disabling DH breaks TKEY support. A final note: the DISABLE flags in site.h work for OpenSSL code too, but this feature is not officially supported yet and should not be relied on. ======================================================================== * bind-9.11.4-P2/win32utils/readme1st.txt ======================================================================== Copyright (C) Internet Systems Consortium, Inc. ("ISC") See COPYRIGHT in the source root or http://isc.org/copyright.html for terms. NOTES ON BIND 9.10 FOR WINDOWS: BIND 9.10 is known to run on Windows XP, Vista, Windows 7, and Windows Server 2003 and higher. KIT INSTALLATION: Unpack the kit into any convenient directory and run the BINDInstall program. This will install the named and associated programs into the correct directories and set up the required registry keys. Usually BINDInstall must be run by/as Administrator or it can fail to operate on the filesystem or the registery or even return messages like 'A referral was returned from the server". The best way to avoid this kind of problems on Windows 7 or newer is: - open a "file explorer" aka finder windows - goes where the distribution was expanded - click right on the BINDInstall application - open "Properties" (last) menu - open "Compatibility" (second) tab - check on the (last) "Run this program as an administrator" Unfortunately this is not saved by zip (or any archiver?) as it is a property saved in the Registry. BINDInstall requires that you install it under an account with restricted privileges. The installer will prompt you for an account name (the default is "named") and a password for that account. It will also check for the existence of that account. If it does not exist is will create it with only the privileges required to run BIND. If the account does exist it will check that it has only the one privilege required: "Log on as a service". If it has too many privileges it will prompt you if you want to continue. With BIND running under an account name, it is necessary for all files and directories that BIND uses to have permissions set up for the named account if the files are on an NTFS disk. BIND requires that the account have read and write access to the directory for the pid file, any files that are maintained either for slave zones or for master zones supporting dynamic updates. The account will also need read access to the named.conf and any other file that it needs to read. "NT AUTHORITY\LocalService" is also an acceptable account (and the only acceptable on some recent versions of Windows). This account is built into Windows and no password is required. Appropriate file permissions will also need to be set for "NT AUTHORITY\LocalService" similar to those that would have been required for the "named" account. It is important that on Windows the directory directive is used in the options section to tell BIND where to find the files used in named.conf (default "%ProgramFiles%\ISC BIND 9\etc\named.conf"). For example: options { directory "C:\Program Files (x86)\ISC BIND 9\etc"; }; for a 32 bit BIND on a 64 bit US Domestic Windows system. Messages are logged to the Application log in the EventViewer. CONTROLLING BIND: Windows uses the same rndc program as is used on Unix systems. The rndc.conf file must be configured for your system in order to work. You will need to generate a key for this. To do this use the rndc-confgen program. The program will be installed in the same directory as named: "%ProgramFiles%\ISC BIND 9\bin". From the DOS prompt, use the command this way: rndc-confgen -a which will create a rndc.key file in the "%ProgramFiles%\ISC BIND 9\etc" directory. This will allow you to run rndc without an explicit rndc.conf file or key and control entry in named.conf file. See section 3.4.1.2 of the ARM for details of this. An rndc.conf can also be generated by running: rndc-confgen > rndc.conf which will create the rndc.conf file in the current directory, but not copy it to the "%ProgramFiles%\ISC BIND 9\etc" directory where it needs to reside. If you create rndc.conf this way you will need to copy the same key statement into named.conf. The additions look like the following: key "rndc-key" { algorithm hmac-sha256; secret "xxxxxxxxx=="; }; controls { inet 127.0.0.1 port 953 allow { localhost; } keys { "rndc-key"; }; }; Note that the value of the secret must come from the key generated above for rndc and must be the same key value for both. Details of this may be found in section 3.4.1.2 of the ARM. If you have rndc on a Unix box you can use it to control BIND on the Windows box as well as using the Windows version of rndc to control a BIND 9 daemon on a Unix box. However you must have key statements valid for the servers you wish to control, specifically the IP address and key in both named.conf and rndc.conf. Again see section 3.4.1.2 of the ARM for details. In order to run rndc from a different system it is important to ensure that the clocks are synchronized. The clocks must be kept within 5 minutes of each other or the rndc commands will fail authentication. Use NTP or other time synchronization software to keep your clocks accurate. NTP can be found at http://www.ntp.org/. In addition BIND is installed as a win32 system service, can be started and stopped in the same way as any other service and automatically starts whenever the system is booted. Signals are not supported and are in fact ignored. Note: Unlike most Windows applications, named does not, change its working directory when started as a service. If you wish to use relative files in named.conf you will need to specify a working directory using the directory directive options. DOCUMENTATION: This kit includes Documentation in HTML format. The documentation is not copied during the installation process so you should move it to any convenient location for later reference. Of particular importance is the BIND 9 Administrator's Reference Manual (Bv9ARM*.html) which provides detailed information on BIND 9. In addition, there are HTML pages for each of the BIND 9 applications. INCLUDED TOOLS: The following tools have been built for Windows: dig, nslookup, host, nsupdate, ddns-confgen, rndc, rndc-confgen, delv, mdig, named-checkconf, named-checkzone, named-compilezone, named-journalprint, named-rrchecker, dnssec-importkey, dnssec-keygen, dnssec-signzone, dnssec-dsfromkey, dnssec-keyfromlabel, dnssec-revoke, dnssec-settime and dnssec-verify. The latter tools are for use with DNSSEC. All tools are installed in the "%ProgramFiles%\ISC BIND 9\bin" directory. IMPORTANT NOTE ON USING THE TOOLS: It is no longer necessary to create a resolv.conf file on Windows as the tools will look in the registry for the required name server information. However, if you do create a resolv.conf file as follows, the tools will use it in preference to the registry name server entries. Place resolv.conf the "%ProgramFiles%\ISC BIND 9\etc" directory. It must contain a list of recursive server addresses. The format of this file is: nameserver 1.2.3.4 nameserver 5.6.7.8 Replace the above IP addresses with the real name server addresses. 127.0.0.1 is a valid address if you are running a recursive name server on the localhost. PROBLEMS: Please report bugs at https://gitlab.isc.org/isc-projects/bind9. Other questions can go to the bind-users@isc.org mailing list. ======================================================================== * bind-9.11.4-P2/COPYRIGHT ======================================================================== Copyright (C) 1996-2018 Internet Systems Consortium, Inc. ("ISC") This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------------------------- Portions of this code release fall under one or more of the following Copyright notices. Please see individual source files for details. For binary releases also see: OpenSSL-LICENSE. Copyright (C) 1996-2001 Nominum, Inc. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------------------------------------------------------------------------- Copyright (C) 1995-2000 by Network Associates, Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND ISC AND NETWORK ASSOCIATES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------------------------------------------------------------------------- Copyright (C) 2002 Stichting NLnet, Netherlands, stichting@nlnet.nl. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND STICHTING NLNET DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL STICHTING NLNET BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. The development of Dynamically Loadable Zones (DLZ) for Bind 9 was conceived and contributed by Rob Butler. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND ROB BUTLER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ROB BUTLER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------------------------------------------------------------------------- Copyright (c) 1987, 1990, 1993, 1994 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (C) The Internet Society 2005. This version of this module is part of RFC 4178; see the RFC itself for full legal notices. (The above copyright notice is per RFC 3978 5.6 (a), q.v.) ----------------------------------------------------------------------------- Copyright (c) 2004 Masarykova universita (Masaryk University, Brno, Czech Republic) All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (c) 1997 - 2003 Kungliga Tekniska Högskolan (Royal Institute of Technology, Stockholm, Sweden). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the Institute nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (c) 1998 Doug Rabson All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright ((c)) 2002, Rice University All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Rice University (RICE) nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. This software is provided by RICE and the contributors on an "as is" basis, without any representations or warranties of any kind, express or implied including, but not limited to, representations or warranties of non-infringement, merchantability or fitness for a particular purpose. In no event shall RICE or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. ----------------------------------------------------------------------------- Copyright (c) 1993 by Digital Equipment Corporation. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies, and that the name of Digital Equipment Corporation not be used in advertising or publicity pertaining to distribution of the document or software without specific, written prior permission. THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------------------------------------------------------------------------- Copyright 2000 Aaron D. Gifford. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (c) 1998 Doug Rabson. Copyright (c) 2001 Jake Burkholder. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (c) 1999-2000 by Nortel Networks Corporation Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND NORTEL NETWORKS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NORTEL NETWORKS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------------------------------------------------------------------------- Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved. By using this file, you agree to the terms and conditions set forth bellow. LICENSE TERMS AND CONDITIONS The following License Terms and Conditions apply, unless a different license is obtained from Japan Network Information Center ("JPNIC"), a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, Chiyoda-ku, Tokyo 101-0047, Japan. 1. Use, Modification and Redistribution (including distribution of any modified or derived work) in source and/or binary forms is permitted under this License Terms and Conditions. 2. Redistribution of source code must retain the copyright notices as they appear in each source code file, this License Terms and Conditions. 3. Redistribution in binary form must reproduce the Copyright Notice, this License Terms and Conditions, in the documentation and/or other materials provided with the distribution. For the purposes of binary distribution the "Copyright Notice" refers to the following language: "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." 4. The name of JPNIC may not be used to endorse or promote products derived from this Software without specific prior written approval of JPNIC. 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ----------------------------------------------------------------------------- Copyright (C) 2004 Nominet, Ltd. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND NOMINET DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------------------------------------------------------------------------- Portions Copyright RSA Security Inc. License to copy and use this software is granted provided that it is identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki)" in all material mentioning or referencing this software. License is also granted to make and use derivative works provided that such works are identified as "derived from the RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki)" in all material mentioning or referencing the derived work. RSA Security Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind. ----------------------------------------------------------------------------- Copyright (c) 1996, David Mazieres Copyright (c) 2008, Damien Miller Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------------------------------------------------------------------------- Copyright (c) 2000-2001 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (c) 1995, 1997, 1998 The NetBSD Foundation, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (C) 2008-2011 Red Hat, Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND Red Hat DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL Red Hat BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------------------------------------------------------------------------- Copyright (c) 2013-2014, Farsight Security, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Copyright (c) 2014 by Farsight Security, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ======================================================================== * bind-9.11.4-P2/LICENSE ======================================================================== Mozilla Public License, version 2.0 1. Definitions 1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor's Contribution. 1.3. "Contribution" means Covered Software of a particular Contributor. 1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. "Incompatible With Secondary Licenses" means a. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or b. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. "Executable Form" means any form of the work other than Source Code Form. 1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. "License" means this document. 1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. "Modifications" means any of the following: a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or b. any new file in Source Code Form that contains any Covered Software. 1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. "Source Code Form" means the form of the work preferred for making modifications. 1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. License Grants and Conditions 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. 2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: a. for any code that a Contributor has removed from Covered Software; or b. for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or c. under Patent Claims infringed by Covered Software in the absence of its Contributions. This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). 2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). 2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. 2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. 2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. 3. Responsibilities 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients' rights in the Source Code Form. 3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then: a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients' rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). 3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. 3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. 4. Inability to Comply Due to Statute or Regulation If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Termination 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. 5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. 6. Disclaimer of Warranty Covered Software is provided under this License on an "as is" basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. 7. Limitation of Liability Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. 8. Litigation Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party's ability to bring cross-claims or counter-claims. 9. Miscellaneous This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. 10. Versions of the License 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. 10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. 10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. Exhibit A - Source Code Form License Notice This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. Exhibit B - "Incompatible With Secondary Licenses" Notice This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. ======================================================================== * bind-9.11.4-P2/contrib/idn/idnkit-1.0-src/LICENSE.txt ======================================================================== Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved. By using this file, you agree to the terms and conditions set forth bellow. LICENSE TERMS AND CONDITIONS The following License Terms and Conditions apply, unless a different license is obtained from Japan Network Information Center ("JPNIC"), a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, Chiyoda-ku, Tokyo 101-0047, Japan. 1. Use, Modification and Redistribution (including distribution of any modified or derived work) in source and/or binary forms is permitted under this License Terms and Conditions. 2. Redistribution of source code must retain the copyright notices as they appear in each source code file, this License Terms and Conditions. 3. Redistribution in binary form must reproduce the Copyright Notice, this License Terms and Conditions, in the documentation and/or other materials provided with the distribution. For the purposes of binary distribution the "Copyright Notice" refers to the following language: "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." 4. The name of JPNIC may not be used to endorse or promote products derived from this Software without specific prior written approval of JPNIC. 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ======================================================================== * bind-9.11.4-P2/doc/xsl/copyright.xsl ======================================================================== This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. Copyright (C) ======================================================================== * bind-9.11.4-P2/unit/atf-src/COPYING ======================================================================== Redistribution terms Automated Testing Framework =========================================================================== License ******* Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012 The NetBSD Foundation, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright 2011, 2012 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Relicensed code *************** The following code snippets have been taken from other projects. Even though they were not originally licensed under the terms above, the original authors have agreed to relicense their work so that this project can be distributed under a single license. This section is put here just to clarify this fact. * configure.ac, Makefile.am: The original versions were derived from the ones in the XML Catalog Manager project, version 2.2. Author: Julio Merino * atf-c/ui.c: The format_paragraph and format_text functions were derived form the ones in the Monotone project, revision 3a0982da308228d796df35f98d787c5cff2bb5b6. Author: Julio Merino * atf-c++/detail/io.hpp, atf-c++/detail/io.cpp, atf-c++/detail/io_test.cpp: These files were derived from the file_handle, systembuf, pipe and pistream classes and tests found in the Boost.Process library. Author: Julio Merino * admin/check-style.sh, admin/check-style-common.awk, admin/check-style-cpp.awk, admin/check-style-shell.awk: These files, except the first one, were first implemented in the Buildtool project. They were later adapted to be part of Boost.Process and, during that process, the shell script was created. Author: Julio Merino =========================================================================== vim: filetype=text:textwidth=75:expandtab:shiftwidth=2:softtabstop=2