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
52extern "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
92typedef struct ctl_response CTL_RESPONSE;
93
94struct ctl_response {
95    char type;
96    char answer;
97    int id_num;
98    struct sockaddr_in addr;
99};
100
101typedef struct ctl_msg CTL_MSG;
102
103struct 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