/*
* Copyright (c) 2001 Hellmuth Michaelis. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*---------------------------------------------------------------------------
*
* nifmon - header file
* --------------------
*
* last edit-date: [Sun Sep 9 11:54:37 2001]
*
*---------------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <signal.h>
#include <unistd.h>
#include <syslog.h>
#include <regex.h>
#include <curses.h>
#include <fcntl.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/sysctl.h>
#include <sys/wait.h>
#include <net/if.h>
#include <net/if_var.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <net/if_mib.h>
#include <netdb.h>
#define VERSION 1
#define RELEASE 4
#define PIDFIL "/var/run/nifmon"
#define PIDPID ".pid"
#define TCPDUMP "tcpdump"
#define TCPDUMPPATH "/usr/sbin/tcpdump"
#define TCPDUMPFLAGS "-li"
/*---------------------------------------------------------------------------*
* curses fullscreen display definitions
*---------------------------------------------------------------------------*/
/* horizontal positions for upper window */
#define V_IP 1
#define H_LOCIP 6
#define H_LOCHN 22
#define H_REMIP 64
#define V_LADCD 2
#define H_LADMCHG 5
#define H_LADMCHGL 30
#define H_PADMCHG 44
#define H_PADMCHGL 69
#define V_BIO 3
#define H_BIN 12
#define H_BINX 34
#define H_BOUT 53
#define H_BOUTX 74
#define V_PIO 4
#define H_PIN 12
#define H_POUT 53
#define V_IBYTE 5
#define H_SEC 70
#define H_MIN 42
#define H_HR 12
#define V_OBYTE 6
#define V_IPACK 7
#define V_OPACK 8
#define V_LOWERW 9
/* fullscreen mode menu window */
#define WMENU_LEN 26 /* width of menu window */
#define WMENU_TITLE "Command" /* title string */
#define WMENU_POSLN 15 /* menu position, line */
#define WMENU_POSCO 5 /* menu position, col */
#define WMITEMS 2 /* no of menu items */
#define WMENU_HGT (WMITEMS + 4) /* menu window height */
#define WREFRESH 0
#define WQUIT 1
#define WMTIMEOUT 5 /* timeout in seconds */
/*---------------------------------------------------------------------------*
* global variables
*---------------------------------------------------------------------------*/
#ifdef MAIN
int curses_ready = 0; /* curses initialized */
int do_bell = 0;
WINDOW *upper_w; /* curses upper window pointer */
WINDOW *lower_w; /* curses lower window pointer */
FILE *pfp;
short if_flags = 0;
char *rdev;
char *term;
int background = 0;
int has_rdev = 0;
int has_term = 0;
char pidfile[MAXPATHLEN];
char *hostname = "";
#else /* !MAIN */
int curses_ready;
int do_bell;
WINDOW *upper_w;
WINDOW *lower_w;
FILE *pfp;
short if_flags;
char *rdev;
char *term;
int background;
int has_rdev;
int has_term;
char pidfile[MAXPATHLEN];
char *hostname;
#endif
extern void init_screen ( char *interface );
extern void do_menu ( void );
extern void kbdrdhdl ( void );
extern void loghdl ( FILE * fp );
extern void init_interface ( char *interface );
extern void update_interface ( char *interface );
extern int main ( int argc, char **argv );
extern void do_exit ( int exitval );
extern FILE * mpopen ( char *interface, char *expression );
extern int mpclose ( FILE * fp );
extern void check_pid ( char * );
extern void write_pid ( char * );
extern void daemonize ( void );
syntax highlighted by Code2HTML, v. 0.9.1