1/* $NetBSD: connect.c,v 1.7 2009/07/04 01:58:57 dholland Exp $ */ 2/* 3 * Copyright (c) 1983-2003, Regents of the University of California. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: 9 * 10 * + Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * + Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * + Neither the name of the University of California, San Francisco nor 16 * the names of its contributors may be used to endorse or promote 17 * products derived from this software without specific prior written 18 * permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 21 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 23 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33#include <sys/cdefs.h> 34#ifndef lint 35__RCSID("$NetBSD: connect.c,v 1.7 2009/07/04 01:58:57 dholland Exp $"); 36#endif /* not lint */ 37 38#include "hunt.h" 39#include <signal.h> 40#include <unistd.h> 41 42void 43do_connect(char *name, char team, long enter_status) 44{ 45 static int32_t uid; 46 static int32_t mode; 47 48 if (uid == 0) 49 uid = htonl(getuid()); 50 (void) write(Socket, &uid, LONGLEN); 51 (void) write(Socket, name, NAMELEN); 52 (void) write(Socket, &team, 1); 53 enter_status = htonl(enter_status); 54 (void) write(Socket, &enter_status, LONGLEN); 55 (void) strcpy(Buf, ttyname(fileno(stderr))); 56 (void) write(Socket, Buf, NAMELEN); 57#ifdef INTERNET 58 if (Send_message != NULL) 59 mode = C_MESSAGE; 60 else 61#endif 62#ifdef MONITOR 63 if (Am_monitor) 64 mode = C_MONITOR; 65 else 66#endif 67 mode = C_PLAYER; 68 mode = htonl(mode); 69 (void) write(Socket, &mode, sizeof mode); 70} 71