OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [posix/] [libposix/] [include/] [posix/] [protocols/] [talkd.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
/*
2
 * Copyright (c) 1983, 1993
3
 *      The Regents of the University of California.  All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
7
 * are met:
8
 * 1. Redistributions of source code must retain the above copyright
9
 *    notice, this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright
11
 *    notice, this list of conditions and the following disclaimer in the
12
 *    documentation and/or other materials provided with the distribution.
13
 * 4. Neither the name of the University nor the names of its contributors
14
 *    may be used to endorse or promote products derived from this software
15
 *    without specific prior written permission.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
 * SUCH DAMAGE.
28
 *
29
 *      @(#)talkd.h     8.1 (Berkeley) 6/2/93
30
 */
31
 
32
#ifndef _PROTOCOLS_TALKD_H
33
#define _PROTOCOLS_TALKD_H 1
34
 
35
/*
36
 * This describes the protocol used by the talk server and clients.
37
 *
38
 * The talk server acts a repository of invitations, responding to
39
 * requests by clients wishing to rendezvous for the purpose of
40
 * holding a conversation.  In normal operation, a client, the caller,
41
 * initiates a rendezvous by sending a CTL_MSG to the server of
42
 * type LOOK_UP.  This causes the server to search its invitation
43
 * tables to check if an invitation currently exists for the caller
44
 * (to speak to the callee specified in the message).  If the lookup
45
 * fails, the caller then sends an ANNOUNCE message causing the server
46
 * to broadcast an announcement on the callee's login ports requesting
47
 * contact.  When the callee responds, the local server uses the
48
 * recorded invitation to respond with the appropriate rendezvous
49
 * address and the caller and callee client programs establish a
50
 * stream connection through which the conversation takes place.
51
 */
52
 
53
#include <sys/types.h>
54
#include <sys/socket.h>
55
 
56
/*
57
 * Client->server request message format.
58
 */
59
typedef struct {
60
        u_char  vers;           /* protocol version */
61
        u_char  type;           /* request type, see below */
62
        u_char  answer;         /* not used */
63
        u_char  pad;
64
        u_int32_t id_num;       /* message id */
65
        struct  osockaddr addr;         /* old (4.3) style */
66
        struct  osockaddr ctl_addr;     /* old (4.3) style */
67
        int32_t pid;            /* caller's process id */
68
#define NAME_SIZE       12
69
        char    l_name[NAME_SIZE];/* caller's name */
70
        char    r_name[NAME_SIZE];/* callee's name */
71
#define TTY_SIZE        16
72
        char    r_tty[TTY_SIZE];/* callee's tty name */
73
} CTL_MSG;
74
 
75
/*
76
 * Server->client response message format.
77
 */
78
typedef struct {
79
        u_char  vers;           /* protocol version */
80
        u_char  type;           /* type of request message, see below */
81
        u_char  answer;         /* response to request message, see below */
82
        u_char  pad;
83
        u_int32_t id_num;       /* message id */
84
        struct  osockaddr addr; /* address for establishing conversation */
85
} CTL_RESPONSE;
86
 
87
#define TALK_VERSION    1               /* protocol version */
88
 
89
/* message type values */
90
#define LEAVE_INVITE    0        /* leave invitation with server */
91
#define LOOK_UP         1       /* check for invitation by callee */
92
#define DELETE          2       /* delete invitation by caller */
93
#define ANNOUNCE        3       /* announce invitation by caller */
94
 
95
/* answer values */
96
#define SUCCESS         0        /* operation completed properly */
97
#define NOT_HERE        1       /* callee not logged in */
98
#define FAILED          2       /* operation failed for unexplained reason */
99
#define MACHINE_UNKNOWN 3       /* caller's machine name unknown */
100
#define PERMISSION_DENIED 4     /* callee's tty doesn't permit announce */
101
#define UNKNOWN_REQUEST 5       /* request has invalid type value */
102
#define BADVERSION      6       /* request has invalid protocol version */
103
#define BADADDR         7       /* request has invalid addr value */
104
#define BADCTLADDR      8       /* request has invalid ctl_addr value */
105
 
106
/*
107
 * Operational parameters.
108
 */
109
#define MAX_LIFE        60      /* max time daemon saves invitations */
110
/* RING_WAIT should be 10's of seconds less than MAX_LIFE */
111
#define RING_WAIT       30      /* time to wait before resending invitation */
112
 
113
#endif /* protocols/talkd.h */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.