/*
* Copyright (c) 1993-1997 JSC Rinet, Novosibirsk, Russia
*
* Redistribution and use in source forms, with and without modification,
* are permitted provided that this entire comment appears intact.
* Redistribution in binary form may occur without any restrictions.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' WITHOUT ANY WARRANTIES OF ANY KIND.
*/
/* trafshow.h -- definitions and prototypes */
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#define DEFAULT_SCR 5 /* screen refresh interval in seconds */
#define DEFAULT_DNS 2 /* max timeout for gethostbyaddr() */
#define SCR_OFFS 2 /* first show line on screen */
#define MAX_PAGES 20 /* max pages on screen */
#define DEFAULT_SNAPLEN 68 /* length of saved portion of packet */
#define DEFAULT_COLS 80 /* full screen width */
#define ADDR_SIZE 28 /* host..port size */
#define PROTO_SIZE 4 /* protocol size */
#define BYTES_SIZE 10 /* bytes size */
#define CPS_SIZE 6 /* cps size */
#define COUNT_SIZE 9 /* misc counters size */
/* Keyboard functions */
#define ctrl(c) ((c) & 0x1F)
#define ESC '\033'
#define CR '\r'
#define NL '\n'
#define BS '\b'
#define KEYMAP_UNKNOWN 0
#define KEYMAP_UP 1
#define KEYMAP_DOWN 2
#define KEYMAP_LEFT 3
#define KEYMAP_RIGHT 4
#define KEYMAP_PAGE_UP 5
#define KEYMAP_PAGE_DOWN 6
#define KEYMAP_HOME 7
#define KEYMAP_END 8
#define KEYMAP_INS 9
#define KEYMAP_F1 10
#define KEYMAP_F2 11
#define KEYMAP_F3 12
#define KEYMAP_F4 13
#ifndef IPPROTO_OSPF
#define IPPROTO_OSPF 89
#endif
#ifndef IPPROTO_IGMP
#define IPPROTO_IGMP 2
#endif
#ifndef DLT_C_HDLC
#define DLT_C_HDLC 12 /* Cisco HDLC data-link level type */
#endif
/* traffic entry */
struct t_entry {
struct ether_header eh;
struct in_addr src; /* source ip address */
u_short sport; /* source port */
struct in_addr dst; /* destination ip address */
u_short dport; /* destination port */
u_short proto; /* ip protocol */
u_long bytes; /* bytes in ip datagram */
u_long obytes; /* old bytes */
u_int cps; /* chars per second :-) */
};
/* mask entry */
struct m_entry {
struct in_addr src; /* source ip address */
struct in_addr sm; /* source ip address mask */
u_short sport; /* source port */
struct in_addr dst; /* destination ip address */
struct in_addr dm; /* destination ip address mask */
u_short dport; /* destination port */
u_short proto; /* ip protocol */
short pair; /* color-pair */
int attr; /* video attributes; bold, blink, etc */
};
/* global variables */
extern char *program_name;
extern char *device_name;
extern unsigned char *snapend;
extern int curses_initialized;
extern int use_colors;
extern int alarm_flag;
extern int scr_interval;
extern int dns_timeout;
extern int n_entry; /* counter for number of records */
extern int fflag;
extern int kflag;
extern int nflag;
extern int Nflag;
extern int eflag;
extern int page_size;
extern int resize_flag;
extern int addr_size;
extern int proto_size;
extern int bytes_size;
extern int cps_size;
extern int count_size;
/* function prototypes */
/* trafshow.c */
extern void cleanup(int);
extern void init_term(int);
/* display.c */
extern void init_display(int);
extern void header_line(void);
extern void status_line(int);
extern void scr_redraw(int);
extern void scr_update(void);
extern void display(/* struct ether_header *, struct ip *, int */);
extern int get_keyb(void);
/* keyb.c */
extern int kbhit(int);
extern int get_arrowkey(int (*f)());
/* color.c */
extern int init_colormask(void);
extern int color_on(struct t_entry *);
/* util.c */
#ifdef __STDC__
extern void error(int, char *, ...);
#else
extern void error();
#endif
extern char *copy_argv(char **);
extern char *read_infile(char *);
extern char *getprotoname(u_short);
extern u_short getprotonum(char *);
/* addrtoname.c */
extern void init_addrtoname(u_int32_t, u_int32_t);
extern char *getname(u_char *);
extern char *intoa(u_int32_t);
extern char *tcpport_string(u_short);
extern char *udpport_string(u_short);
#define ipaddr_string(p) getname((u_char *)(p))
extern char *entoa(u_char *);
extern char *etheraddr_string(u_char *);
extern char *etherproto_string(u_short);
/* getarptab.c */
extern u_char *getarptab(u_char *);
syntax highlighted by Code2HTML, v. 0.9.1