home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / nsu / root / usr / include / netdir.h / netdir
Text File  |  1998-08-19  |  8KB  |  232 lines

  1. /*
  2.  * This file was automatically generated by vpp on Mon Mar  9 19:49:20 1998
  3.  * based on version template file: ./netdir.vh
  4.  */
  5. /*
  6.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  7.  *                                                                         
  8.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  9.  *                   SANTA CRUZ OPERATION INC.                             
  10.  *                                                                         
  11.  *   The copyright notice above does not evidence any actual or intended   
  12.  *   publication of such source code.                                      
  13.  */
  14.  
  15. #ident    "@(#)netdir.vh    1.3"
  16. #ident    "$Header: $"
  17.  
  18. /*
  19.  * netdir.h
  20.  *
  21.  * This is the include file that defines various structures and
  22.  * constants used by the netdir routines.
  23.  */
  24.  
  25. #ifndef _NETDIR_H
  26. #define _NETDIR_H
  27.  
  28. #include <netconfig.h>
  29. #include <sys/cdefs.h>
  30. #include <sys/convsa.h>
  31.  
  32. __BEGIN_DECLS
  33.  
  34. #ifdef _REENTRANT
  35.  
  36. #define _nderror (*_netdir_nderror())
  37.  
  38. #else /* !_REENTRANT */
  39.  
  40. extern int _nderror;
  41.  
  42. #endif /* _REENTRANT */
  43.  
  44. struct nd_addrlist {
  45.     int         n_cnt;        /* number of netbufs */
  46.     struct netbuf     *n_addrs;    /* the netbufs */
  47. };
  48.  
  49. struct nd_hostservlist {
  50.     int            h_cnt;        /* number of nd_hostservs */
  51.     struct nd_hostserv    *h_hostservs;    /* the entries */
  52. };
  53.  
  54. struct nd_hostserv {
  55.     char        *h_host;    /* the host name */
  56.     char        *h_serv;    /* the service name */
  57. };
  58.  
  59. struct nd_mergearg {
  60.     char        *s_uaddr;    /* servers universal address */
  61.     char        *c_uaddr;    /* clients universal address */
  62.     char        *m_uaddr;    /* merged universal address */
  63. };
  64.  
  65.  
  66.  
  67. extern int _xnetdir_options __P((int, const struct netconfig *, int, int, const char *));
  68. extern int _xnetdir_getbyname __P((int, const struct netconfig *, const struct nd_hostserv *, struct nd_addrlist **));
  69. extern int _xnetdir_getbyaddr __P((int, const struct netconfig *, struct nd_hostservlist **, const struct netbuf *));
  70. extern struct netbuf * _xuaddr2taddr __P((int, const struct netconfig *, const char *));
  71. extern char * _xtaddr2uaddr __P((int, const struct netconfig *, const struct netbuf *));
  72.  
  73. #ifdef _EFTSAFE
  74.  
  75. #define netdir_options(__a1, __a2, __a3, __a4) _xnetdir_options(__NETLIB_VERSION__, __a1, __a2, __a3, __a4)
  76. #define netdir_getbyname(__a1, __a2, __a3) _xnetdir_getbyname(__NETLIB_VERSION__, __a1, __a2, __a3)
  77. #define netdir_getbyaddr(__a1, __a2, __a3) _xnetdir_getbyaddr(__NETLIB_VERSION__, __a1, __a2, __a3)
  78. #define uaddr2taddr(__a1, __a2) _xuaddr2taddr(__NETLIB_VERSION__, __a1, __a2)
  79. #define taddr2uaddr(__a1, __a2) _xtaddr2uaddr(__NETLIB_VERSION__, __a1, __a2)
  80.  
  81. #else /* !_EFTSAFE */
  82.  
  83. #pragma weak _xnetdir_options
  84. #pragma weak _xnetdir_getbyname
  85. #pragma weak _xnetdir_getbyaddr
  86. #pragma weak _xuaddr2taddr
  87. #pragma weak _xtaddr2uaddr
  88.  
  89. static int netdir_options(const struct netconfig *__a1, int __a2, int __a3, const char *__a4)
  90. {
  91.     return _xnetdir_options(__NETLIB_VERSION__, __a1, __a2, __a3, __a4);
  92. }
  93.  
  94. static int netdir_getbyname(const struct netconfig *__a1, const struct nd_hostserv *__a2, struct nd_addrlist **__a3)
  95. {
  96.     return _xnetdir_getbyname(__NETLIB_VERSION__, __a1, __a2, __a3);
  97. }
  98.  
  99. static int netdir_getbyaddr(const struct netconfig *__a1, struct nd_hostservlist **__a2, const struct netbuf *__a3)
  100. {
  101.     return _xnetdir_getbyaddr(__NETLIB_VERSION__, __a1, __a2, __a3);
  102. }
  103.  
  104. static struct netbuf * uaddr2taddr(const struct netconfig *__a1, const char *__a2)
  105. {
  106.     return _xuaddr2taddr(__NETLIB_VERSION__, __a1, __a2);
  107. }
  108.  
  109. static char * taddr2uaddr(const struct netconfig *__a1, const struct netbuf *__a2)
  110. {
  111.     return _xtaddr2uaddr(__NETLIB_VERSION__, __a1, __a2);
  112. }
  113.  
  114. #endif /* !_EFTSAFE */
  115.  
  116.  
  117. extern void        netdir_free __P((void *, int));
  118. extern void        netdir_perror __P((const char *));
  119. extern char *        netdir_sperror __P(());
  120.  
  121. /*
  122.  * These are unadvertised interfaces, they should not be called by user
  123.  * applications.
  124.  */
  125. extern struct nd_addrlist *
  126.             _netdir_getbyname __P((const struct netconfig *,
  127.                            const struct nd_hostserv *));
  128. extern struct nd_hostservlist *
  129.             _netdir_getbyaddr __P((const struct netconfig *,
  130.                            const struct netbuf *));
  131. extern struct netbuf *    _uaddr2taddr __P((const struct netconfig *,
  132.                       const char *));
  133. extern char *        _taddr2uaddr __P((const struct netconfig *,
  134.                       const struct netbuf *));
  135. extern int        set_nderror __P((int));
  136. extern int        get_nderror __P((void));
  137. extern const int *    _netdir_nderror __P((void));
  138.  
  139. /*
  140.  * Library helper applications and definitions, they should definately not
  141.  * be called by user applications and are subject to change or disappear
  142.  * without notice.  You have been warned.
  143.  */
  144. typedef struct hostent *_FP_gethostbyname2(const char *, int);
  145. typedef struct servent *_FP_getservbyname(const char *, const char *);
  146. typedef struct hostent *_FP_gethostbyaddr(const char *, int, int);
  147. typedef struct servent *_FP_getservbyport(int, const char *);
  148.  
  149. extern struct nd_addrlist *
  150.     _netdir_inet_getbyname __P((const struct netconfig *,
  151.                     const struct nd_hostserv *,
  152.                     _FP_gethostbyname2 *,
  153.                     _FP_getservbyname *));
  154. extern struct nd_hostservlist *
  155.     _netdir_inet_getbyaddr __P((const struct netconfig *,
  156.                     const struct netbuf *,
  157.                     _FP_gethostbyaddr *,
  158.                     _FP_getservbyport *));
  159. extern char *
  160.     _netdir_inet_taddr2uaddr __P((const struct netconfig *,
  161.                       const struct netbuf *));
  162. extern struct netbuf *
  163.     _netdir_inet_uaddr2taddr __P((const struct netconfig *,
  164.                       const char *));
  165. extern int
  166.     _netdir_inet_options __P((const struct netconfig *, int, int,
  167.                   const char *));
  168.  
  169. /*
  170.  * These are all objects that can be freed by netdir_free
  171.  */
  172. #define ND_HOSTSERV    0
  173. #define ND_HOSTSERVLIST    1
  174. #define ND_ADDR        2
  175. #define ND_ADDRLIST    3
  176.  
  177. /* 
  178.  * These are the various errors that can be encountered while attempting
  179.  * to translate names to addresses. Note that none of them (except maybe
  180.  * no memory) are truely fatal unless the ntoa deamon is on its last attempt
  181.  * to translate the name. 
  182.  *
  183.  * Negative errors terminate the search resolution process, positive errors
  184.  * are treated as warnings.
  185.  */
  186.  
  187. #define ND_BADARG    (-2)    /* Bad arguments passed     */
  188. #define ND_NOMEM     (-1)    /* No virtual memory left    */
  189. #define ND_OK        0    /* Translation successful    */
  190. #define ND_NOHOST    1    /* Hostname was not resolvable    */
  191. #define ND_NOSERV    2    /* Service was unknown        */
  192. #define ND_NOSYM    3    /* Couldn't resolve symbol    */
  193. #define ND_OPEN        4    /* File couldn't be opened    */
  194. #define ND_ACCESS    5    /* File is not accessable    */
  195. #define ND_UKNWN    6    /* Unknown object to be freed    */
  196. #define ND_NOCTRL    7       /* Unknown option passed to netdir_options */
  197. #define ND_FAILCTRL    8       /* Option failed in netdir_options */
  198. #define ND_SYSTEM    9       /* Other System error           */
  199. #define ND_NOERRMEM    10      /* No memory for error variable */
  200. #define ND_NOLIB    11    /* No library in netconfig list was found */
  201. #define ND_XTIERROR    12    /* An xti call failed; check get_t_errno  */
  202. #define ND_BADSTATE    13    /* Incorrect state to attempt t_bind      */
  203.  
  204. /*
  205.  * The following netdir_options commands can be given to the fd. This is
  206.  * a way of providing for any transport-specific action which the caller
  207.  * may want to initiate. It is up to the transport provider
  208.  * to choose which netdir options to support.
  209.  */
  210.  
  211. #define ND_SET_BROADCAST      1   /* Do t_optmgmt to support broadcast*/
  212. #define ND_SET_RESERVEDPORT   2   /* bind to reserve address */
  213. #define ND_CHECK_RESERVEDPORT 3   /* check if address is reserved */
  214. #define ND_MERGEADDR           4   /* Merge universal address        */
  215. #define ND_CLEAR_BROADCAST    5   /* Do t_optmgmt to prevent broadcast*/
  216. #define ND_SET_REUSEADDR      6   /* Do t_optmgmt to support address reuse*/
  217. #define ND_CLEAR_REUSEADDR    7   /* Do t_optmgmt to prevent address reuse*/
  218. #define ND_MERGEADDR_           8   /* Merge universal address        */
  219.  
  220. /*
  221.  *    The following special host names are used to give the underlying
  222.  *    transport provider a clue as to the intent of the request.
  223.  */
  224.  
  225. #define    HOST_SELF    "\\1"
  226. #define    HOST_ANY    "\\2"
  227. #define    HOST_BROADCAST    "\\3"
  228.  
  229. __END_DECLS
  230.  
  231. #endif /* !_NETDIR_H */
  232.