(linenum→info "unix/slp.c:2238")

bsd-games/2.17/hunt/huntd/talk_ctl.h

    1: /*      $NetBSD: talk_ctl.h,v 1.6 2004/01/27 20:30:29 jsm Exp $      */
    2: 
    3: /*
    4:  * Copyright (c) 1983-2003, Regents of the University of California.
    5:  * All rights reserved.
    6:  * 
    7:  * Redistribution and use in source and binary forms, with or without 
    8:  * modification, are permitted provided that the following conditions are 
    9:  * met:
   10:  * 
   11:  * + Redistributions of source code must retain the above copyright 
   12:  *   notice, this list of conditions and the following disclaimer.
   13:  * + Redistributions in binary form must reproduce the above copyright 
   14:  *   notice, this list of conditions and the following disclaimer in the 
   15:  *   documentation and/or other materials provided with the distribution.
   16:  * + Neither the name of the University of California, San Francisco nor 
   17:  *   the names of its contributors may be used to endorse or promote 
   18:  *   products derived from this software without specific prior written 
   19:  *   permission.
   20:  * 
   21:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
   22:  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
   23:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
   24:  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
   25:  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
   26:  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
   27:  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
   28:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
   29:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
   30:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
   31:  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   32:  */
   33: 
   34: #include <sys/types.h>
   35: #include <netinet/in.h>
   36: 
   37: #ifdef TALK_43
   38: #include <protocols/talkd.h>
   39: #else
   40: 
   41: #include <sys/socket.h>
   42: 
   43: #define NAME_SIZE       9
   44: #define TTY_SIZE        16
   45: #ifndef MAXHOSTNAMELEN
   46: #define MAXHOSTNAMELEN  256
   47: #endif
   48: 
   49: #define MAX_LIFE        60     /* max time daemon saves invitations */
   50: /* RING_WAIT should be 10's of seconds less than MAX_LIFE */
   51: #define RING_WAIT       30    /* time to wait before refreshing invitation */
   52: 
   53: /* type values */
   54: #define LEAVE_INVITE    0
   55: #define LOOK_UP         1
   56: #define DELETE          2
   57: #define ANNOUNCE        3
   58: 
   59: /* answer values */
   60: #define SUCCESS         0
   61: #define NOT_HERE        1
   62: #define FAILED          2
   63: #define MACHINE_UNKNOWN 3
   64: #define PERMISSION_DENIED 4
   65: #define UNKNOWN_REQUEST 5
   66: 
   67: typedef struct ctl_response {
   68:         char   type;
   69:         char   answer;
   70:         int    id_num;
   71:         struct sockaddr_in addr;
   72: } CTL_RESPONSE;
   73: 
   74: typedef struct ctl_msg {
   75:         char   type;
   76:         char   l_name[NAME_SIZE];
   77:         char   r_name[NAME_SIZE];
   78:         int    id_num;
   79:         int    pid;
   80:         char   r_tty[TTY_SIZE];
   81:         struct sockaddr_in addr;
   82:         struct sockaddr_in ctl_addr;
   83: } CTL_MSG;
   84: #endif
   85: 
   86: #include <errno.h>
   87: #ifdef LOG
   88: #include <syslog.h>
   89: #endif
   90: 
   91: extern  struct sockaddr_in daemon_addr;
   92: extern  struct sockaddr_in ctl_addr;
   93: extern  struct sockaddr_in my_addr;
   94: extern  struct in_addr my_machine_addr;
   95: extern  struct in_addr his_machine_addr;
   96: extern  u_short daemon_port;
   97: extern  int ctl_sockt;
   98: extern  CTL_MSG msg;
   99: 
  100: #ifdef LOG
  101: #define p_error(str)    syslog(LOG_WARNING, "faketalk %s: %m", str)
  102: #else
  103: #define p_error(str)    warn(str)
  104: #endif
  105: 
  106: void    ctl_transact(struct in_addr, CTL_MSG, int, CTL_RESPONSE *);
Syntax (Markdown)