======================================================================== * bind 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 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 contrib/query-loc-0.4.0/README ======================================================================== query-loc: a program to retrieve and display the location information in the DNS. It uses the algorithms described in RFC 1876 (and RFC 1101 to get the network names). You can find examples of networks wchich implement this scheme in the ADDRESSES file. It is under the General Public Licence (GPL, which you can fetch from . Copyright Stéphane Bortzmeyer , 1998-2007. Thanks to Paul Vixie for the RFC and its encouragements. Thanks to Björn Augustsson for the xtraceroute program . Thanks to Roland Dirlewanger for extensive patching. $Id: README,v 1.1 2008/02/15 01:47:15 marka Exp $ ======================================================================== * bind doc/arm/README-SGML ======================================================================== Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") Copyright (C) 2000, 2001 Internet Software Consortium. 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 XML format. Version: $Id: README-SGML,v 1.17 2004/03/05 05:04:43 marka Exp $ The entire ARM is in the single file: Bv9ARM-book.xml All of the other documents - HTML, PDF, etc - are generated from this master source. This file attempts to describe what tools are necessary for the maintenance of this document as well as the generation of the alternate formats of this document. This file will also spend a very little time describing the XML and SGML headers so you can understand a bit what you may need to do to be able to work with this document in any fashion other than simply editing it. We will spend almost no time on the actual tags and how to write an XML DocBook compliant document. If you are at all familiar with SGML or HTML it will be very evident. 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/ and buried in: http://www.nwalsh.com/docbook/defguide/index.html A lot of useful stuff is at NWalsh's site in general. You may also want to look at: http://www.xml.com/ The BIND v9 ARM is based on the XML 4.0 DocBook DTD. Every XML and SGML document begins with a prefix that tells where to find the file that describes the meaning and structure of the tags used in the rest of the document. For our XML DocBook 4.0 based document this prefix looks like this: This "DOCTYPE" statement has three parts, of which we are only using two: o The highest level term that represents this document (in this case it is "book" o The identifier that tells us which DTD to use. This identifier has two parts, the "Formal Public Identifier" (or FPI) and the system identifier. In SGML you can have either a FPI or a SYSTEM identifier but you have to have at least one of them. In XML you have to have a SYSTEM identifier. FP & SYSTEM identifiers - These are names/lookups for the actual DTD. The FPI is a globally unique name that should, on a properly configured system, tell you exactly what DTD to use. The SYSTEM identifier gives an absolute location for the DTD. In XML these are supposed to be properly formatted URL's. SGML has these things called "catalogs" that are files that map FPI's in to actual files. A "catalog" can also be used to remap a SYSTEM identifier so you can say something like: "http://www.oasis.org/foo" is actually "/usr/local/share/xml/foo.dtd" When you use various SGML/XML tools they need to be configured to look at the same "catalog" files so that as you move from tool to tool they all refer to the same DTD for the same document. We will be spending most of our configuration time making sure our tools use the same "catalog" files and that we have the same DTD's installed on our machines. XML's requirement of the SYSTEM identifier over the FPI will probably lead to more problems as it does not guarantee that everyone is using the same DTD. I did my initial work with the "sgmltools" the XML 4.0 DocBook DTD and "jade" or "openjade." You can get the 4.0 XML DocBook DTD from: http://www.docbook.org/xml/4.0/ (download the .zip file.) NOTE: We will eventually be changing the SYSTEM identifier to the recommended value of: http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd NOTE: Under FreeBSD this is the package: /usr/ports/textproc/docbook-xml NetBSD instructions are coming soon. With packages listed below installed under FreeBSD the "catalog" file that all the tools refer to at least one is in: /usr/local/share/sgml/catalog In order for our SYSTEM identifier for the XML DocBook dtd to be found I create a new catalog file at the top of the XML directory created on FreeBSD: /usr/local/share/xml/catalog This file has one line: SYSTEM "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd" "/usr/local/share/xml/dtd/docbook/docbookx.dtd" Then in the main "catalog" I have it include this XML catalog: CATALOG "/usr/local/share/xml/catalog" On your systems you need to replace "/usr/local/share" with your prefix root (probably /usr/pkg under NetBSD.) NOTE: The URL used above is supposed to the be the proper one for this XML DocBook DTD... but there is nothing at that URL so you really do need the "SYSTEM" identifier mapping in your catalog (or make the SYSTEM identifier in your document refer to the real location of the file on your local system.) HOW TO VALIDATE A DOCUMENT: I use the sgmltools "nsgmls" document validator. Since we are using XML we need to use the XML declarations, which are installed as part of the modular DSSL style sheets: nsgmls -sv /usr/local/share/sgml/docbook/dsssl/modular/dtds/decls/xml.dcl \ Bv9ARM-book.xml A convenient shell script "validate.sh" is now generated by configure to invoke the above command with the correct system-dependent paths. The SGML tools can be found at: ftp://ftp.us.sgmltools.org/pub/SGMLtools/v2.0/source/ \ ftp://ftp.nllgg.nl/pub/SGMLtools/v2.0/source/ FreeBSD package for these is: /usr/ports/textproc/sgmltools HOW TO RENDER A DOCUMENT AS HTML or TeX: o Generate html doc with: openjade -v -d ./nominum-docbook-html.dsl \ -t sgml \ /usr/local/share/sgml/docbook/dsssl/modular/dtds/decls/xml.dcl \ Bv9ARM-book.xml A convenient shell script "genhtml.sh" is now generated by configure to invoke the above command with the correct system-dependent paths. On NetBSD there is no port for "openjade" however "jade" does still work. However you need to specify the "catalog" file to use for style sheets on the command line AND you need to have a default "catalog" mapping where to find various DTDs. It seems that "jade" installed out of the box on NetBSD does not use a globally defined "catalog" file for mapping PUBLIC identifiers in to SYSTEM identifiers. So you need to have a "catalog" file in your current working directory that has in it this: (these are probably more entries than you need!) CATALOG "/usr/pkg/share/sgml/iso8879/catalog" CATALOG "/usr/pkg/share/sgml/docbook/2.4.1/catalog" CATALOG "/usr/pkg/share/sgml/docbook/3.0/catalog" CATALOG "/usr/pkg/share/sgml/docbook/3.1/catalog" CATALOG "/usr/pkg/share/sgml/jade/catalog" CATALOG "/usr/local/share/xml/catalog" (These would all be "/usr/local" on FreeBSD) So the command for jade on NetBSD will look like this: jade -v -c /usr/pkg/share/sgml/catalog -t sgml \ -d ./nominum-docbook-html.dsl \ /usr/pkg/share/sgml/docbook/dsssl/modular/dtds/decls/xml.dcl \ ./Bv9ARM-book.xml Furthermore, since the style sheet subset we define has in it a hard coded path to the style sheet is based, it is actually generated by configure from a .in file so that it will contain the correct system-dependent path: where on FreeBSD the second line reads: On NetBSD it needs to read: NOTE: This is usually solved by having this style sheet modification be installed in a system directory and have it reference the style sheet it is based on via a relative path. o Generate TeX documentation: openjade -d ./nominum-docbook-print.dsl -t tex -v \ /usr/local/share/sgml/docbook/dsssl/modular/dtds/decls/xml.dcl \ Bv9ARM-book.xml If you have "jade" installed instead of "openjade" then use that as the command. There is little difference, openjade has some bug fixes and is in more active development. To convert the resulting TeX file in to a DVI file you need to do: tex "&jadetex" Bv9ARM-book.tex You can also directly generate the pdf file via: pdftex "&pdfjadetex" Bv9ARM-book.tex The scripts "genpdf.sh" and "gendvi." have been added to simply generating the PDF and DVI output. These substitute the correct paths of NetBSD & FreeBSD. You still need to have TeX, jadeTeX, and pdfTeX installed and configured properly for these to work. You will need to up both the "pool_size" and "hash_extra" variables in your texmf.cnf file and regenerate them. See below. You can see that I am using a DSSSL style sheet for DocBook. Actually two different ones - one for rendering html, and one for 'print' media. NOTE: For HTML we are using a Nominum DSSSL style instead of the default one (all it does is change the chunking to the chapter level and makes the files end with ".html" instead of ".htm" so far.) If you want to use the plain jane DSSSL style sheet replace the: -d ./nominum-docbook-html.dsl with -d /usr/local/share/sgml/docbook/dsssl/modular/html/docbook.dsl This style sheet will attempt to reference the one above. I am currently working on fixing these up so that it works the same on our various systems. The main trick is knowing which DTD's and DSSSL stylesheets you have installed, installing the right ones, and configuring a CATALOG that refers to them in the same way. We will probably end up putting our CATALOG's in the same place and then we should be able to generate and validate our documents with a minimal number of command line arguments. When running these commands you will get a lot of messages about a bunch of general entities not being defined and having no default entity. You can ignore those for now. Also with the style sheets we have and jade as it is you will get messages about "xref to title" being unsupported. You can ignore these for now as well. === Getting the various tools installed on FreeBSD (NetBSD coming soon..) o On freebsd you need to install the following packages: o print/teTeX o textproc/openjade o textproc/docbook o textproc/docbook-xml o textproc/dsssl-docbook-modular o textproc/dtd-catalogs o on freebsd you need to make some entities visible to the docbook xml dtd by making a symlink (can probably be done with a catalog too) ln -s /usr/local/share/xml/entity /usr/local/share/xml/dtd/docbook/ent o you may need to edit /usr/local/share/sgml/catalog and add the line: CATALOG "/usr/local/share/sgml/openjade/catalog" o add "hugelatex," Enlarge pool sizes, install the jadetex TeX driver file. cd /usr/local/share/texmf/web2c/ sudo cp texmf.cnf texmf.cnf.bak o edit the lines in texmf.cnf with these keys to these values: main_memory = 1100000 hash_extra = 15000 pool_size = 500000 string_vacancies = 45000 max_strings = 55000 pool_free = 47500 nest_size = 500 param_size = 1500 save_size = 5000 stack_size = 1500 sudo tex -ini -progname=hugelatex -fmt=hugelatex latex.ltx sudo texconfig init sudo texhash o For the jadetex macros you will need I recommend you get a more current version than what is packaged with openjade or jade. Checkout http://www.tug.org/applications/jadetex/ Unzip the file you get from there (should be jadetex-2.20 or newer.) In the directory you unzip: sudo make install sudo texhash NOTE: In the most uptodate "ports" for FreeBSD, jadetext is 2.20+ so on this platform you should be set as of 2001.01.08. ======================================================================== * bind win32utils/readme1st.txt ======================================================================== Copyright (C) 2004, 2005, 2007-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC") Copyright (C) 2001, 2003 Internet Software Consortium. See COPYRIGHT in the source root or http://isc.org/copyright.html for terms. $Id$ Release of BIND 9.9 for Windows and later. This is a release of BIND 9.9 for Windows XP and later. Important Kit Installation Information As of release 9.3.0, BINDInstall requires that you install it under a 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. 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 %WINDOWS%\system32\dns\etc\named.conf). e.g. options { directory "C:\WINDOWS\system32\dns\etc"; }; If you have previously installed BIND 8 or BIND 4 on the system that you wish to install this kit, you MUST use the BIND 8 or BIND 4 installer to uninstall the previous kit. For BIND 8.2.x, you can use the BINDInstall that comes with the BIND 8 kit to uninstall it. The BIND 9 installer will NOT uninstall the BIND 8 binaries. That will be fixed in a future release. 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. 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: dns/bin/. From the DOS prompt, use the command this way: rndc-confgen -a which will create a rndc.key file in the dns/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 dns/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-md5; 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 you 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. DNS Tools The following tools have been built for Windows: dig, nslookup, host, nsupdate, rndc, rndc-confgen, named-checkconf, named-checkzone, ddns-confgen, 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 dns/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 nameserver information. However if you wish to create a resolv.conf file as follows it will use it in preference to the registry nameserver entries. To create a resolv.conf you need to place it in the System32\Drivers\etc directory and it needs to contain a list of nameserver addresses to use to find the nameserver authoritative for the zone. The format of this file is: nameserver 1.2.3.4 nameserver 5.6.7.8 Replace the IP addresses with your real addresses. 127.0.0.1 is a valid address if you are running a nameserver on the localhost. Problems Please report all problems to bind9-bugs@isc.org and not to me. All other questions should go to the bind-users@isc.org mailing list or the comp.protocol.dns.bind news group. Danny Mayer mayer@ntp.isc.org ======================================================================== * bind COPYRIGHT ======================================================================== Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") Copyright (C) 1996-2003 Internet Software Consortium. 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 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. $Id: COPYRIGHT,v 1.19 2012/01/03 23:46:59 tbox Exp $ 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. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4. 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. ======================================================================== * bind 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 contrib/zkt/LICENSE ======================================================================== Copyright (c) 2005 - 2008, Holger Zuleger HZnet. All rights reserved. This software is open source. 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 Holger Zuleger HZnet 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 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. ======================================================================== * bind doc/xsl/copyright.xsl ======================================================================== 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 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) ======================================================================== * bind unit/atf-src/COPYING ======================================================================== Redistribution terms Automated Testing Framework =========================================================================== License ******* Copyright (c) 2007, 2008, 2009, 2010 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. 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