1: /*
   2:  * Copyright (c) 1983 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)talkd.h	5.2 (Berkeley) 3/13/86
   7:  */
   8: 
   9: #include <sys/types.h>
  10: #include <sys/socket.h>
  11: /*
  12:  * This describes the protocol used by the talk server and clients.
  13:  *
  14:  * The talk server acts a repository of invitations, responding to
  15:  * requests by clients wishing to rendezvous for the purpose of
  16:  * holding a conversation.  In normal operation, a client, the caller,
  17:  * initiates a rendezvous by sending a CTL_MSG to the server of
  18:  * type LOOK_UP.  This causes the server to search its invitation
  19:  * tables to check if an invitation currently exists for the caller
  20:  * (to speak to the callee specified in the message).  If the lookup
  21:  * fails, the caller then sends an ANNOUNCE message causing the server
  22:  * to broadcast an announcement on the callee's login ports requesting
  23:  * contact.  When the callee responds, the local server uses the
  24:  * recorded invitation to respond with the appropriate rendezvous
  25:  * address and the caller and callee client programs establish a
  26:  * stream connection through which the conversation takes place.
  27:  */
  28: 
  29: /*
  30:  * Client->server request message format.
  31:  */
  32: typedef struct {
  33:     u_char  vers;       /* protocol version */
  34:     u_char  type;       /* request type, see below */
  35:     u_char  answer;     /* not used */
  36:     u_char  pad;
  37:     u_long  id_num;     /* message id */
  38:     struct  sockaddr addr;
  39:     struct  sockaddr ctl_addr;
  40:     long    pid;        /* caller's process id */
  41: #define NAME_SIZE   12
  42:     char    l_name[NAME_SIZE];/* caller's name */
  43:     char    r_name[NAME_SIZE];/* callee's name */
  44: #define TTY_SIZE    16
  45:     char    r_tty[TTY_SIZE];/* callee's tty name */
  46: } CTL_MSG;
  47: 
  48: /*
  49:  * Server->client response message format.
  50:  */
  51: typedef struct {
  52:     u_char  vers;       /* protocol version */
  53:     u_char  type;       /* type of request message, see below */
  54:     u_char  answer;     /* respose to request message, see below */
  55:     u_char  pad;
  56:     u_long  id_num;     /* message id */
  57:     struct  sockaddr addr;  /* address for establishing conversation */
  58: } CTL_RESPONSE;
  59: 
  60: #define TALK_VERSION    1       /* protocol version */
  61: 
  62: /* message type values */
  63: #define LEAVE_INVITE    0   /* leave invitation with server */
  64: #define LOOK_UP     1   /* check for invitation by callee */
  65: #define DELETE      2   /* delete invitation by caller */
  66: #define ANNOUNCE    3   /* announce invitation by caller */
  67: 
  68: /* answer values */
  69: #define SUCCESS     0   /* operation completed properly */
  70: #define NOT_HERE    1   /* callee not logged in */
  71: #define FAILED      2   /* operation failed for unexplained reason */
  72: #define MACHINE_UNKNOWN 3   /* caller's machine name unknown */
  73: #define PERMISSION_DENIED 4 /* callee's tty doesn't permit announce */
  74: #define UNKNOWN_REQUEST 5   /* request has invalid type value */
  75: #define BADVERSION  6   /* request has invalid protocol version */
  76: #define BADADDR     7   /* request has invalid addr value */
  77: #define BADCTLADDR  8   /* request has invalid ctl_addr value */
  78: 
  79: /*
  80:  * Operational parameters.
  81:  */
  82: #define MAX_LIFE    60  /* max time daemon saves invitations */
  83: /* RING_WAIT should be 10's of seconds less than MAX_LIFE */
  84: #define RING_WAIT   30  /* time to wait before resending invitation */

Defined macros

ANNOUNCE defined in line 66; never used
BADADDR defined in line 76; never used
BADCTLADDR defined in line 77; never used
BADVERSION defined in line 75; never used
DELETE defined in line 65; never used
FAILED defined in line 71; never used
LEAVE_INVITE defined in line 63; never used
LOOK_UP defined in line 64; never used
MACHINE_UNKNOWN defined in line 72; never used
MAX_LIFE defined in line 82; never used
NAME_SIZE defined in line 41; used 2 times
NOT_HERE defined in line 70; never used
PERMISSION_DENIED defined in line 73; never used
RING_WAIT defined in line 84; never used
SUCCESS defined in line 69; never used
TALK_VERSION defined in line 60; never used
TTY_SIZE defined in line 44; used 1 times
  • in line 45
UNKNOWN_REQUEST defined in line 74; never used
Last modified: 1989-01-06
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2516
Valid CSS Valid XHTML 1.0 Strict