xref: /illumos-gate/usr/src/head/listen.h (revision bbf21555)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
57c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
67c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
77c478bd9Sstevel@tonic-gate  * with the License.
87c478bd9Sstevel@tonic-gate  *
97c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate  * and limitations under the License.
137c478bd9Sstevel@tonic-gate  *
147c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate  *
207c478bd9Sstevel@tonic-gate  * CDDL HEADER END
217c478bd9Sstevel@tonic-gate  */
227c478bd9Sstevel@tonic-gate /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
236e270ca8SMarcel Telka /*	  All Rights Reserved	*/
247c478bd9Sstevel@tonic-gate 
257c478bd9Sstevel@tonic-gate 
267c478bd9Sstevel@tonic-gate #ifndef	_LISTEN_H
277c478bd9Sstevel@tonic-gate #define	_LISTEN_H
287c478bd9Sstevel@tonic-gate 
297c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
307c478bd9Sstevel@tonic-gate extern "C" {
317c478bd9Sstevel@tonic-gate #endif
327c478bd9Sstevel@tonic-gate 
337c478bd9Sstevel@tonic-gate /*
347c478bd9Sstevel@tonic-gate  * listen.h:	Include file for network listener related user programs
357c478bd9Sstevel@tonic-gate  *
367c478bd9Sstevel@tonic-gate  */
377c478bd9Sstevel@tonic-gate 
387c478bd9Sstevel@tonic-gate /*
397c478bd9Sstevel@tonic-gate  * The NLPS (Network Listener Process Service)
407c478bd9Sstevel@tonic-gate  * protocol message sent by client machines to
417c478bd9Sstevel@tonic-gate  * a listener process to request a service on the listener's
427c478bd9Sstevel@tonic-gate  * machine. The message is sent to "netnodename(r_nodename)"
437c478bd9Sstevel@tonic-gate  * where r_nodename is the nodename (see uname(2)) of the
447c478bd9Sstevel@tonic-gate  * remote host. Note that client's need not know (or care)
457c478bd9Sstevel@tonic-gate  * about the details of this message.  They use the "nls_connect(3)"
467c478bd9Sstevel@tonic-gate  * library routine which uses this message.
477c478bd9Sstevel@tonic-gate  *
487c478bd9Sstevel@tonic-gate  * msg format:
497c478bd9Sstevel@tonic-gate  *
507c478bd9Sstevel@tonic-gate  *		"id:low:high:service_code"
517c478bd9Sstevel@tonic-gate  *
527c478bd9Sstevel@tonic-gate  *		id = "NLPS"
537c478bd9Sstevel@tonic-gate  *		low:high = version number of listener (see prot msg)
547c478bd9Sstevel@tonic-gate  *		service_code is ASCII/decimal
557c478bd9Sstevel@tonic-gate  *
567c478bd9Sstevel@tonic-gate  * the following prot string can be run through sprintf with a service code
577c478bd9Sstevel@tonic-gate  * to generate the message:
587c478bd9Sstevel@tonic-gate  *
597c478bd9Sstevel@tonic-gate  *	len = sprintf(buf,nls_prot_msg,svc_code);
607c478bd9Sstevel@tonic-gate  *	t_snd(fd, buf, len, ...);
617c478bd9Sstevel@tonic-gate  *
627c478bd9Sstevel@tonic-gate  * See also:  listen(1), nlsrequest(3)
637c478bd9Sstevel@tonic-gate  *
647c478bd9Sstevel@tonic-gate  * and on the UNIX PC STARLAN NETWORK:
657c478bd9Sstevel@tonic-gate  * See also:  nlsname(3), nlsconnect(3), nlsestablish(3)
667c478bd9Sstevel@tonic-gate  */
677c478bd9Sstevel@tonic-gate 
687c478bd9Sstevel@tonic-gate /*
697c478bd9Sstevel@tonic-gate  * defines for compatability purposes
707c478bd9Sstevel@tonic-gate  */
717c478bd9Sstevel@tonic-gate 
727c478bd9Sstevel@tonic-gate #define	nls_prot_msg	nls_v0_d
737c478bd9Sstevel@tonic-gate #define	nls_v2_msg	nls_v2_s
747c478bd9Sstevel@tonic-gate 
757c478bd9Sstevel@tonic-gate static char *nls_v0_d = "NLPS:000:001:%d";
767c478bd9Sstevel@tonic-gate static char *nls_v0_s = "NLPS:000:001:%s";
777c478bd9Sstevel@tonic-gate static char *nls_v2_d = "NLPS:002:002:%d";
787c478bd9Sstevel@tonic-gate static char *nls_v2_s = "NLPS:002:002:%s";
797c478bd9Sstevel@tonic-gate 
807c478bd9Sstevel@tonic-gate #define	NLSSTART	0
817c478bd9Sstevel@tonic-gate #define	NLSFORMAT	2
827c478bd9Sstevel@tonic-gate #define	NLSUNKNOWN	3
837c478bd9Sstevel@tonic-gate #define	NLSDISABLED	4
847c478bd9Sstevel@tonic-gate 
857c478bd9Sstevel@tonic-gate #define	SVC_CODE_SZ	14
867c478bd9Sstevel@tonic-gate 
877c478bd9Sstevel@tonic-gate /*
887c478bd9Sstevel@tonic-gate  * Structure for handling multiple connection requests on the same stream.
897c478bd9Sstevel@tonic-gate  */
907c478bd9Sstevel@tonic-gate 
917c478bd9Sstevel@tonic-gate struct callsave {
927c478bd9Sstevel@tonic-gate 	struct t_call *c_cp;
937c478bd9Sstevel@tonic-gate 	struct callsave *c_np;
947c478bd9Sstevel@tonic-gate };
957c478bd9Sstevel@tonic-gate 
967c478bd9Sstevel@tonic-gate struct call_list {
977c478bd9Sstevel@tonic-gate 	struct callsave *cl_head;
987c478bd9Sstevel@tonic-gate 	struct callsave *cl_tail;
997c478bd9Sstevel@tonic-gate };
1007c478bd9Sstevel@tonic-gate 
1017c478bd9Sstevel@tonic-gate 
1026e270ca8SMarcel Telka #define	EMPTYLIST(p)	(p->cl_head == (struct callsave *)NULL)
1037c478bd9Sstevel@tonic-gate 
1047c478bd9Sstevel@tonic-gate /*
1057c478bd9Sstevel@tonic-gate  * Ridiculously high value for maximum number of connects per stream.
1067c478bd9Sstevel@tonic-gate  * Transport Provider will determine actual maximum to be used.
1077c478bd9Sstevel@tonic-gate  */
1087c478bd9Sstevel@tonic-gate 
1097c478bd9Sstevel@tonic-gate #define	MAXCON		100
1107c478bd9Sstevel@tonic-gate 
1117c478bd9Sstevel@tonic-gate /*
1127c478bd9Sstevel@tonic-gate  * these are names of environment variables that the listener
1137c478bd9Sstevel@tonic-gate  * adds to the servers environment before the exec(2).
1147c478bd9Sstevel@tonic-gate  *
1157c478bd9Sstevel@tonic-gate  * the variables should be accessed via library routines.
1167c478bd9Sstevel@tonic-gate  *
117*bbf21555SRichard Lowe  * see nlsgetcall(3NSL) and nlsprovider(3NSL).
1187c478bd9Sstevel@tonic-gate  */
1197c478bd9Sstevel@tonic-gate 
1207c478bd9Sstevel@tonic-gate #define	NLSADDR		"NLSADDR"
1217c478bd9Sstevel@tonic-gate #define	NLSOPT		"NLSOPT"
1227c478bd9Sstevel@tonic-gate #define	NLSUDATA	"NLSUDATA"
1237c478bd9Sstevel@tonic-gate #define	NLSPROVIDER	"NLSPROVIDER"
1247c478bd9Sstevel@tonic-gate 
1257c478bd9Sstevel@tonic-gate /*
1267c478bd9Sstevel@tonic-gate  * the following variables can be accessed "normally"
1277c478bd9Sstevel@tonic-gate  */
1287c478bd9Sstevel@tonic-gate 
1297c478bd9Sstevel@tonic-gate #define	HOME		"HOME"
1307c478bd9Sstevel@tonic-gate #define	PATH		"PATH"
1317c478bd9Sstevel@tonic-gate 
1327c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
1337c478bd9Sstevel@tonic-gate }
1347c478bd9Sstevel@tonic-gate #endif
1357c478bd9Sstevel@tonic-gate 
1367c478bd9Sstevel@tonic-gate #endif	/* _LISTEN_H */
137