I'm sponsoring this fasttrack for Ed Posnak <ed.posnak at gmail.com>, it
times out on 08/25/2009.

This project proposes to update libresolv(3LIB)/libresolv.so.2 to
ISC libbind 6.0.

Release binding: minor.

Current Solaris libresolv.so.2 is based on ISC code circa 2003 with Solaris
specific changes. Over time the library has diverged from the ISC code and
it is non trivial to update it with latest ISC code.

This project will move Solaris code closer to ISC code while maintaining
API/ABI compatability.

The changes that were made to ISC code in the previous port have been
categorized and analyzed[1]. Changes for this port have been documented[2],
as well as our strategy and assumptions for maintaining API/ABI
compatibility[3,4]. Changes that are not inherent to Solaris will be submitted
to ISC for inclusion in a future release.

Another project (PSARC/2009/308) is updating BIND components to the latest
ISC code. There are no dependencies between the two projects.

Interfaces:

The API/ABI of libresolv(3LIB)/libresolv.so.2 will not be changed in any
incompatible way.
The changes to public interfaces are as following:

                        New Exported Interfaces
 |______________________________________________________________________|
 | Interface            | Classification        | Modifier/Comments     |
 |______________________|_______________________|_______________________|
 |                      |                       |                       |
 | res_rndinit          | Volatile              | Undocumented          |
 | res_nrandomid        | Volatile              | Undocumented          |
 | res_nopt_rdata       | Volatile              | Undocumented          |
 | ns_parserr2          | Volatile              | Undocumented          |
 | ns_name_length       | Volatile              | Undocumented          |
 | ns_name_eq           | Volatile              | Undocumented          |
 | ns_name_owned        | Volatile              | Undocumented          |
 | ns_name_map          | Volatile              | Undocumented          |
 | ns_name_labels       | Volatile              | Undocumented          |
 | ns_newmsg_init       | Volatile              | Undocumented          |
 | ns_newmsg_copy       | Volatile              | Undocumented          |
 | ns_newmsg_id         | Volatile              | Undocumented          |
 | ns_newmsg_flag       | Volatile              | Undocumented          |
 | ns_newmsg_q          | Volatile              | Undocumented          |
 | ns_newmsg_rr         | Volatile              | Undocumented          |
 | ns_newmsg_done       | Volatile              | Undocumented          |
 | ns_rdata_unpack      | Volatile              | Undocumented          |
 | ns_rdata_equal       | Volatile              | Undocumented          |
 | ns_rdata_refers      | Volatile              | Undocumented          |
 | inet_cidr_ntop       | Volatile              | Undocumented          |
 | inet_cidr_ntop       | Volatile              | Undocumented          |
 | inet_nsap_addr       | Volatile              | Undocumented          |
 | inet_nsap_ntoa       | Volatile              | Undocumented          |
 | inet_cidr_pton       | Volatile              | Documented[5]         |
 | inet_neta            | Volatile              | Documented[5]         |
 |______________________|_______________________|_______________________|

Even though ISC defines the above interfaces in public header files it does not
provide any documentation for most of the interfaces. We can not guarantee 
the semantics and hence we are making no attempt to document these functions.
This is similar to what was done in previous update PSARC 1999/662.

Following interfaces already exist in Solaris but are undocumented. They are
now being documented.

                        New Exported Interfaces
 |______________________________________________________________________|
 | Interface            | Classification        | Modifier/Comments     |
 |______________________|_______________________|_______________________|
 |                      |                       |                       |
 | ns_sign              | Volatile              | Documented[6]         |
 | ns_sign_tcp          | Volatile              | Documented[6]         |
 | ns_sign_tcp_init     | Volatile              | Documented[6]         |
 | ns_verify            | Volatile              | Documented[6]         | 
 | ns_verify_tcp        | Volatile              | Documented[6]         |
 | ns_verify_tcp_init   | Volatile              | Documented[6]         |
 | ns_find_tsig         | Volatile              | Documented[6]         |
 |______________________|_______________________|_______________________|


All new and old interfaces are available by linking to libresolv(3LIB) or
libresolv.so.2

The new libresolv.so.2 provides following additional public types:

   typedef uchar_t ns_nname[NS_MAXNNAME];
   typedef const uchar_t *ns_nname_ct;
   typedef uchar_t *ns_nname_t;
   struct ns_namemap { ns_nname_ct base; int len; };
   typedef struct ns_namemap *ns_namemap_t;
   typedef const struct ns_namemap *ns_namemap_ct;
   struct ns_newmsg {
        ns_msg          msg;
        const uchar_t   *dnptrs[25];
        const uchar_t   **lastdnptr;
   };
   typedef struct ns_newmsg ns_newmsg;

   typedef struct __ns_rr2 {
        ns_nname        nname;
        size_t          nnamel;
        int             type;
        int             rr_class;
        uint_t          ttl;
        int             rdlength;
        const uchar_t   *rdata;
   } ns_rr2;


References relative to this case's materials directory:

[1] BINDExistingChangesLists-libresolv2-v0.4.pdf
[2] BINDInterfaceChangesImplemented.pdf
[3] BINDPortingStrategy-v0.5.pdf
[4] BINDPortingAssumptions-v0.3.pdf
[5] inet_cidr.cat3
[6] tsig.cat3

Note:
        man pages[5,6] provided with the case material are the ones that are
        shipped by ISC. Their content will be used to write Solaris man pages
        in standard solaris format. for example these man pages donot indicate
        linking with libresolv but Solaris man pages will.



Reply via email to