DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
API compatibility

libnsl compatibility notes

Connection server compatibility notes

The connection server is not supported on SCO OpenServer; the Binary Compatibility Module networking library maps the cs_connect and cs_perror functions to use SCO OpenServer interfaces.

AUTH structure source compatibility notes

The AUTH structure (see /usr/include/rpc/auth.h) has an extra element (a des_block structure) that is not in the SCO OpenServer implementation.

   /* UnixWare AUTH structure */
   typedef struct __auth {
           struct  opaque_auth     ah_cred;        /* client credentials */
           struct  opaque_auth     ah_verf;        /* credential verifier */
           union   des_block       ah_key;         /* encrypt/decrypt key */
           struct auth_ops {
                   void    (*ah_nextverf)(struct __auth *);
                   bool_t  (*ah_marshal)(struct __auth *, XDR *);
                   int     (*ah_validate)(struct __auth *, struct opaque_auth *);
                   int     (*ah_refresh)(struct __auth *);
                   void    (*ah_destroy)(struct __auth *);
           } *ah_ops;
           caddr_t ah_private;                     /* private data of auth style */
   } AUTH;
   /* SCO OpenServer AUTH structure */
   typedef struct {
           struct  opaque_auth     ah_cred;
           struct  opaque_auth     ah_verf;
           struct auth_ops {
                   void    (*ah_nextverf)();
                   int     (*ah_marshal)();        /* nextverf & serialize */
                   int     (*ah_validate)();       /* validate varifier */
                   int     (*ah_refresh)();        /* refresh credentials */
                   void    (*ah_destroy)();        /* destroy this structure */
           } *ah_ops;
           caddr_t ah_private;
   } AUTH;

CLIENT structure source compatibility notes

The CLIENT structure (see /usr/include/rpc/clnt.h and rpc(3rpc)) has elements not in the SCO OpenServer implementation.

   /* UnixWare CLIENT handle */
      typedef struct {
          AUTH           *cl_auth;             /* authenticator */
          struct clnt_ops {
              enum clnt_stat  (*cl_call)();    /* call remote procedure */
              void            (*cl_abort)();   /* abort a call */
              void            (*cl_geterr)();  /* get specific error code */
              bool_t          (*cl_freeres)(); /* frees results */
              void            (*cl_destroy)(); /* destroy this structure */
              bool_t          (*cl_control)(); /* the ioctl() of rpc */
          } *cl_ops;
          caddr_t         cl_private;          /* private stuff */
          char            *cl_netid;           /* network token */
          char            *cl_tp;              /* device name */
      } CLIENT;
   /* SCO OpenServer CLIENT handle */
   typedef struct {
           AUTH    *cl_auth;                       /* authenticator */
           struct clnt_ops {
                   enum clnt_stat  (*cl_call)();   /* call remote procedure */
                   void            (*cl_abort)();  /* abort a call */
                   void            (*cl_geterr)(); /* get specific error code */
                   bool_t          (*cl_freeres)();/* frees results */
                   void            (*cl_destroy)();/* destroy this structure */
                   bool_t          (*cl_control)();/* the ioctl() of rpc */
           } *cl_ops;
           caddr_t cl_private;                     /* private stuff */
   } CLIENT;

Berkeley style client calls

These calls (callrpc, clnttcp_create, clntudp_create, clntudp_bufcreate, and clntraw_create) are present in libnsl on UnixWare for compatibility only and are undocumented. In order to compile a program that uses them, you must include the /usr/include/rpc/clnt_soc.h header file. On UnixWare these client interfaces are replaced by the rpc_clnt_create(3rpc) interfaces.

These calls also access the CLIENT structure; see ``CLIENT structure source compatibility notes''.

netconfig file notes

The UnixWare routines endnetconfig, endnetpath, freenetconfig, get_nderror, getnetconfig, getnetconfigent, and getnetpath will work on SCO OpenServer with the UnixWare and OpenServer Development Kit installed. However, the netconfig file they use is located in /udk/etc/netconfig (rather than /etc/netconfig, as this file is used for other purposes on SCO OpenServer).

Portmapper source compatibility notes

These interfaces (pmap_set, pmap_unset, pmap_rmtcall, pmap_getmaps, pmap_getport, and clnt_broadcast) are present in libnsl on UnixWare for compatibility only and are undocumented. In order to compile a program that uses them, you must include the /usr/include/rpc/pmap_clnt.h header file. On UnixWare, the rpcbind(3rpc) interfaces replace the portmapper interfaces.

Berkeley style service calls

These calls (svcfd_create, svcraw_create, svctcp_create, svcudp_bufcreate, svcudp_create, and svcudp_enablecache) are present in libnsl on UnixWare for compatibility only and are undocumented. In order to compile a program that uses them, you must include the /usr/include/rpc/svc_soc.h header file. On UnixWare these client interfaces are replaced by the rpc_svc_create(3rpc) interfaces.

These calls also access the SVCXPRT structure; see ``SVCXPRT structure source compatibility notes''.

SVCXPRT structure source compatibility notes

The SVCXPRT structure (see /usr/include/rpc/svc.h) has elements not in the SCO OpenServer implementation. This affects the folowing routines: svcerr_auth, svcerr_decode, svcerr_noproc, svcerr_noprog, svcerr_progvers, svcerr_systemerr, and svcerr_weakauth.


Next topic: Transport interface (XTI and TLI)
Previous topic: libnsl compatibility table (xdr_reference - ypprot_err)

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 27 April 2004