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

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. /*        copyright    "%c%"     */
  12.  
  13. #ifndef CS_NO_ERROR
  14. #ident    "@(#)cs.h    1.8"
  15.  
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19.  
  20. struct csopts {
  21.       struct netconfig *nc_p;
  22.       int nd_opt;
  23.       struct netbuf *nb_p;
  24. };
  25.  
  26. int
  27. cs_connect(char *, char *, struct csopts *, int *);
  28.  
  29. void
  30. cs_perror(char *, int);
  31.  
  32. void
  33. cs_debug(int);
  34.  
  35. /*
  36.  *    Error conditions of cs_connect().
  37.  */
  38.  
  39. #define    CS_NO_ERROR    0
  40. #define    CS_SYS_ERROR    1
  41. #define CS_DIAL_ERROR    2
  42. #define    CS_MALLOC    3
  43. #define    CS_AUTH        4
  44. #define CS_LIDAUTH    5
  45. #define    CS_CONNECT    6
  46. #define    CS_INVOKE    7
  47. #define    CS_SCHEME    8
  48. #define    CS_TRANSPORT    9
  49. #define    CS_PIPE        10
  50. #define    CS_FATTACH    11
  51. #define    CS_CONNLD    12
  52. #define    CS_FORK        13
  53. #define CS_CHDIR    14
  54. #define    CS_SETNETPATH    15
  55. #define    CS_TOPEN    16
  56. #define    CS_TBIND    17
  57. #define    CS_TCONNECT    18
  58. #define    CS_TALLOC    19
  59. #define    CS_MAC        20
  60. #define CS_DAC        21
  61. #define    CS_TIMEDOUT    22
  62. #define CS_NETPRIV    23
  63. #define CS_NETOPTION    24
  64. #define CS_NOTFOUND    25
  65. #define CS_INTERRUPT    26
  66. #define CS_NOERRMEM    27
  67.  
  68.  
  69.  
  70. /* PRIVATE DEFINITIONS */
  71.  
  72. /*
  73.  * Please note: the following definitions are used internally by the
  74.  * Connection Server client and server.  They are placed in this file
  75.  * as the sole repository.  However, these definitions are not meant
  76.  * to be an external interface and are not guaranteed to be maintained
  77.  * in future releases.
  78.  */
  79.  
  80. #define MSGSIZE        512    /* size of scratch buffer */
  81. #define CS_STRSIZE    128
  82. #define LRGBUF        5120
  83. #define HOSTSIZE     256
  84. #define ALARMTIME     60
  85. #define NOTNULLPTR     1
  86. #define NULLPTR     0
  87.  
  88. struct errmsg{
  89.     char *e_str;    /* error string */
  90.     int e_exitcode; /* and associated exit status */
  91. };
  92.  
  93. struct    status{
  94.     int cs_error;     
  95.     int sys_error;     
  96.     int dial_error;
  97.     int tli_error;
  98.     int unused[10];
  99. };
  100.  
  101. struct con_request{
  102.     char     netpath[CS_STRSIZE];
  103.     char     host[HOSTSIZE];
  104.     char     service[CS_STRSIZE];
  105.     int    option;
  106.     int    nb_set;
  107.     int    maxlen;
  108.     int    len;
  109.     char     buf[CS_STRSIZE];
  110.     int    nc_set;
  111.     char    netid[CS_STRSIZE];
  112.     unsigned long    semantics;
  113.     unsigned long    flag;
  114.     char    protofmly[CS_STRSIZE];
  115.     char    proto[CS_STRSIZE];
  116. };
  117.  
  118. struct schemelist {
  119.     char     *i_host;
  120.     char    *i_service;
  121.     char    *i_netid;
  122.     char    *i_scheme;
  123.     char    *i_role;
  124.     struct schemelist *i_next;
  125. };
  126.  
  127. struct dial_request{
  128.     char netpath[CS_STRSIZE];
  129.     int termioptr;
  130.     unsigned short    c_iflag;    /* start TERMIO structure fields */
  131.     unsigned short    c_oflag;
  132.     unsigned short    c_cflag;
  133.     unsigned short    c_lflag;
  134.     char c_line;
  135.     int c_ccptr;
  136.     char c_cc[CS_STRSIZE];        /* end TERMIO structure fields */
  137.     int    baud;
  138.     int    speed;
  139.     int     lineptr;
  140.     char    line[CS_STRSIZE];
  141.     int     telnoptr;
  142.     char    telno[CS_STRSIZE];
  143.     int    modem;
  144.     int     deviceptr;
  145.     int     serviceptr;
  146.     char    service[CS_STRSIZE];    /* start CALL_EXT structure fields */
  147.     int     classptr;
  148. #ifdef __cplusplus
  149.     char    classnm[CS_STRSIZE];
  150. #else
  151.     char    class[CS_STRSIZE];
  152. #endif
  153.     int     protocolptr;
  154.     char    protocol[CS_STRSIZE];
  155.     int     reservedptr;
  156.     char    reserved1[CS_STRSIZE];
  157.     int    version;
  158.     int    dev_len;        /* unused */
  159.     int    pid;
  160. };
  161.  
  162.  
  163. struct dials_request{
  164.     char netpath[CS_STRSIZE];
  165.     int termioptr;
  166.     unsigned long    c_iflag;    /* start TERMIOS structure fields */
  167.     unsigned long    c_oflag;
  168.     unsigned long    c_cflag;
  169.     unsigned long    c_lflag;
  170.     int c_ccptr;
  171.     unsigned char c_cc[CS_STRSIZE];        /* end TERMIOS structure fields */
  172.     int    speed;
  173.     int     device_nameptr;
  174.     char    device_name[CS_STRSIZE];
  175.     int     telnoptr;
  176.     char    telno[CS_STRSIZE];
  177.     int     caller_telnoptr;
  178.     char    caller_telno[CS_STRSIZE];
  179.     int     sysnameptr;
  180.     char    sysname[CS_STRSIZE];
  181.     unsigned short     function;
  182.     int     classptr;
  183. #ifdef __cplusplus
  184.     char    classnm[CS_STRSIZE];
  185. #else
  186.     char    class[CS_STRSIZE];
  187. #endif
  188.     int     protocolptr;
  189.     char    protocol[CS_STRSIZE];
  190.     int    pinfo_len;
  191.     int    pid;
  192. };
  193.  
  194. struct schemeinfo {
  195.     char *s_name;
  196.     int   s_flag;
  197. };
  198.  
  199. /*
  200.  *    Files accessed
  201.  */
  202.  
  203. #define CSPIPE        "/etc/.cs_pipe"
  204. #define OUTISDNPIPE    "/tmp/.outisdn_pipe"
  205. #define ROOT        "/"
  206. #define LOGFILE        "/var/adm/log/cs.log"
  207. #define DBGFILE        "/var/adm/log/cs.debug"    
  208. #define LOGFILE_OLD    "/var/adm/log/cs.log_old"
  209. #define DBGFILE_OLD    "/var/adm/log/cs.debug_old"    
  210. #define AUTHFILE    "/etc/cs/auth"    
  211. #define CACHEFILE    "/var/tmp/.cscache"
  212. #define SERVEALLOW     "/etc/iaf/serve.allow"
  213. #define SERVEALIAS     "/etc/iaf/serve.alias"
  214. #define LIDFILE        "/etc/idmap/attrmap/LIDAUTH.map"
  215.  
  216. /*
  217.  *    Log and debug log default sizes
  218.  */
  219.  
  220. #define CS_LOG_FILE_SIZE    ((off_t)160000)
  221. #define CS_DEBUG_FILE_SIZE    ((off_t)400000)
  222.  
  223. /* Call Services pipe library defines */
  224.  
  225. #define SEND_DATA    1 /* process request to read a structure */
  226. #define RECV_DATA    2 /* process request to write a structure */
  227. #define CLOSE_PIPE    3 /* process request to terminate */
  228. #define RECV_FD        4 /* process request to read an fd */
  229.  
  230. extern int ics_srv_init();
  231. extern int ics_srv_open();
  232. extern int ics_srv_close();
  233. extern int ics_cli_init();
  234. extern int ics_cli_open();
  235. extern int ics_cli_close();
  236. extern int ics_read_req();
  237. extern int ics_write_req();
  238. extern int ics_read_data();
  239. extern int ics_write_data();
  240. extern int ics_read_fd();
  241. extern int ics_write_fd();
  242. extern int ics_write_calls();
  243. extern int ics_update_lock();
  244. extern int ics_getident();
  245. extern struct calls_s  *ics_read_calls();
  246.  
  247. extern int ics_call_service();
  248. extern int ics_call_invoke();
  249. extern int ics_call_invokesid();
  250. extern int ics_call_invokeshell();
  251. extern int incomings();
  252. extern int ics_readacts();
  253. extern int ics_detect_incoming();
  254.  
  255. /* Incoming Call Services definitions */
  256.  
  257. #define CALLFILTER    "/etc/ics/Callfilter"
  258. #define CALLSERVICES    "/etc/ics/Callservices"
  259. typedef enum cf_type_v {
  260.     ICS_ACCEPT,    /* accept the call */
  261.     ICS_REJECT
  262. } cf_value_t;
  263.  
  264. extern cf_value_t ics_call_filter();
  265. /* end of call filter definition */
  266. /*
  267.  * miscellaneous defines
  268.  */
  269.  
  270. #define ICS_MIN_IDENT    80    /* minimum size of pipe name */
  271. #define AU_IMPOSER    0
  272. #define AU_RESPONDER    1
  273. #define NO_EXIT        0
  274. #define CS_EXIT        1
  275. #define DIAL_REQUEST    0    
  276. #define TLI_REQUEST    1    
  277. #define CS_READ_AUTH    2
  278. #define DIALS_REQUEST    3    
  279. #define DEBUG_DIAL_REQUEST    10    
  280. #define DEBUG_TLI_REQUEST    11    
  281. #define DEBUG_DIALS_REQUEST    12    
  282.  
  283. #define NO_DEBUG_FD     (-1)
  284.     
  285. #ifdef __cplusplus
  286. }
  287. #endif
  288. #endif /* CS_NO_ERROR */
  289.