
1: /* $NetBSD: connect.c,v 1.5 2003/06/11 12:00:21 wiz 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.5 2003/06/11 12:00:21 wiz Exp $"); 36: #endif /* not lint */ 37: 38: # include "hunt.h" 39: # include <signal.h> 40: # include <unistd.h> 41: 42: void 43: do_connect(name, team, enter_status) 44: const char *name; 45: char team; 46: long enter_status; 47: { 48: static int32_t uid; 49: static int32_t mode; 50: 51: if (uid == 0) 52: uid = htonl(getuid()); 53: (void) write(Socket, (char *) &uid, LONGLEN); 54: (void) write(Socket, name, NAMELEN); 55: (void) write(Socket, &team, 1); 56: enter_status = htonl(enter_status); 57: (void) write(Socket, (char *) &enter_status, LONGLEN); 58: (void) strcpy(Buf, ttyname(fileno(stderr))); 59: (void) write(Socket, Buf, NAMELEN); 60: # ifdef INTERNET 61: if (Send_message != NULL) 62: mode = C_MESSAGE; 63: else 64: # endif 65: # ifdef MONITOR 66: if (Am_monitor) 67: mode = C_MONITOR; 68: else 69: # endif 70: mode = C_PLAYER; 71: mode = htonl(mode); 72: (void) write(Socket, (char *) &mode, sizeof mode); 73: }