To support multilingual domain names on Windows, the name encoding of the client applications resolve must be converted to a format that DNS servers can accept. This requires accurate handling of multilingual domain names by Windows applications, which is basically the responsibility of each program developer.
However, as no standard is yet in place, this is too hard to expect of program developers at this time. Therefore, a trick is needed so that existing applications will be able to support multilingual domain names. The mdnsproxy server supplied with the mDNkit is one such tool. In this section, we will introduce another tool, the mDN Wrapper.
Queries to resolve domain names on Windows are often passed to WINSOCK DLL. It will be possible for existing programs to support multilingual domain names, by replacing WINSOCK DLL with one that supports multilingual domain names.
Note: If an old version of mDN Wrapper is already installed on your machine, read the Precautions when Upgrading before installing the new version.
Execute setup.exe
to install mDN Wrapper. The setup program does the following.
\Program Files\JPNIC\mDN Wrapper
(can be changed at setup) directory
HKEY_LOCAL_MACHINE\Software\JPNIC\MDN
. The major items are as follows.
ConfFile REG_SZ
mdn.conf
that describes parameters with respect to multilingual domain name processing.
The path name of the configuration file can be changed using the Configuration program.
LogFile REG_SZ
Where REG_DWORD
PerProg
key
PerProg\Program name\Where |
REG_DWORD |
Conversion location |
PerProg\Program name\Encoding |
REG_SZ |
Encoding name |
To uninstall the program, select "mDN Wrapper" in Add/Remove Programs in the Control Panel and click the Add/Remove button.
The configuration program is a tool for specifying applications that are to be wrapped or unwrapped.
The screen shown below appears when the program is started.
The list box shows programs that mDN Wrapper is currently wrapping. The box is blank when the program first starts. Press the buttons on the right to begin.
Press the "Wrap.." button to wrap a program using mDN Wrapper. Pressing the "Wrap.." button displays the following dialog box.
First, set the filename of the program that mDN Wrapper is to wrap. Enter the name directly or use the Browse button to find the file.
Then, specify the local encoding of the program. Select "Default" for the standard setting. Select UTF-8 only if the program supports international encoding.
Then press the Wrap button to use mDN Wrapper with the specified encoding for the selected program. The wrapped program is displayed in the list box in the first window.
To cancel the use of mDN Wrapper for a program, select the program in the list box and click the "Unwrap.." button. The confirmation dialog box shown below is displayed. If this is correct, click the "Unwrap.." button.
When use of mDN Wrapper is canceled for a program, the program is no longer displayed in the first window list box.
Use the "Unwrap All" button to cancel use of mDN Wrapper for all currently selected programs.
When mDN Wrapper version is upgraded, the program needs to be applied once again in order to update the wrapper DLL. Use the "Rewrap All" button to re-apply mDN Wrapper to all programs that are currently wrapped at once.
Click the "Log.." button to set a log level or log file. The dialog box shown below is displayed when this button is clicked.
The following log levels can be selected.
These log levels are for logs output by the MDN Library . Because the own mDN Wrapper log can only be set to "on" or "off," "None" turns off the log entirely other cases turns on the log.
A log file can also be specified. The default setting is mdn_wrapper.log
and is stored in the directory where mDN wrapper is installed. Click the "Browse.." button to select the file from the Browse dialog box.
This dialog box can also be used to view and delete the log file. Use the "View" or "Delete" buttons to do this. When the "View" button is clicked, NotePad opens displaying the contents of the log file.
Click the "OK" button to confirm the dialog settings. Click the "Cancel" button when none of the settings are to be changed.
Click the "Advanced.." button to display the dialog box shown below. This is for experienced users; an appropriate default setting is provided for ordinary users to enable the change of basic parameters without the need for making detailed settings.
The appropriate mDN Wrapper mode can be set in the panel at the top of the dialog box. Settings and their meanings are listed below.
Usually, the appropriate value is automatically set based on the OS. However, depending on the version of WINSOCK being used, the setting may not work correctly and the value will probably need to be set manually.
The path name of the mDNkit configuration file mdn.conf
can be specified at the middle of the panel.
In addition, the "Edit" button can be used to start the Notepad to edit the file.
The settings become effective by clicking the "OK" button. Click "Cancel" button to close the dialog box without changing the settings.
Wrapper DLL is highly dependent on the original WINSOCK DLL version. This is because all entries including non-public entries must be supplied. As a result, mDN Wrapper may not work when a different version of WINSOCK DLL is installed.
It has been confirmed that the current version of mDN Wrapper operates with the following software.
WinNT4.0 SP6a (WINSOCK 1.1 + 2.0) Win98 (WINSOCK 1.1 + 2.0) Win95 OSR2 (WINSOCK 1.1)
There is no guarantee, however, that it will function in the future.
On Windows, not only DNS but also WINS and LMHOSTS resolve domain names and host names. When mDN Wrapper is used, domain name conversions are not dispatched to these schemes but are performed at a higher level. So the name conversions are performed the all methods. As a result, when Windows uses WINS or LMHOSTS, unexpected results may occur. Thus when you use mDN Wrapper, we recommend that only DNS is used for name resolving.
The following are WINSOCK 2.0 name resolving APIs:
WSALookupServiceBeginW
WSALookupServiceNextW
WSALookupServiceEnd
These are defined as a universal name resolving API that can be used for other than domain names. Currently, it is used only for resolving domain names, but it can also be used for resolving service names, for example.
Because the mDN Wrapper converts encodings of any type of names, these APIs could cause problems if used for resolving names other than domain names.
Some applications do not use these APIs for resolving domain names. For example, nslookup does not; instead, it communicates directly with the DNS server. mDN Wrapper does not work for such applications.
Some applications do not conform to standard DLL search paths, but are tied to a DLL of a specific path. mDN Wrapper cannot be applied to such programs in a standard install or configuration.
When mDN Wrapper is applied to an application installed in the same folder (system directory) that contains WINSOCK DLL, it is recommended that you copy the program into a different folder, then apply mDN Wrapper to the copied program.
It is very dangerous to install mDN Wrapper in the system directory. It is possible that the system cannot reboot.
mdnsproxy can be used as an alternate approach to avoid such limitations. The above problems are avoided since dnsproxy operates between the DNS server and the transaction.
However, mdnsproxy requires a more complex setup procedure than Wrapper and cannot identify a calling program so it cannot handle the local encoding of specific programs. But it is perhaps best used as an alternative to Wrapper to avoid the above limitations.
Note the following when a new version of the software is to be installed in a machine containing an earlier version.