Various changes for portability to FreeBSD.

Added "R" to control service resolution.
This commit is contained in:
pdw
2002-10-18 11:51:47 +00:00
parent 94b6ab8fc6
commit 45ccb4e4b9
7 changed files with 21 additions and 3 deletions

View File

@@ -29,7 +29,7 @@ MANDIR = man
#MANDIR = share/man # FHS-ish #MANDIR = share/man # FHS-ish
# You shouldn't need to change anything below this point. # You shouldn't need to change anything below this point.
VERSION = 0.8 VERSION = 0.9pre1
CFLAGS += -g -Wall "-DIFTOP_VERSION=\"$(VERSION)\"" CFLAGS += -g -Wall "-DIFTOP_VERSION=\"$(VERSION)\""
LDFLAGS += -g LDFLAGS += -g
LDLIBS += -lpcap -lpthread -lcurses -lm LDLIBS += -lpcap -lpthread -lcurses -lm

View File

@@ -6,6 +6,7 @@
#ifndef __ADDR_HASH_H_ /* include guard */ #ifndef __ADDR_HASH_H_ /* include guard */
#define __ADDR_HASH_H_ #define __ADDR_HASH_H_
#include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <arpa/inet.h> #include <arpa/inet.h>

View File

@@ -7,6 +7,8 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <net/if.h> #include <net/if.h>
#include <net/ethernet.h> #include <net/ethernet.h>
@@ -130,7 +132,7 @@ void assign_addr_pair(addr_pair* ap, struct ip* iptr, int flip) {
unsigned short int dst_port = 0; unsigned short int dst_port = 0;
/* Does this protocol use ports? */ /* Does this protocol use ports? */
if(iptr->ip_p == SOL_TCP || iptr->ip_p == SOL_UDP) { if(iptr->ip_p == IPPROTO_TCP || iptr->ip_p == IPPROTO_UDP) {
/* We take a slight liberty here by treating UDP the same as TCP */ /* We take a slight liberty here by treating UDP the same as TCP */
/* Find the TCP/UDP header */ /* Find the TCP/UDP header */

View File

@@ -33,4 +33,12 @@ void ui_init(void);
/* options.c */ /* options.c */
void options_read(int argc, char **argv); void options_read(int argc, char **argv);
/* Make use of SIOCGIFHWADDR work on FreeBSD */
#ifdef __BSD__
#define SIOCGIFHWADDR SIOCGIFADDR
#define ifr_hwaddr ifr_addr
#endif
#endif /* __IFTOP_H_ */ #endif /* __IFTOP_H_ */

View File

@@ -64,6 +64,7 @@ static void set_defaults() {
inet_aton("10.0.1.0", &options.netfilternet); inet_aton("10.0.1.0", &options.netfilternet);
inet_aton("255.255.255.0", &options.netfiltermask); inet_aton("255.255.255.0", &options.netfiltermask);
options.dnsresolution = 1; options.dnsresolution = 1;
options.portresolution = 1;
options.promiscuous = 0; options.promiscuous = 0;
options.showbars = 1; options.showbars = 1;
options.showports = OPTION_PORTS_OFF; options.showports = OPTION_PORTS_OFF;

View File

@@ -35,6 +35,7 @@ typedef struct {
struct in_addr netfilternet; struct in_addr netfilternet;
struct in_addr netfiltermask; struct in_addr netfiltermask;
int dnsresolution; int dnsresolution;
int portresolution;
int promiscuous; int promiscuous;
int showbars; int showbars;
option_port_t showports; option_port_t showports;

7
ui.c
View File

@@ -328,7 +328,7 @@ void sprint_host(char * line, struct in_addr* addr, unsigned int port, unsigned
if(port != 0) { if(port != 0) {
skey.port = port; skey.port = port;
skey.protocol = protocol; skey.protocol = protocol;
if(hash_find(service_hash, &skey, (void**)&s_name) == HASH_STATUS_OK) { if(options.portresolution && hash_find(service_hash, &skey, (void**)&s_name) == HASH_STATUS_OK) {
snprintf(service, HOSTNAME_LENGTH, ":%s", s_name); snprintf(service, HOSTNAME_LENGTH, ":%s", s_name);
} }
else { else {
@@ -513,6 +513,11 @@ void ui_loop() {
tick(1); tick(1);
break; break;
case 'R':
options.portresolution = !options.portresolution;
tick(1);
break;
case 'b': case 'b':
options.showbars = !options.showbars; options.showbars = !options.showbars;
tick(1); tick(1);