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