
Afilias .org 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 .org registry.
These extension are intended for release 0.7.x of the C++ EPP RTK
from SourceForge at http://epp-rtk.sf.net .

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 (develop with gcc on Linux).
    * 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.x (Available from http://epp-rtk.sf.net/ )


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

src/Oxrs*
   - The extension classes and headers -- OxrsProtocol and OxrsTransfer
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-org-extensions,
   were "PREFIX" is "/usr/local/liberty-org-extensions" by default (use configure's
   --prefix=/another/path to change this).  The libraries are installed in 
   PREFIX/lib/liberty-org-extensions.


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

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

    OxrsProtocol
        The first deals with the <oxrs:protocol> extension.  This extension
        optionally appears in the <domain:info> response from the .org 
        registry.  The format is as such:
        
            <oxrs:infData ...>
                <oxrs:protocol>rrp</oxrs:protocol>
            </oxrs:infData>

        If present, the extension tells the registrar in which protocol
        the queried domain lies.  The value of the protocol can be either
        "rrp" or "epp".  If the extension is missing, then "epp" can be
        assumed.
        
    OxrsTransfer
        This extension is used by the registrar only in transfer requests,
        and then, only if the domain being transferred is based in RRP
        (see the OxrsProtocol extension above).  RRP domains don't have
        valid contacts associated with them.  The .org registry requires 
        EPP domains to be associated with 4 contacts.  This class allows
        the registrar to specify a registrant contact, and at least one
        of each technical, billing and administrative contacts.

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

