
Afilias .info EPP RTK extensions for C++, Release 0.3.1
Copyright (C) 2003 Afilias Limited


What is this?
-------------

This is the C++ port of the Afilias EPP extensions for the .info registry.
These extension are intended for release 0.1.3 or greater of the C++ EPP RTK
from SourceForge at http://epp-rtk.sf.net (release 0.7.x cannot be used
as this RTK implements EPP 07/05 such as for the .org registry).

Only the source code is included here.  It was developed using RedHat 9
GNU/Linux with gcc 3.2.2.  In order to compile the toolkit and the 
test programs, you need to have the following installed:

    * A C++ compiler, preferrably gcc.
    * GNU build tools (make, etc...)
    * OpenSSL-0.9.6*  (Available from http://www.openssl.org/ )
          NB: Versions 0.9.7* are not compatible -- the RTK was tested
              and built with release 0.9.6j
    * Xerces-C-1.7.0 (Available from 
                     http://xml.apache.org/dist/xerces-c/stable/archives/ )
          NB: Versions 2.* are not compatible because the xerces api has changed.
              Versions lower than 1.7.0 might work, but this has not been tested.
    * domtools 1.0.6 (Available from http://epp-rtk.sf.net/ )
    * epp-rtk 0.7.1 (Available from http://epp-rtk.sf.net/ )

A sample in this package can optionally use GNU's libidn to perform unicode
domain name transformations.  Libidn can be retrieved from
http://www.gnu.org/software/libidn/ -- version 0.3.5 was tested with this
extension.  If you don't have this package, then the sample uses some 
canned punycode domain names.

Brief Overview of Contents:
---------------------------

src/DomainTrademark* and src/IDN*
   - The extension classes and headers -- DomainTrademark and IDN
src/main*
   - The sample programs which make use of the extensions


In the files main*.cc, you will find detailed comments in the 
code describing usage of the extensions.

For information about command line parameters (like server name/port)
for the test programs, please run e.g., "./test -?" after compile.


Building instructions:
----------------------

1) Make sure OpenSSL, Xerces-C, domtools and epp-rtk are installed.

2) Run ./configure from this directory.  This will search for required 
   dependencies in your system.  Configure will look for OpenSSL headers
   first in /usr/local/openssl/include, then in standard header locations
   such as /usr/include.  Configure will also look for Xerces-C headers
   first in /usr/local/xerces/include, then in standard locations.
   
   To tell configure to look in different places for OpenSSL and Xerces-C,
   use these (default values are shown here):

     ./configure --with-xerces-include=/usr/local/xerces/include \
                 --with-xerces-lib=/usr/local/xerces/lib/libxerces.so \
                 --with-openssl=/usr/local/openssl \
                 --with-domtools=/usr/local/domtools \
                 --with-epp-rtk=/usr/local/epp-rtk-cpp
   
   Xerces has two configure options because the naming of the xerces
   library (.so) sometimes includes the release number.  Just using
   a "path to xerces" value would not have been sufficient.
   
3) Run "make".  This will build the RTK libraries in the following locations:

      src/libafiliasext.a

4) Then run "make install".  This will install the RTK headers in PREFIX/include/liberty-info-extensions,
   were "PREFIX" is "/usr/local/liberty-info-extensions" by default (use configure's
   --prefix=/another/path to change this).  The libraries are installed in 
   PREFIX/lib/liberty-info-extensions.


DOT-INFO Registry Extensions in the C++ Add-on:
-------------------------------------------

There exists two .info registry EPP extensions.  The C++ Add-on contains classes
to handle them both.  The source code for these extensions can be found in the
src directory.  Here they are briefly described:

    DomainTrademark
        This extension permits the registrar user to manipulate the 
        trademark information for .info domains.
        
        The DomainTrademark is mostly obsolete at this point.  It was a 
        requirement during the initial Sunrise phase of the opening of
        the .info registry.  It is still useful in parsing trademark 
        information for already existing .info domains.
        
            <trademark>
                <name>ACME Synergistics</name>
                <number>123-456</number>
                <country>CA</country>
                <date>1975-09-07</date>
            </trademark>

        The fields are mostly free-form text and go through minimal
        (if any) validation in the server.
        
        The registrar user can use this extension in a Domain Create
        request and can use it when applicable on the response to
        a Domain Info command (when the domain has trademark information
        to parse).
        
    IDN
        This extension permits the registrar user to participate in the
        registration of IDN names in the .info registry.  The extension
        contains the script name for punycode encoded domain names
        in Domain Check and Domain Create requests and Domain Info responses.
        It also contains the reason for IDN-related failures in responses
        to Domain Create and Domain Check command (errors such as invalid 
        punycode or an illegal script name).
        
        **NB**  At the time of this writing, the .info registry is preparing 
        only to offer IDNs using German language unicode code points.  The
        C++ sample code takes this into account.

See the sample code for demonstrations of the usage of these extension classes.

