1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23 /* All Rights Reserved */ 24 25 26 #ifndef _LISTEN_H 27 #define _LISTEN_H 28 29 #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.4.3.1 */ 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 /* 36 * listen.h: Include file for network listener related user programs 37 * 38 */ 39 40 /* 41 * The NLPS (Network Listener Process Service) 42 * protocol message sent by client machines to 43 * a listener process to request a service on the listener's 44 * machine. The message is sent to "netnodename(r_nodename)" 45 * where r_nodename is the nodename (see uname(2)) of the 46 * remote host. Note that client's need not know (or care) 47 * about the details of this message. They use the "nls_connect(3)" 48 * library routine which uses this message. 49 * 50 * msg format: 51 * 52 * "id:low:high:service_code" 53 * 54 * id = "NLPS" 55 * low:high = version number of listener (see prot msg) 56 * service_code is ASCII/decimal 57 * 58 * the following prot string can be run through sprintf with a service code 59 * to generate the message: 60 * 61 * len = sprintf(buf,nls_prot_msg,svc_code); 62 * t_snd(fd, buf, len, ...); 63 * 64 * See also: listen(1), nlsrequest(3) 65 * 66 * and on the UNIX PC STARLAN NETWORK: 67 * See also: nlsname(3), nlsconnect(3), nlsestablish(3) 68 */ 69 70 /* 71 * defines for compatability purposes 72 */ 73 74 #define nls_prot_msg nls_v0_d 75 #define nls_v2_msg nls_v2_s 76 77 static char *nls_v0_d = "NLPS:000:001:%d"; 78 static char *nls_v0_s = "NLPS:000:001:%s"; 79 static char *nls_v2_d = "NLPS:002:002:%d"; 80 static char *nls_v2_s = "NLPS:002:002:%s"; 81 82 #define NLSSTART 0 83 #define NLSFORMAT 2 84 #define NLSUNKNOWN 3 85 #define NLSDISABLED 4 86 87 #define SVC_CODE_SZ 14 88 89 /* 90 * Structure for handling multiple connection requests on the same stream. 91 */ 92 93 struct callsave { 94 struct t_call *c_cp; 95 struct callsave *c_np; 96 }; 97 98 struct call_list { 99 struct callsave *cl_head; 100 struct callsave *cl_tail; 101 }; 102 103 104 #define EMPTYLIST(p) (p->cl_head == (struct callsave *) NULL) 105 106 /* 107 * Ridiculously high value for maximum number of connects per stream. 108 * Transport Provider will determine actual maximum to be used. 109 */ 110 111 #define MAXCON 100 112 113 /* 114 * these are names of environment variables that the listener 115 * adds to the servers environment before the exec(2). 116 * 117 * the variables should be accessed via library routines. 118 * 119 * see nlsgetcall(3X) and nlsprovider(3X). 120 */ 121 122 #define NLSADDR "NLSADDR" 123 #define NLSOPT "NLSOPT" 124 #define NLSUDATA "NLSUDATA" 125 #define NLSPROVIDER "NLSPROVIDER" 126 127 /* 128 * the following variables can be accessed "normally" 129 */ 130 131 #define HOME "HOME" 132 #define PATH "PATH" 133 134 #ifdef __cplusplus 135 } 136 #endif 137 138 #endif /* _LISTEN_H */ 139