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 2002 Sun Microsystems, Inc.  All rights reserved.
23  * Use is subject to license terms.
24  */
25 
26 /*
27  * Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
28  * All Rights Reserved.
29  */
30 
31 /*
32  * University Copyright- Copyright (c) 1982, 1986, 1988
33  * The Regents of the University of California.
34  * All Rights Reserved.
35  *
36  * University Acknowledgment- Portions of this document are derived from
37  * software developed by the University of California, Berkeley, and its
38  * contributors.
39  */
40 
41 #ifndef	_CTL_H
42 #define	_CTL_H
43 
44 #pragma ident	"%Z%%M%	%I%	%E% SMI"
45 
46 /*
47  * ctl.h describes the structure that talk and talkd pass back
48  * and forth.
49  */
50 
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54 
55 #include <sys/types.h>
56 #include <sys/socket.h>
57 #include <netinet/in.h>
58 #include <netdb.h>
59 
60 #define	NAME_SIZE 9
61 #define	TTY_SIZE 16
62 #define	HOST_NAME_LENGTH 256
63 
64 /*
65  * Maximum time an invitation is saved by the talk daemons.
66  */
67 #define	MAX_LIFE 60
68 /*
69  * Time to wait before refreshing invitation should be 10's of seconds less
70  * than MAX_LIFE.
71  */
72 #define	RING_WAIT 30
73 
74 /*
75  * The values for type.
76  */
77 #define	LEAVE_INVITE 0
78 #define	LOOK_UP 1
79 #define	DELETE 2
80 #define	ANNOUNCE 3
81 
82 /*
83  * The values for answer.
84  */
85 #define	SUCCESS 0
86 #define	NOT_HERE 1
87 #define	FAILED 2
88 #define	MACHINE_UNKNOWN 3
89 #define	PERMISSION_DENIED 4
90 #define	UNKNOWN_REQUEST 5
91 
92 typedef struct ctl_response CTL_RESPONSE;
93 
94 struct ctl_response {
95     char type;
96     char answer;
97     int id_num;
98     struct sockaddr_in addr;
99 };
100 
101 typedef struct ctl_msg CTL_MSG;
102 
103 struct ctl_msg {
104     char type;
105     char l_name[NAME_SIZE];
106     char r_name[NAME_SIZE];
107     int id_num;
108     pid_t pid;
109     char r_tty[TTY_SIZE];
110     struct sockaddr_in addr;
111     struct sockaddr_in ctl_addr;
112 };
113 
114 #ifdef __cplusplus
115 }
116 #endif
117 
118 #endif /* _CTL_H */
119