defs.c revision 31203
130715Sbrian/* 231203Sbrian * $Id: defs.c,v 1.3 1997/11/17 00:42:38 brian Exp $ 330715Sbrian */ 430715Sbrian 531196Sbrian#include <sys/param.h> 631196Sbrian#include <netinet/in.h> 731196Sbrian 831196Sbrian#include <errno.h> 931196Sbrian#include <stdio.h> 1030715Sbrian#include <stdlib.h> 1131121Sbrian#include <string.h> 1231196Sbrian#include <unistd.h> 1330715Sbrian 1430715Sbrian#include "defs.h" 1531196Sbrian#include "mbuf.h" 1631196Sbrian#include "log.h" 1731196Sbrian#include "loadalias.h" 1831196Sbrian#include "command.h" 1931196Sbrian#include "vars.h" 2030715Sbrian 2130715Sbrianint mode = MODE_INTER; 2230715Sbrianint BGFiledes[2] = { -1, -1 }; 2330715Sbrianint modem = -1; 2430715Sbrianint tun_in = -1; 2530715Sbrianint tun_out = -1; 2630715Sbrianint netfd = -1; 2730715Sbrian 2831121Sbrianstatic char dstsystem[50]; 2931121Sbrian 3030715Sbrianvoid 3131121SbrianSetLabel(const char *label) 3231121Sbrian{ 3331121Sbrian if (label) 3431121Sbrian strncpy(dstsystem, label, sizeof dstsystem); 3531121Sbrian else 3631121Sbrian *dstsystem = '\0'; 3731121Sbrian} 3831121Sbrian 3931121Sbrianconst char * 4031121SbrianGetLabel() 4131121Sbrian{ 4231121Sbrian return *dstsystem ? dstsystem : NULL; 4331121Sbrian} 4431121Sbrian 4531121Sbrianvoid 4630715Sbrianrandinit() 4730715Sbrian{ 4830715Sbrian static int initdone; 4930715Sbrian 5030715Sbrian if (!initdone) { 5130715Sbrian initdone = 1; 5230715Sbrian srandomdev(); 5330715Sbrian } 5430715Sbrian} 5531196Sbrian 5631196Sbrian 5731196Sbrianint 5831196SbrianGetShortHost() 5931196Sbrian{ 6031196Sbrian char *p; 6131196Sbrian 6231196Sbrian if (gethostname(VarShortHost, sizeof(VarShortHost))) { 6331196Sbrian LogPrintf(LogERROR, "GetShortHost: gethostbyname: %s\n", strerror(errno)); 6431196Sbrian return 0; 6531196Sbrian } 6631196Sbrian 6731196Sbrian if ((p = strchr(VarShortHost, '.'))) 6831196Sbrian *p = '\0'; 6931196Sbrian 7031196Sbrian return 1; 7131196Sbrian} 7231203Sbrian 7331203Sbrianvoid 7431203SbrianDropClient() 7531203Sbrian{ 7631203Sbrian FILE *oVarTerm; 7731203Sbrian 7831203Sbrian if (VarTerm && !(mode & MODE_INTER)) { 7931203Sbrian oVarTerm = VarTerm; 8031203Sbrian VarTerm = 0; 8131203Sbrian if (oVarTerm) 8231203Sbrian fclose(oVarTerm); 8331203Sbrian close(netfd); 8431203Sbrian netfd = -1; 8531203Sbrian LogPrintf(LogPHASE, "Client connection closed.\n"); 8631203Sbrian } 8731203Sbrian} 88