summaryrefslogtreecommitdiffstats
path: root/listen
diff options
context:
space:
mode:
authorTerry Dawson VK2KTJ <terry@animats.net>2001-09-12 13:18:43 +0000
committerTerry Dawson VK2KTJ <terry@animats.net>2001-09-12 13:18:43 +0000
commit0eb707fdcf1b87e71bb3a9eaa8472d0b05799a3d (patch)
treeb2db8371470b697e3ae8a19b1e78c7805046f2d2 /listen
parent628edceba5f1485ef7c4ef30fba93b4c0c0dd955 (diff)
updated libtool, uniformly indented source, corrected small ax25mond Makefile bug
Diffstat (limited to 'listen')
-rw-r--r--listen/Makefile.in29
-rw-r--r--listen/arpdump.c48
-rw-r--r--listen/ax25dump.c335
-rw-r--r--listen/flexnetdump.c61
-rw-r--r--listen/icmpdump.c28
-rw-r--r--listen/ipdump.c59
-rw-r--r--listen/kissdump.c17
-rw-r--r--listen/listen.c171
-rw-r--r--listen/nrdump.c81
-rw-r--r--listen/ripdump.c217
-rw-r--r--listen/rosedump.c252
-rw-r--r--listen/rspfdump.c91
-rw-r--r--listen/tcpdump.c54
-rw-r--r--listen/udpdump.c31
-rw-r--r--listen/utils.c35
15 files changed, 790 insertions, 719 deletions
diff --git a/listen/Makefile.in b/listen/Makefile.in
index 9f1fe31..2672438 100644
--- a/listen/Makefile.in
+++ b/listen/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -64,15 +64,17 @@ AWK = @AWK@
AX25_LIB = @AX25_LIB@
CC = @CC@
DLLTOOL = @DLLTOOL@
-LD = @LD@
+ECHO = @ECHO@
+EXEEXT = @EXEEXT@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
NCURSES_LIB = @NCURSES_LIB@
-NM = @NM@
OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
+STRIP = @STRIP@
VERSION = @VERSION@
bin_PROGRAMS = listen
@@ -88,6 +90,7 @@ listen_SOURCES = listen.c listen.h kissdump.c ax25dump.c nrdump.c arpdump
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
+bin_PROGRAMS = listen$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS)
@@ -95,9 +98,11 @@ DEFS = @DEFS@ -I. -I$(srcdir) -I..
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
-listen_OBJECTS = listen.o kissdump.o ax25dump.o nrdump.o arpdump.o \
-ipdump.o icmpdump.o udpdump.o tcpdump.o rspfdump.o ripdump.o rosedump.o \
-flexnetdump.o utils.o
+listen_OBJECTS = listen.$(OBJEXT) kissdump.$(OBJEXT) ax25dump.$(OBJEXT) \
+nrdump.$(OBJEXT) arpdump.$(OBJEXT) ipdump.$(OBJEXT) icmpdump.$(OBJEXT) \
+udpdump.$(OBJEXT) tcpdump.$(OBJEXT) rspfdump.$(OBJEXT) \
+ripdump.$(OBJEXT) rosedump.$(OBJEXT) flexnetdump.$(OBJEXT) \
+utils.$(OBJEXT)
listen_LDADD = $(LDADD)
listen_DEPENDENCIES =
listen_LDFLAGS =
@@ -122,7 +127,7 @@ OBJECTS = $(listen_OBJECTS)
all: all-redirect
.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
+.SUFFIXES: .S .c .lo .o .obj .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps listen/Makefile
@@ -159,6 +164,11 @@ uninstall-binPROGRAMS:
.c.o:
$(COMPILE) -c $<
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
.s.o:
$(COMPILE) -c $<
@@ -167,6 +177,7 @@ uninstall-binPROGRAMS:
mostlyclean-compile:
-rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
clean-compile:
@@ -194,8 +205,8 @@ distclean-libtool:
maintainer-clean-libtool:
-listen: $(listen_OBJECTS) $(listen_DEPENDENCIES)
- @rm -f listen
+listen$(EXEEXT): $(listen_OBJECTS) $(listen_DEPENDENCIES)
+ @rm -f listen$(EXEEXT)
$(LINK) $(listen_LDFLAGS) $(listen_OBJECTS) $(listen_LDADD) $(LIBS)
install-man1:
diff --git a/listen/arpdump.c b/listen/arpdump.c
index c399098..ef94c00 100644
--- a/listen/arpdump.c
+++ b/listen/arpdump.c
@@ -1,4 +1,4 @@
-/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/arpdump.c,v 1.1 2001/04/10 01:58:51 csmall Exp $ */
+/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/arpdump.c,v 1.2 2001/09/12 13:18:43 terry Exp $ */
/* ARP packet tracing routines
* Copyright 1991 Phil Karn, KA9Q
@@ -31,20 +31,18 @@ void arp_dump(unsigned char *data, int length)
lprintf(T_PROTOCOL, "ARP: ");
lprintf(T_IPHDR, "len %d", length);
- if (length < 16)
- {
+ if (length < 16) {
lprintf(T_ERROR, " bad packet\n");
return;
}
- hardware = get16(data + 0);
- protocol = get16(data + 2);
- hwlen = data[4];
- pralen = data[5];
+ hardware = get16(data + 0);
+ protocol = get16(data + 2);
+ hwlen = data[4];
+ pralen = data[5];
operation = get16(data + 6);
-
- if (hardware != ARP_AX25)
- {
+
+ if (hardware != ARP_AX25) {
lprintf(T_IPHDR, " non-AX25 ARP packet\n");
return;
}
@@ -57,18 +55,14 @@ void arp_dump(unsigned char *data, int length)
if (hwlen != AXALEN)
lprintf(T_IPHDR, " hwlen %d", hwlen);
- if (protocol == PID_IP)
- {
+ if (protocol == PID_IP) {
lprintf(T_IPHDR, " prot IP");
is_ip = 1;
- }
- else
- {
+ } else {
lprintf(T_IPHDR, " prot 0x%x prlen %d", protocol, pralen);
}
- switch (operation)
- {
+ switch (operation) {
case ARP_REQUEST:
lprintf(T_IPHDR, " op REQUEST");
break;
@@ -85,21 +79,23 @@ void arp_dump(unsigned char *data, int length)
lprintf(T_IPHDR, " op %d", operation);
break;
}
-
- shwaddr = data + 8;
+
+ shwaddr = data + 8;
sprotaddr = shwaddr + hwlen;
-
- thwaddr = sprotaddr + pralen;
- tprotaddr = thwaddr + hwlen;
-
+
+ thwaddr = sprotaddr + pralen;
+ tprotaddr = thwaddr + hwlen;
+
lprintf(T_IPHDR, "\nsender");
- if (is_ip) lprintf(T_ADDR, " IPaddr %d.%d.%d.%d",
+ if (is_ip)
+ lprintf(T_ADDR, " IPaddr %d.%d.%d.%d",
sprotaddr[0], sprotaddr[1],
sprotaddr[2], sprotaddr[3]);
lprintf(T_IPHDR, " hwaddr %s\n", pax25(tmp, shwaddr));
- lprintf(T_IPHDR,"target");
- if (is_ip) lprintf(T_ADDR, " IPaddr %d.%d.%d.%d",
+ lprintf(T_IPHDR, "target");
+ if (is_ip)
+ lprintf(T_ADDR, " IPaddr %d.%d.%d.%d",
tprotaddr[0], tprotaddr[1],
tprotaddr[2], tprotaddr[3]);
if (*thwaddr != 0)
diff --git a/listen/ax25dump.c b/listen/ax25dump.c
index 5265453..4c4a40c 100644
--- a/listen/ax25dump.c
+++ b/listen/ax25dump.c
@@ -1,4 +1,4 @@
-/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/ax25dump.c,v 1.1 2001/04/10 01:58:51 csmall Exp $ */
+/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/ax25dump.c,v 1.2 2001/09/12 13:18:43 terry Exp $ */
/* AX25 header tracing
* Copyright 1991 Phil Karn, KA9Q
@@ -57,7 +57,7 @@
#define Y 4
#define Z 8
-static int ftype(unsigned char *, int *, int *, int *, int *, int);
+static int ftype(unsigned char *, int *, int *, int *, int *, int);
static char *decode_type(int);
#define NDAMA_STRING ""
@@ -90,11 +90,13 @@ void ax25_dump(unsigned char *data, int length, int hexdump)
tmp[4] = ' ' + (data[5] >> 2);
tmp[5] = ' ' + ((data[5] << 4) & 0x30) + (data[6] >> 4);
if (data[6] & 0xf)
- sprintf(tmp+7, "-%d", data[6] & 0xf);
- lprintf(T_ADDR, "%d->%s%s", (data[0] << 6) | ((data[1] >> 2) & 0x3f), strtok(tmp, " "), tmp+7);
+ sprintf(tmp + 7, "-%d", data[6] & 0xf);
+ lprintf(T_ADDR, "%d->%s%s",
+ (data[0] << 6) | ((data[1] >> 2) & 0x3f),
+ strtok(tmp, " "), tmp + 7);
cmdrsp = (data[1] & 2) ? LAPB_COMMAND : LAPB_RESPONSE;
dama = NDAMA_STRING;
- data += 7;
+ data += 7;
length -= 7;
} else {
/* Extract the address header */
@@ -103,124 +105,133 @@ void ax25_dump(unsigned char *data, int length, int hexdump)
lprintf(T_ERROR, "AX25: bad header!\n");
return;
}
-
+
if ((data[AXLEN + ALEN] & SSSID_SPARE) == SSSID_SPARE) {
extseq = 0;
-// lprintf(T_PROTOCOL, " ");
+// lprintf(T_PROTOCOL, " ");
} else {
extseq = 1;
lprintf(T_PROTOCOL, "EAX25: ");
}
-
+
if ((data[AXLEN + ALEN] & ESSID_SPARE) == ESSID_SPARE)
dama = NDAMA_STRING;
else
dama = DAMA_STRING;
-
- lprintf(T_AXHDR, "fm ");
+
+ lprintf(T_AXHDR, "fm ");
lprintf(T_ADDR, "%s", pax25(tmp, data + AXLEN));
lprintf(T_AXHDR, " to ");
lprintf(T_ADDR, "%s", pax25(tmp, data));
-
+
cmdrsp = LAPB_UNKNOWN;
-
+
if ((data[ALEN] & C) && !(data[AXLEN + ALEN] & C))
cmdrsp = LAPB_COMMAND;
-
+
if ((data[AXLEN + ALEN] & C) && !(data[ALEN] & C))
cmdrsp = LAPB_RESPONSE;
end = (data[AXLEN + ALEN] & HDLCAEB);
-
- data += (AXLEN + AXLEN);
+
+ data += (AXLEN + AXLEN);
length -= (AXLEN + AXLEN);
if (!end) {
lprintf(T_AXHDR, " via");
-
+
while (!end) {
/* Print digi string */
- lprintf(T_ADDR," %s%s", pax25(tmp, data), (data[ALEN] & REPEATED) ? "*" : "");
-
+ lprintf(T_ADDR, " %s%s", pax25(tmp, data),
+ (data[ALEN] & REPEATED) ? "*" :
+ "");
+
end = (data[ALEN] & HDLCAEB);
-
- data += AXLEN;
+
+ data += AXLEN;
length -= AXLEN;
}
}
}
- if (length == 0) return;
-
+ if (length == 0)
+ return;
+
ctlen = ftype(data, &type, &ns, &nr, &pf, extseq);
-
- data += ctlen;
+
+ data += ctlen;
length -= ctlen;
lprintf(T_AXHDR, " ctl %s", decode_type(type));
- if ((type & 0x3) != U) /* I or S frame? */
- lprintf(T_AXHDR, "%d", nr);
+ if ((type & 0x3) != U) /* I or S frame? */
+ lprintf(T_AXHDR, "%d", nr);
if (type == I)
- lprintf(T_AXHDR, "%d", ns);
-
+ lprintf(T_AXHDR, "%d", ns);
+
switch (cmdrsp) {
- case LAPB_COMMAND:
- if (pf) lprintf(T_AXHDR, "+");
- else lprintf(T_AXHDR, "^");
- break;
- case LAPB_RESPONSE:
- if (pf) lprintf(T_AXHDR, "-");
- else lprintf(T_AXHDR, "v");
- break;
- default:
- break;
+ case LAPB_COMMAND:
+ if (pf)
+ lprintf(T_AXHDR, "+");
+ else
+ lprintf(T_AXHDR, "^");
+ break;
+ case LAPB_RESPONSE:
+ if (pf)
+ lprintf(T_AXHDR, "-");
+ else
+ lprintf(T_AXHDR, "v");
+ break;
+ default:
+ break;
}
if (type == I || type == UI) {
/* Decode I field */
- if (length > 0) { /* Get pid */
+ if (length > 0) { /* Get pid */
pid = *data++;
length--;
- lprintf(T_AXHDR," pid=%X",pid);
-
- switch (pid) {
- case PID_SEGMENT:
- lprintf(T_AXHDR,"(segment)");
- break;
- case PID_ARP:
- lprintf(T_AXHDR,"(ARP)");
- break;
- case PID_NETROM:
- lprintf(T_AXHDR,"(NET/ROM)");
- break;
- case PID_IP:
- lprintf(T_AXHDR,"(IP)");
- break;
- case PID_X25:
- lprintf(T_AXHDR, "(X.25)");
- break;
- case PID_TEXNET:
- lprintf(T_AXHDR, "(TEXNET)");
- break;
- case PID_FLEXNET:
- lprintf(T_AXHDR, "(FLEXNET)");
- break;
- case PID_NO_L3:
- lprintf(T_AXHDR, "(Text)");
- break;
+ lprintf(T_AXHDR, " pid=%X", pid);
+
+ switch (pid) {
+ case PID_SEGMENT:
+ lprintf(T_AXHDR, "(segment)");
+ break;
+ case PID_ARP:
+ lprintf(T_AXHDR, "(ARP)");
+ break;
+ case PID_NETROM:
+ lprintf(T_AXHDR, "(NET/ROM)");
+ break;
+ case PID_IP:
+ lprintf(T_AXHDR, "(IP)");
+ break;
+ case PID_X25:
+ lprintf(T_AXHDR, "(X.25)");
+ break;
+ case PID_TEXNET:
+ lprintf(T_AXHDR, "(TEXNET)");
+ break;
+ case PID_FLEXNET:
+ lprintf(T_AXHDR, "(FLEXNET)");
+ break;
+ case PID_NO_L3:
+ lprintf(T_AXHDR, "(Text)");
+ break;
}
- lprintf(T_AXHDR, "%s len %d ",dama,length);
+ lprintf(T_AXHDR, "%s len %d ", dama, length);
- if(timestamp)
+ if (timestamp)
display_timestamp();
if (pid == PID_SEGMENT) {
seg = *data++;
length--;
- lprintf(T_AXHDR, "%s remain %u", seg & SEG_FIRST ? " First seg;" : "", seg & SEG_REM);
+ lprintf(T_AXHDR, "%s remain %u",
+ seg & SEG_FIRST ? " First seg;" :
+ "", seg & SEG_REM);
if (seg & SEG_FIRST) {
pid = *data++;
@@ -230,99 +241,99 @@ void ax25_dump(unsigned char *data, int length, int hexdump)
lprintf(T_AXHDR, "\n");
switch (pid) {
- case PID_SEGMENT:
- data_dump(data, length, hexdump);
- break;
- case PID_ARP:
- arp_dump(data, length);
- break;
- case PID_NETROM:
- netrom_dump(data, length, hexdump);
- break;
- case PID_IP:
- ip_dump(data, length, hexdump);
- break;
- case PID_X25:
- rose_dump(data, length, hexdump);
- break;
- case PID_TEXNET:
- data_dump(data, length, hexdump);
- break;
- case PID_FLEXNET:
- flexnet_dump(data, length, hexdump);
- break;
- case PID_NO_L3:
- data_dump(data, length, hexdump);
- break;
- default:
- data_dump(data, length, hexdump);
- break;
+ case PID_SEGMENT:
+ data_dump(data, length, hexdump);
+ break;
+ case PID_ARP:
+ arp_dump(data, length);
+ break;
+ case PID_NETROM:
+ netrom_dump(data, length, hexdump);
+ break;
+ case PID_IP:
+ ip_dump(data, length, hexdump);
+ break;
+ case PID_X25:
+ rose_dump(data, length, hexdump);
+ break;
+ case PID_TEXNET:
+ data_dump(data, length, hexdump);
+ break;
+ case PID_FLEXNET:
+ flexnet_dump(data, length, hexdump);
+ break;
+ case PID_NO_L3:
+ data_dump(data, length, hexdump);
+ break;
+ default:
+ data_dump(data, length, hexdump);
+ break;
}
}
} else if (type == FRMR && length >= 3) {
- /* FIX ME XXX
- lprintf(T_AXHDR, ": %s", decode_type(ftype(data[0])));
- */
+ /* FIX ME XXX
+ lprintf(T_AXHDR, ": %s", decode_type(ftype(data[0])));
+ */
lprintf(T_AXHDR, ": %02X", data[0]);
lprintf(T_AXHDR, " Vr = %d Vs = %d",
- (data[1] >> 5) & MMASK,
- (data[1] >> 1) & MMASK);
- if(data[2] & W)
+ (data[1] >> 5) & MMASK, (data[1] >> 1) & MMASK);
+ if (data[2] & W)
lprintf(T_ERROR, " Invalid control field");
- if(data[2] & X)
+ if (data[2] & X)
lprintf(T_ERROR, " Illegal I-field");
- if(data[2] & Y)
+ if (data[2] & Y)
lprintf(T_ERROR, " Too-long I-field");
- if(data[2] & Z)
+ if (data[2] & Z)
lprintf(T_ERROR, " Invalid seq number");
- lprintf(T_AXHDR,"%s ", dama);
+ lprintf(T_AXHDR, "%s ", dama);
- if(timestamp)
- display_timestamp();
- lprintf(T_AXHDR,"\n");
+ if (timestamp)
+ display_timestamp();
+ lprintf(T_AXHDR, "\n");
} else if ((type == SABM || type == UA) && length >= 2) {
/* FlexNet transmits the QSO "handle" for header
* compression in SABM and UA frame data fields
*/
- lprintf(T_AXHDR," [%d]%s ", (data[0] << 8) | data[1], dama);
- if(timestamp)
+ lprintf(T_AXHDR, " [%d]%s ", (data[0] << 8) | data[1],
+ dama);
+ if (timestamp)
display_timestamp();
- lprintf(T_AXHDR,"\n");
+ lprintf(T_AXHDR, "\n");
} else {
- lprintf(T_AXHDR,"%s ", dama);
- if(timestamp)
- display_timestamp();
- lprintf(T_AXHDR,"\n");
+ lprintf(T_AXHDR, "%s ", dama);
+ if (timestamp)
+ display_timestamp();
+ lprintf(T_AXHDR, "\n");
}
}
static char *decode_type(int type)
{
switch (type) {
- case I:
- return "I";
- case SABM:
- return "SABM";
- case SABME:
- return "SABME";
- case DISC:
- return "DISC";
- case DM:
- return "DM";
- case UA:
- return "UA";
- case RR:
- return "RR";
- case RNR:
- return "RNR";
- case REJ:
- return "REJ";
- case FRMR:
- return "FRMR";
- case UI:
- return "UI";
- default:
- return "[invalid]";
+ case I:
+ return "I";
+ case SABM:
+ return "SABM";
+ case SABME:
+ return "SABME";
+ case DISC:
+ return "DISC";
+ case DM:
+ return "DM";
+ case UA:
+ return "UA";
+ case RR:
+ return "RR";
+ case RNR:
+ return "RNR";
+ case REJ:
+ return "REJ";
+ case FRMR:
+ return "FRMR";
+ case UI:
+ return "UI";
+ default:
+ return "[invalid]";
}
}
@@ -331,9 +342,9 @@ char *pax25(char *buf, unsigned char *data)
int i, ssid;
char *s;
char c;
-
+
s = buf;
-
+
for (i = 0; i < ALEN; i++) {
c = (data[i] >> 1) & 0x7F;
@@ -341,56 +352,58 @@ char *pax25(char *buf, unsigned char *data)
strcpy(buf, "[invalid]");
return buf;
}
-
- if (c != ' ') *s++ = c;
- }
+
+ if (c != ' ')
+ *s++ = c;
+ }
if ((ssid = (data[ALEN] & SSID)) != 0)
sprintf(s, "-%d", ssid >> 1);
else
*s = '\0';
- return(buf);
+ return (buf);
}
-static int ftype(unsigned char *data, int *type, int *ns, int *nr, int *pf, int extseq)
+static int ftype(unsigned char *data, int *type, int *ns, int *nr, int *pf,
+ int extseq)
{
if (extseq) {
if ((*data & 0x01) == 0) { /* An I frame is an I-frame ... */
*type = I;
- *ns = (*data >> 1) & 127;
+ *ns = (*data >> 1) & 127;
data++;
- *nr = (*data >> 1) & 127;
- *pf = *data & EPF;
+ *nr = (*data >> 1) & 127;
+ *pf = *data & EPF;
return 2;
}
if (*data & 0x02) {
*type = *data & ~PF;
- *pf = *data & PF;
+ *pf = *data & PF;
return 1;
} else {
*type = *data;
data++;
- *nr = (*data >> 1) & 127;
- *pf = *data & EPF;
+ *nr = (*data >> 1) & 127;
+ *pf = *data & EPF;
return 2;
}
} else {
if ((*data & 0x01) == 0) { /* An I frame is an I-frame ... */
*type = I;
- *ns = (*data >> 1) & 7;
- *nr = (*data >> 5) & 7;
- *pf = *data & PF;
+ *ns = (*data >> 1) & 7;
+ *nr = (*data >> 5) & 7;
+ *pf = *data & PF;
return 1;
}
- if (*data & 0x02) { /* U-frames use all except P/F bit for type */
+ if (*data & 0x02) { /* U-frames use all except P/F bit for type */
*type = *data & ~PF;
- *pf = *data & PF;
+ *pf = *data & PF;
return 1;
- } else { /* S-frames use low order 4 bits for type */
+ } else { /* S-frames use low order 4 bits for type */
*type = *data & 0x0F;
- *nr = (*data >> 5) & 7;
- *pf = *data & PF;
+ *nr = (*data >> 5) & 7;
+ *pf = *data & PF;
return 1;
}
}
diff --git a/listen/flexnetdump.c b/listen/flexnetdump.c
index 3269390..a96f00f 100644
--- a/listen/flexnetdump.c
+++ b/listen/flexnetdump.c
@@ -12,19 +12,19 @@
* some bits stolen from Dieter Deyke (Wampes), such as these defines :-)
*/
-#define FLEX_INIT '0' /* Link initialization */
-#define FLEX_RPRT '1' /* Poll answer */
-#define FLEX_POLL '2' /* Poll */
-#define FLEX_ROUT '3' /* Routing information */
-#define FLEX_QURY '6' /* Path query */
-#define FLEX_RSLT '7' /* Query result */
+#define FLEX_INIT '0' /* Link initialization */
+#define FLEX_RPRT '1' /* Poll answer */
+#define FLEX_POLL '2' /* Poll */
+#define FLEX_ROUT '3' /* Routing information */
+#define FLEX_QURY '6' /* Path query */
+#define FLEX_RSLT '7' /* Query result */
static int flx_get_number(unsigned char **data, int *length)
{
int l = *length;
unsigned char *d = *data;
int res = 0;
-
+
if (l <= 0 || *d < '0' || *d > '9')
return -1;
while (l > 0 && *d >= '0' && *d <= '9') {
@@ -51,26 +51,27 @@ void flexnet_dump(unsigned char *data, int length, int hexdump)
int hopcnt, qsonr;
unsigned char *cp;
- lprintf(T_PROTOCOL, "FlexNet:");
+ lprintf(T_PROTOCOL, "FlexNet:");
if (length < 1) {
- lprintf(T_ERROR, " bad packet\n");
- return;
- }
+ lprintf(T_ERROR, " bad packet\n");
+ return;
+ }
switch (data[0]) {
default:
- lprintf(T_ERROR, " unknown packet type\n");
+ lprintf(T_ERROR, " unknown packet type\n");
data_dump(data, length, hexdump);
return;
case FLEX_INIT:
if (length < 2) {
lprintf(T_ERROR, " bad packet\n");
- dump_end(data+1, length-1);
+ dump_end(data + 1, length - 1);
return;
}
- lprintf(T_FLEXNET, " Link setup - max SSID %d ", data[1] & 0xf);
- dump_end(data+1, length-1);
+ lprintf(T_FLEXNET, " Link setup - max SSID %d ",
+ data[1] & 0xf);
+ dump_end(data + 1, length - 1);
return;
case FLEX_RPRT:
@@ -98,29 +99,35 @@ void flexnet_dump(unsigned char *data, int length, int hexdump)
if (isdigit(*data) || isupper(*data)) {
if (length < 10)
goto too_short;
- lprintf(T_FLEXNET, " %.6s %2d-%2d ", data, data[6]-'0', data[7]-'0');
+ lprintf(T_FLEXNET, " %.6s %2d-%2d ", data,
+ data[6] - '0', data[7] - '0');
data += 8;
length -= 8;
i = flx_get_number(&data, &length);
data++;
length--;
- if (!i)
+ if (!i)
lprintf(T_FLEXNET, "link down\n");
- else
- lprintf(T_FLEXNET, "delay: %d\n", i);
+ else
+ lprintf(T_FLEXNET, "delay: %d\n",
+ i);
} else {
- if (*data == '+')
- lprintf(T_FLEXNET, " Request token\n");
+ if (*data == '+')
+ lprintf(T_FLEXNET,
+ " Request token\n");
else if (*data == '-')
- lprintf(T_FLEXNET, " Release token\n");
+ lprintf(T_FLEXNET,
+ " Release token\n");
else if (*data != '\r')
- lprintf(T_FLEXNET, " invalid char: %02x\n", *data);
+ lprintf(T_FLEXNET,
+ " invalid char: %02x\n",
+ *data);
data++;
length--;
}
}
return;
-
+
case FLEX_QURY:
case FLEX_RSLT:
lprintf(T_FLEXNET, " Route query");
@@ -134,7 +141,8 @@ void flexnet_dump(unsigned char *data, int length, int hexdump)
qsonr = flx_get_number(&data, &length);
data++;
length--;
- lprintf(T_FLEXNET, " - hop count: %d QSO number: %d\n", hopcnt, qsonr);
+ lprintf(T_FLEXNET, " - hop count: %d QSO number: %d\n",
+ hopcnt, qsonr);
cp = memchr(data, '\r', length);
if (cp)
*cp = 0;
@@ -142,8 +150,7 @@ void flexnet_dump(unsigned char *data, int length, int hexdump)
return;
}
-too_short:
+ too_short:
lprintf(T_ERROR, " packet too short\n");
dump_end(data, length);
}
-
diff --git a/listen/icmpdump.c b/listen/icmpdump.c
index 2b51e7f..dcec1b0 100644
--- a/listen/icmpdump.c
+++ b/listen/icmpdump.c
@@ -1,4 +1,4 @@
-/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/icmpdump.c,v 1.1 2001/04/10 01:58:52 csmall Exp $ */
+/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/icmpdump.c,v 1.2 2001/09/12 13:18:44 terry Exp $ */
/* ICMP header tracing
* Copyright 1991 Phil Karn, KA9Q
@@ -29,14 +29,14 @@ void icmp_dump(unsigned char *data, int length, int hexdump)
unsigned char *address;
int id, seq;
- type = data[0];
- code = data[1];
+ type = data[0];
+ code = data[1];
pointer = data[4];
address = data + 4;
- id = get16(data + 4);
- seq = get16(data + 6);
+ id = get16(data + 4);
+ seq = get16(data + 6);
- data += ICMPLEN;
+ data += ICMPLEN;
length -= ICMPLEN;
lprintf(T_IPHDR, "ICMP: type ");
@@ -119,8 +119,7 @@ void icmp_dump(unsigned char *data, int length, int hexdump)
break;
}
lprintf(T_IPHDR, " new gateway %d.%d.%d.%d",
- address[0], address[1],
- address[2], address[3]);
+ address[0], address[1], address[2], address[3]);
lprintf(T_IPHDR, "\nReturned ");
ip_dump(data, length, hexdump);
break;
@@ -168,22 +167,26 @@ void icmp_dump(unsigned char *data, int length, int hexdump)
break;
case ICMP_INFO_RQST:
- lprintf(T_IPHDR, "Information Request id %d seq %d\n", id, seq);
+ lprintf(T_IPHDR, "Information Request id %d seq %d\n", id,
+ seq);
data_dump(data, length, hexdump);
break;
case ICMP_INFO_REPLY:
- lprintf(T_IPHDR, "Information Reply id %d seq %d\n", id, seq);
+ lprintf(T_IPHDR, "Information Reply id %d seq %d\n", id,
+ seq);
data_dump(data, length, hexdump);
break;
case ICMP_TIMESTAMP:
- lprintf(T_IPHDR, "Timestamp Request id %d seq %d\n", id, seq);
+ lprintf(T_IPHDR, "Timestamp Request id %d seq %d\n", id,
+ seq);
data_dump(data, length, hexdump);
break;
case ICMP_TIME_REPLY:
- lprintf(T_IPHDR, "Timestamp Reply id %d seq %d\n", id, seq);
+ lprintf(T_IPHDR, "Timestamp Reply id %d seq %d\n", id,
+ seq);
data_dump(data, length, hexdump);
break;
@@ -193,4 +196,3 @@ void icmp_dump(unsigned char *data, int length, int hexdump)
break;
}
}
-
diff --git a/listen/ipdump.c b/listen/ipdump.c
index fc14461..8dfc433 100644
--- a/listen/ipdump.c
+++ b/listen/ipdump.c
@@ -1,4 +1,4 @@
-/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/ipdump.c,v 1.1 2001/04/10 01:58:52 csmall Exp $ */
+/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/ipdump.c,v 1.2 2001/09/12 13:18:44 terry Exp $ */
/* IP header tracing routines
* Copyright 1991 Phil Karn, KA9Q
@@ -12,8 +12,8 @@
#define DF 0x4000
#define CE 0x8000
-#define IPIPNEW_PTCL 4
-#define IPIPOLD_PTCL 94
+#define IPIPNEW_PTCL 4
+#define IPIPOLD_PTCL 94
#define TCP_PTCL 6
#define UDP_PTCL 17
#define ICMP_PTCL 1
@@ -37,42 +37,45 @@ void ip_dump(unsigned char *data, int length, int hexdump)
/* Sneak peek at IP header and find length */
hdr_length = (data[0] & 0xf) << 2;
-
- if (hdr_length < IPLEN)
- {
+
+ if (hdr_length < IPLEN) {
lprintf(T_ERROR, " bad header\n");
return;
}
- tos = data[1];
+ tos = data[1];
ip_length = get16(data + 2);
- id = get16(data + 4);
- fl_offs = get16(data + 6);
- flags = fl_offs & 0xE000;
- offset = (fl_offs & 0x1FFF) << 3;
- ttl = data[8];
- protocol = data[9];
- source = data + 12;
- dest = data + 16;
+ id = get16(data + 4);
+ fl_offs = get16(data + 6);
+ flags = fl_offs & 0xE000;
+ offset = (fl_offs & 0x1FFF) << 3;
+ ttl = data[8];
+ protocol = data[9];
+ source = data + 12;
+ dest = data + 16;
lprintf(T_IPHDR, " len %d", ip_length);
-
+
lprintf(T_ADDR, " %d.%d.%d.%d->%d.%d.%d.%d",
- source[0], source[1], source[2], source[3],
- dest[0], dest[1], dest[2], dest[3]);
-
+ source[0], source[1], source[2], source[3],
+ dest[0], dest[1], dest[2], dest[3]);
+
lprintf(T_IPHDR, " ihl %d ttl %d", hdr_length, ttl);
-
- if (tos != 0) lprintf(T_IPHDR, " tos %d", tos);
-
+
+ if (tos != 0)
+ lprintf(T_IPHDR, " tos %d", tos);
+
if (offset != 0 || (flags & MF))
lprintf(T_IPHDR, " id %d offs %d", id, offset);
-
- if (flags & DF) lprintf(T_IPHDR, " DF");
- if (flags & MF) lprintf(T_IPHDR, " MF");
- if (flags & CE) lprintf(T_IPHDR, " CE");
-
- data += hdr_length;
+
+ if (flags & DF)
+ lprintf(T_IPHDR, " DF");
+ if (flags & MF)
+ lprintf(T_IPHDR, " MF");
+ if (flags & CE)
+ lprintf(T_IPHDR, " CE");
+
+ data += hdr_length;
length -= hdr_length;
if (offset != 0) {
diff --git a/listen/kissdump.c b/listen/kissdump.c
index 0066f63..14c7909 100644
--- a/listen/kissdump.c
+++ b/listen/kissdump.c
@@ -1,4 +1,4 @@
-/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/kissdump.c,v 1.1 2001/04/10 01:58:53 csmall Exp $ */
+/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/kissdump.c,v 1.2 2001/09/12 13:18:44 terry Exp $ */
/* Tracing routines for KISS TNC
* Copyright 1991 Phil Karn, KA9Q
@@ -13,7 +13,7 @@
#define PARAM_TXTAIL 4
#define PARAM_FULLDUP 5
#define PARAM_HW 6
-#define PARAM_RETURN 15 /* Should be 255, but is ANDed with 0x0F */
+#define PARAM_RETURN 15 /* Should be 255, but is ANDed with 0x0F */
void ki_dump(unsigned char *data, int length, int hexdump)
{
@@ -22,16 +22,14 @@ void ki_dump(unsigned char *data, int length, int hexdump)
type = data[0] & 0xf;
- if (type == PARAM_DATA)
- {
+ if (type == PARAM_DATA) {
ax25_dump(data + 1, length - 1, hexdump);
return;
}
-
+
val = data[1];
-
- switch (type)
- {
+
+ switch (type) {
case PARAM_TXDELAY:
lprintf(T_KISS, "TX Delay: %lu ms\n", val * 10L);
break;
@@ -45,7 +43,8 @@ void ki_dump(unsigned char *data, int length, int hexdump)
lprintf(T_KISS, "TX Tail time: %lu ms\n", val * 10L);
break;
case PARAM_FULLDUP:
- lprintf(T_KISS, "Duplex: %s\n", val == 0 ? "Half" : "Full");
+ lprintf(T_KISS, "Duplex: %s\n",
+ val == 0 ? "Half" : "Full");
break;
case PARAM_HW:
lprintf(T_KISS, "Hardware %u\n", val);
diff --git a/listen/listen.c b/listen/listen.c
index f603f12..be6dfbe 100644
--- a/listen/listen.c
+++ b/listen/listen.c
@@ -42,12 +42,13 @@ static void display_port(char *dev)
void display_timestamp(void)
{
time_t timenowx;
- struct tm* timenow;
+ struct tm *timenow;
time(&timenowx);
timenow = localtime(&timenowx);
- lprintf(T_TIMESTAMP, "%02d:%02d:%02d", timenow->tm_hour, timenow->tm_min, timenow->tm_sec);
+ lprintf(T_TIMESTAMP, "%02d:%02d:%02d", timenow->tm_hour,
+ timenow->tm_min, timenow->tm_sec);
}
#define ASCII 0
@@ -59,7 +60,7 @@ void display_timestamp(void)
int main(int argc, char **argv)
{
unsigned char buffer[BUFSIZE];
- int dumpstyle = ASCII;
+ int dumpstyle = ASCII;
int size;
int s;
char *port = NULL, *dev = NULL;
@@ -68,43 +69,45 @@ int main(int argc, char **argv)
struct ifreq ifr;
int proto = ETH_P_AX25;
- timestamp = 0;
+ timestamp = 0;
while ((s = getopt(argc, argv, "8achip:rtv")) != -1) {
switch (s) {
- case '8':
- sevenbit = 0;
- break;
- case 'a':
- proto = ETH_P_ALL;
- break;
- case 'c':
- color = 1;
- break;
- case 'h':
- dumpstyle = HEX;
- break;
- case 'i':
- ibmhack = 1;
- break;
- case 'p':
- port = optarg;
- break;
- case 'r':
- dumpstyle = READABLE;
- break;
- case 't':
- timestamp = 1;
- break;
- case 'v':
- printf("listen: %s\n", VERSION);
- return 0;
- case ':':
- fprintf(stderr, "listen: option -p needs a port name\n");
- return 1;
- case '?':
- fprintf(stderr, "Usage: listen [-8] [-a] [-c] [-h] [-i] [-p port] [-r] [-t] [-v]\n");
- return 1;
+ case '8':
+ sevenbit = 0;
+ break;
+ case 'a':
+ proto = ETH_P_ALL;
+ break;
+ case 'c':
+ color = 1;
+ break;
+ case 'h':
+ dumpstyle = HEX;
+ break;
+ case 'i':
+ ibmhack = 1;
+ break;
+ case 'p':
+ port = optarg;
+ break;
+ case 'r':
+ dumpstyle = READABLE;
+ break;
+ case 't':
+ timestamp = 1;
+ break;
+ case 'v':
+ printf("listen: %s\n", VERSION);
+ return 0;
+ case ':':
+ fprintf(stderr,
+ "listen: option -p needs a port name\n");
+ return 1;
+ case '?':
+ fprintf(stderr,
+ "Usage: listen [-8] [-a] [-c] [-h] [-i] [-p port] [-r] [-t] [-v]\n");
+ return 1;
}
}
@@ -113,7 +116,8 @@ int main(int argc, char **argv)
if (port != NULL) {
if ((dev = ax25_config_get_dev(port)) == NULL) {
- fprintf(stderr, "listen: invalid port name - %s\n", port);
+ fprintf(stderr, "listen: invalid port name - %s\n",
+ port);
return 1;
}
}
@@ -122,7 +126,7 @@ int main(int argc, char **argv)
perror("socket");
return 1;
}
-
+
if (color) {
color = initcolor(); /* Initialize color support */
if (!color)
@@ -130,18 +134,20 @@ int main(int argc, char **argv)
}
setservent(1);
-
+
for (;;) {
asize = sizeof(sa);
- if ((size = recvfrom(s, buffer, sizeof(buffer), 0, &sa, &asize)) == -1) {
+ if ((size =
+ recvfrom(s, buffer, sizeof(buffer), 0, &sa,
+ &asize)) == -1) {
perror("recv");
return 1;
}
-
+
if (dev != NULL && strcmp(dev, sa.sa_data) != 0)
continue;
-
+
if (proto == ETH_P_ALL) {
strcpy(ifr.ifr_name, sa.sa_data);
if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0)
@@ -154,16 +160,16 @@ int main(int argc, char **argv)
#else
ki_dump(buffer, size, dumpstyle);
#endif
-// lprintf(T_DATA, "\n");
+// lprintf(T_DATA, "\n");
}
} else {
display_port(sa.sa_data);
#ifdef NEW_AX25_STACK
ax25_dump(buffer, size, dumpstyle);
#else
- ki_dump(buffer, size, dumpstyle);
+ ki_dump(buffer, size, dumpstyle);
#endif
-// lprintf(T_DATA, "\n");
+// lprintf(T_DATA, "\n");
}
if (color)
refresh();
@@ -173,22 +179,22 @@ int main(int argc, char **argv)
static void ascii_dump(unsigned char *data, int length)
{
unsigned char c;
- int i, j;
+ int i, j;
char buf[100];
for (i = 0; length > 0; i += 64) {
sprintf(buf, "%04X ", i);
-
+
for (j = 0; j < 64 && length > 0; j++) {
c = *data++;
length--;
-
+
if ((c != '\0') && (c != '\n'))
strncat(buf, &c, 1);
else
strcat(buf, ".");
}
-
+
lprintf(T_DATA, "%s\n", buf);
}
}
@@ -196,27 +202,27 @@ static void ascii_dump(unsigned char *data, int length)
static void readable_dump(unsigned char *data, int length)
{
unsigned char c;
- int i;
- int cr = 1;
+ int i;
+ int cr = 1;
char buf[BUFSIZE];
for (i = 0; length > 0; i++) {
-
+
c = *data++;
length--;
-
+
switch (c) {
- case 0x00:
- buf[i] = ' ';
- case 0x0A: /* hum... */
- case 0x0D:
- if (cr)
- buf[i] = '\n';
- else
- i--;
- break;
- default:
- buf[i] = c;
+ case 0x00:
+ buf[i] = ' ';
+ case 0x0A: /* hum... */
+ case 0x0D:
+ if (cr)
+ buf[i] = '\n';
+ else
+ i--;
+ break;
+ default:
+ buf[i] = c;
}
cr = (buf[i] != '\n');
}
@@ -228,22 +234,22 @@ static void readable_dump(unsigned char *data, int length)
static void hex_dump(unsigned char *data, int length)
{
- int i, j, length2;
+ int i, j, length2;
unsigned char c;
char *data2;
char buf[4], hexd[49], ascd[17];
length2 = length;
- data2 = data;
-
+ data2 = data;
+
for (i = 0; length > 0; i += 16) {
-
+
hexd[0] = '\0';
for (j = 0; j < 16; j++) {
c = *data2++;
length2--;
-
+
if (length2 >= 0)
sprintf(buf, "%2.2X ", c);
else
@@ -253,13 +259,14 @@ static void hex_dump(unsigned char *data, int length)
ascd[0] = '\0';
for (j = 0; j < 16 && length > 0; j++) {
- c = *data++;
- length--;
-
- sprintf(buf, "%c", ((c != '\0') && (c != '\n')) ? c : '.');
- strcat(ascd, buf);
+ c = *data++;
+ length--;
+
+ sprintf(buf, "%c",
+ ((c != '\0') && (c != '\n')) ? c : '.');
+ strcat(ascd, buf);
}
-
+
lprintf(T_DATA, "%04X %s | %s\n", i, hexd, ascd);
}
}
@@ -282,18 +289,18 @@ void data_dump(unsigned char *data, int length, int dumpstyle)
int get16(unsigned char *cp)
{
int x;
-
+
x = *cp++;
x <<= 8;
x |= *cp++;
-
- return(x);
+
+ return (x);
}
int get32(unsigned char *cp)
{
int x;
-
+
x = *cp++;
x <<= 8;
x |= *cp++;
@@ -301,6 +308,6 @@ int get32(unsigned char *cp)
x |= *cp++;
x <<= 8;
x |= *cp;
-
- return(x);
+
+ return (x);
}
diff --git a/listen/nrdump.c b/listen/nrdump.c
index a5a2bfc..42965e5 100644
--- a/listen/nrdump.c
+++ b/listen/nrdump.c
@@ -1,4 +1,4 @@
-/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/nrdump.c,v 1.1 2001/04/10 01:58:54 csmall Exp $ */
+/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/nrdump.c,v 1.2 2001/09/12 13:18:44 terry Exp $ */
/* NET/ROM header tracing routines
* Copyright 1991 Phil Karn, KA9Q
@@ -41,23 +41,26 @@ void netrom_dump(unsigned char *data, int length, int hexdump)
memcpy(tmp, data + 1, ALEN);
tmp[ALEN] = '\0';
lprintf(T_AXHDR, "NET/ROM Routing: %s\n", tmp);
-
- data += (ALEN + 1);
+
+ data += (ALEN + 1);
length -= (ALEN + 1);
- for(i = 0;i < NRDESTPERPACK;i++) {
- if (length < AXLEN) break;
-
- lprintf(T_DATA," %12s", pax25(tmp, data));
+ for (i = 0; i < NRDESTPERPACK; i++) {
+ if (length < AXLEN)
+ break;
+
+ lprintf(T_DATA, " %12s", pax25(tmp, data));
memcpy(tmp, data + AXLEN, ALEN);
tmp[ALEN] = '\0';
lprintf(T_DATA, "%8s", tmp);
- lprintf(T_DATA, " %12s", pax25(tmp, data + AXLEN + ALEN));
- lprintf(T_DATA, " %3u\n", data[AXLEN + ALEN + AXLEN]);
+ lprintf(T_DATA, " %12s",
+ pax25(tmp, data + AXLEN + ALEN));
+ lprintf(T_DATA, " %3u\n",
+ data[AXLEN + ALEN + AXLEN]);
- data += (AXLEN + ALEN + AXLEN + 1);
+ data += (AXLEN + ALEN + AXLEN + 1);
length -= (AXLEN + ALEN + AXLEN + 1);
}
@@ -76,63 +79,73 @@ void netrom_dump(unsigned char *data, int length, int hexdump)
lprintf(T_AXHDR, "NET/ROM: ");
lprintf(T_ADDR, "%s->", pax25(tmp, data));
lprintf(T_ADDR, "%s", pax25(tmp, data + AXLEN));
- lprintf(T_AXHDR," ttl %d\n", data[AXLEN + AXLEN]);
+ lprintf(T_AXHDR, " ttl %d\n", data[AXLEN + AXLEN]);
- data += (AXLEN + AXLEN + 1);
+ data += (AXLEN + AXLEN + 1);
length -= (AXLEN + AXLEN + 1);
switch (data[4] & NR4OPCODE) {
- case NR4OPPID: /* network PID extension */
+ case NR4OPPID: /* network PID extension */
if (data[0] == NRPROTO_IP && data[1] == NRPROTO_IP) {
ip_dump(data + 5, length - 5, hexdump);
return;
} else {
- lprintf(T_AXHDR, " protocol family %x, proto %x",
- data[0], data[1]);
+ lprintf(T_AXHDR,
+ " protocol family %x, proto %x",
+ data[0], data[1]);
}
break;
- case NR4OPCONRQ: /* Connect request */
- lprintf(T_AXHDR, " conn rqst: my ckt %02X/%02X", data[0], data[1]);
+ case NR4OPCONRQ: /* Connect request */
+ lprintf(T_AXHDR, " conn rqst: my ckt %02X/%02X",
+ data[0], data[1]);
lprintf(T_AXHDR, " wnd %d", data[5]);
lprintf(T_ADDR, " %s", pax25(tmp, data + 6));
lprintf(T_ADDR, "@%s", pax25(tmp, data + 6 + AXLEN));
- data += AXLEN + AXLEN + 6;
+ data += AXLEN + AXLEN + 6;
length -= AXLEN + AXLEN + 6;
if (length > 0)
- lprintf(T_AXHDR, " timeout %d", data[1] * 256 + data[0]);
+ lprintf(T_AXHDR, " timeout %d",
+ data[1] * 256 + data[0]);
lprintf(T_AXHDR, "\n");
break;
- case NR4OPCONAK: /* Connect acknowledgement */
- lprintf(T_AXHDR," conn ack: ur ckt %02X/%02X my ckt %02X/%02X", data[0], data[1], data[2], data[3]);
+ case NR4OPCONAK: /* Connect acknowledgement */
+ lprintf(T_AXHDR,
+ " conn ack: ur ckt %02X/%02X my ckt %02X/%02X",
+ data[0], data[1], data[2], data[3]);
lprintf(T_AXHDR, " wnd %d", data[5]);
netrom_flags(data[4]);
break;
- case NR4OPDISRQ: /* Disconnect request */
- lprintf(T_AXHDR, " disc: ur ckt %02X/%02X\n", data[0], data[1]);
+ case NR4OPDISRQ: /* Disconnect request */
+ lprintf(T_AXHDR, " disc: ur ckt %02X/%02X\n",
+ data[0], data[1]);
break;
- case NR4OPDISAK: /* Disconnect acknowledgement */
- lprintf(T_AXHDR, " disc ack: ur ckt %02X/%02X\n", data[0], data[1]);
+ case NR4OPDISAK: /* Disconnect acknowledgement */
+ lprintf(T_AXHDR, " disc ack: ur ckt %02X/%02X\n",
+ data[0], data[1]);
break;
- case NR4OPINFO: /* Information (data) */
- lprintf(T_AXHDR, " info: ur ckt %02X/%02X", data[0], data[1]);
+ case NR4OPINFO: /* Information (data) */
+ lprintf(T_AXHDR, " info: ur ckt %02X/%02X",
+ data[0], data[1]);
lprintf(T_AXHDR, " txseq %d rxseq %d", data[2], data[3]);
netrom_flags(data[4]);
data_dump(data + 5, length - 5, hexdump);
break;
- case NR4OPACK: /* Information acknowledgement */
- lprintf(T_AXHDR, " info ack: ur ckt %02X/%02X", data[0], data[1]);
+ case NR4OPACK: /* Information acknowledgement */
+ lprintf(T_AXHDR, " info ack: ur ckt %02X/%02X",
+ data[0], data[1]);
lprintf(T_AXHDR, " rxseq %d", data[3]);
netrom_flags(data[4]);
break;
default:
- lprintf(T_AXHDR, " unknown transport type %d\n", data[4] & 0x0f) ;
+ lprintf(T_AXHDR, " unknown transport type %d\n",
+ data[4] & 0x0f);
break;
}
}
@@ -141,15 +154,13 @@ void netrom_dump(unsigned char *data, int length, int hexdump)
static void netrom_flags(int flags)
{
if (flags & NR4CHOKE)
- lprintf(T_AXHDR," CHOKE");
+ lprintf(T_AXHDR, " CHOKE");
if (flags & NR4NAK)
- lprintf(T_AXHDR," NAK");
+ lprintf(T_AXHDR, " NAK");
if (flags & NR4MORE)
- lprintf(T_AXHDR," MORE");
+ lprintf(T_AXHDR, " MORE");
lprintf(T_AXHDR, "\n");
}
-
-
diff --git a/listen/ripdump.c b/listen/ripdump.c
index 9f3a799..8a3f966 100644
--- a/listen/ripdump.c
+++ b/listen/ripdump.c
@@ -23,59 +23,56 @@
#define RIP_HEADER 4
#define RIP_ENTRY 20
-#define RIP_AF_INET 2 /* IP Family */
+#define RIP_AF_INET 2 /* IP Family */
-#define RIPCMD_REQUEST 1 /* want info */
-#define RIPCMD_RESPONSE 2 /* responding to request */
+#define RIPCMD_REQUEST 1 /* want info */
+#define RIPCMD_RESPONSE 2 /* responding to request */
#define RIP98_ENTRY 6
-static struct mask_struct
-{
+static struct mask_struct {
unsigned int mask;
unsigned int width;
-}
-mask_table[] =
-{
- {0xFFFFFFFF, 32},
- {0xFFFFFFFE, 31},
- {0xFFFFFFFC, 30},
- {0xFFFFFFF8, 29},
- {0xFFFFFFF0, 28},
- {0xFFFFFFE0, 27},
- {0xFFFFFFC0, 26},
- {0xFFFFFF80, 25},
- {0xFFFFFF00, 24},
- {0xFFFFFE00, 23},
- {0xFFFFFC00, 22},
- {0xFFFFF800, 21},
- {0xFFFFF000, 20},
- {0xFFFFE000, 19},
- {0xFFFFC000, 18},
- {0xFFFF8000, 17},
- {0xFFFF0000, 16},
- {0xFFFE0000, 15},
- {0xFFFC0000, 14},
- {0xFFF80000, 13},
- {0xFFF00000, 12},
- {0xFFE00000, 11},
- {0xFFC00000, 10},
- {0xFF800000, 9},
- {0xFF000000, 8},
- {0xFE000000, 7},
- {0xFC000000, 6},
- {0xF8000000, 5},
- {0xF0000000, 4},
- {0xE0000000, 3},
- {0xC0000000, 2},
- {0x80000000, 1},
- {0x00000000, 0},
-};
+} mask_table[] = {
+ {
+ 0xFFFFFFFF, 32}, {
+ 0xFFFFFFFE, 31}, {
+ 0xFFFFFFFC, 30}, {
+ 0xFFFFFFF8, 29}, {
+ 0xFFFFFFF0, 28}, {
+ 0xFFFFFFE0, 27}, {
+ 0xFFFFFFC0, 26}, {
+ 0xFFFFFF80, 25}, {
+ 0xFFFFFF00, 24}, {
+ 0xFFFFFE00, 23}, {
+ 0xFFFFFC00, 22}, {
+ 0xFFFFF800, 21}, {
+ 0xFFFFF000, 20}, {
+ 0xFFFFE000, 19}, {
+ 0xFFFFC000, 18}, {
+ 0xFFFF8000, 17}, {
+ 0xFFFF0000, 16}, {
+ 0xFFFE0000, 15}, {
+ 0xFFFC0000, 14}, {
+ 0xFFF80000, 13}, {
+ 0xFFF00000, 12}, {
+ 0xFFE00000, 11}, {
+ 0xFFC00000, 10}, {
+ 0xFF800000, 9}, {
+ 0xFF000000, 8}, {
+ 0xFE000000, 7}, {
+ 0xFC000000, 6}, {
+ 0xF8000000, 5}, {
+ 0xF0000000, 4}, {
+ 0xE0000000, 3}, {
+ 0xC0000000, 2}, {
+ 0x80000000, 1}, {
+0x00000000, 0},};
static unsigned int mask2width(unsigned int mask)
{
struct mask_struct *t;
-
+
for (t = mask_table; t->mask != 0; t++)
if (mask == t->mask)
return t->width;
@@ -90,85 +87,87 @@ void rip_dump(unsigned char *data, int length)
int version;
int domain;
char ipaddmask[25];
-
+
lprintf(T_PROTOCOL, "RIP: ");
- cmd = data[0];
+ cmd = data[0];
version = data[1];
- domain = get16(data + 2);
+ domain = get16(data + 2);
length -= RIP_HEADER;
- data += RIP_HEADER;
+ data += RIP_HEADER;
- switch (cmd)
- {
- case RIPCMD_REQUEST:
- lprintf(T_IPHDR, "REQUEST");
- break;
+ switch (cmd) {
+ case RIPCMD_REQUEST:
+ lprintf(T_IPHDR, "REQUEST");
+ break;
- case RIPCMD_RESPONSE:
- lprintf(T_IPHDR, "RESPONSE");
- break;
+ case RIPCMD_RESPONSE:
+ lprintf(T_IPHDR, "RESPONSE");
+ break;
- default:
- lprintf(T_IPHDR, " cmd %u", cmd);
- break;
+ default:
+ lprintf(T_IPHDR, " cmd %u", cmd);
+ break;
}
-
- switch (version)
- {
- case RIP_VERSION_98: /* IPGATE **/
- lprintf(T_IPHDR, " vers %u entries %u\n", version, length / RIP98_ENTRY);
-
- i = 0;
- while (length >= RIP98_ENTRY)
- {
- sprintf(ipaddmask, "%u.%u.%u.%u/%-2u", data[0], data[1], data[2], data[3], data[4]);
- lprintf(T_ADDR, "%-16s %-3u ", ipaddmask, data[5]);
-
- if ((++i % 3) == 0) lprintf(T_IPHDR, "\n");
-
- length -= RIP98_ENTRY;
- data += RIP98_ENTRY;
- }
- if ((i % 3) != 0) lprintf(T_IPHDR, "\n");
- break;
-
- default:
- lprintf(T_IPHDR, " vers %u entries %u domain %u:\n", version, length / RIP_ENTRY, domain);
-
- i = 0;
- while (length >= RIP_ENTRY)
- {
- if (get16(data + 0) != RIP_AF_INET)
- {
- /* Skip non-IP addresses */
- length -= RIP_ENTRY;
- data += RIP_ENTRY;
- continue;
- }
-
- if (version >= RIP_VERSION_2)
- {
- sprintf(ipaddmask, "%u.%u.%u.%u/%-4d", data[4], data[5], data[6], data[7],
- mask2width(get32(data + 8)));
- }
- else
- {
- sprintf(ipaddmask, "%u.%u.%u.%u/??", data[4], data[5], data[6], data[7]);
- }
-
- lprintf(T_ADDR, "%-20s%-3u", ipaddmask, get32(data + 16));
-
- if ((++i % 3) == 0) lprintf(T_IPHDR, "\n");
+ switch (version) {
+ case RIP_VERSION_98: /* IPGATE * */
+ lprintf(T_IPHDR, " vers %u entries %u\n", version,
+ length / RIP98_ENTRY);
+
+ i = 0;
+ while (length >= RIP98_ENTRY) {
+ sprintf(ipaddmask, "%u.%u.%u.%u/%-2u", data[0],
+ data[1], data[2], data[3], data[4]);
+ lprintf(T_ADDR, "%-16s %-3u ", ipaddmask, data[5]);
+ if ((++i % 3) == 0)
+ lprintf(T_IPHDR, "\n");
+
+ length -= RIP98_ENTRY;
+ data += RIP98_ENTRY;
+ }
+
+ if ((i % 3) != 0)
+ lprintf(T_IPHDR, "\n");
+ break;
+
+ default:
+ lprintf(T_IPHDR, " vers %u entries %u domain %u:\n",
+ version, length / RIP_ENTRY, domain);
+
+ i = 0;
+ while (length >= RIP_ENTRY) {
+ if (get16(data + 0) != RIP_AF_INET) {
+ /* Skip non-IP addresses */
length -= RIP_ENTRY;
- data += RIP_ENTRY;
+ data += RIP_ENTRY;
+ continue;
+ }
+
+ if (version >= RIP_VERSION_2) {
+ sprintf(ipaddmask, "%u.%u.%u.%u/%-4d",
+ data[4], data[5], data[6], data[7],
+ mask2width(get32(data + 8)));
+ } else {
+ sprintf(ipaddmask, "%u.%u.%u.%u/??",
+ data[4], data[5], data[6],
+ data[7]);
}
- if ((i % 3) != 0) lprintf(T_IPHDR, "\n");
- break;
+ lprintf(T_ADDR, "%-20s%-3u", ipaddmask,
+ get32(data + 16));
+
+ if ((++i % 3) == 0)
+ lprintf(T_IPHDR, "\n");
+
+ length -= RIP_ENTRY;
+ data += RIP_ENTRY;
+ }
+
+ if ((i % 3) != 0)
+ lprintf(T_IPHDR, "\n");
+ break;
}
}
-
diff --git a/listen/rosedump.c b/listen/rosedump.c
index c4d26b0..7665313 100644
--- a/listen/rosedump.c
+++ b/listen/rosedump.c
@@ -56,7 +56,7 @@ void rose_dump(unsigned char *data, int length, int hexdump)
unsigned char *source = NULL;
unsigned char *dest = NULL;
unsigned int len, hlen;
- unsigned int lci = ((unsigned)(data[0] & 0x0F) << 8) + data[1];
+ unsigned int lci = ((unsigned) (data[0] & 0x0F) << 8) + data[1];
lprintf(T_ROSEHDR, "X.25: LCI %3.3X : ", lci);
switch (data[2]) {
@@ -64,26 +64,22 @@ void rose_dump(unsigned char *data, int length, int hexdump)
len = 4;
hlen = (((data[3] >> 4) & 0x0F) + 1) / 2;
hlen += (((data[3] >> 0) & 0x0F) + 1) / 2;
- if (hlen == 10)
- {
- dest = data+4;
- source = data+9;
+ if (hlen == 10) {
+ dest = data + 4;
+ source = data + 9;
}
- len += hlen;
- data += len;
+ len += hlen;
+ data += len;
length -= len;
lprintf(T_ROSEHDR, "CALL REQUEST - ");
- if (length)
- {
- unsigned int flen = data[0]+1;
+ if (length) {
+ unsigned int flen = data[0] + 1;
facility(data, length);
length -= flen;
data += flen;
if (length > 0)
data_dump(data, length, 1);
- }
- else
- {
+ } else {
lprintf(T_ROSEHDR, "\n");
}
return;
@@ -95,9 +91,8 @@ void rose_dump(unsigned char *data, int length, int hexdump)
case CLEAR_REQUEST:
lprintf(T_ROSEHDR, "CLEAR REQUEST - Cause %s - Diag %d\n",
clear_code(data[3]), data[4]);
- if (length > 6)
- {
- facility(data+6, length-6);
+ if (length > 6) {
+ facility(data + 6, length - 6);
}
return;
@@ -126,12 +121,13 @@ void rose_dump(unsigned char *data, int length, int hexdump)
case RESET_CONFIRMATION:
lprintf(T_ROSEHDR, "RESET CONFIRMATION\n");
return;
-
+
case RESTART_REQUEST:
- lprintf(T_ROSEHDR, "RESTART REQUEST - Cause %s - Diag %d\n",
+ lprintf(T_ROSEHDR,
+ "RESTART REQUEST - Cause %s - Diag %d\n",
restart_code(data[3]), data[4]);
return;
-
+
case RESTART_CONFIRMATION:
lprintf(T_ROSEHDR, "RESTART CONFIRMATION\n");
return;
@@ -139,7 +135,7 @@ void rose_dump(unsigned char *data, int length, int hexdump)
case REGISTRATION_REQUEST:
lprintf(T_ROSEHDR, "REGISTRATION REQUEST\n");
return;
-
+
case REGISTRATION_CONFIRMATION:
lprintf(T_ROSEHDR, "REGISTRATION CONFIRMATION\n");
return;
@@ -151,53 +147,59 @@ void rose_dump(unsigned char *data, int length, int hexdump)
(data[0] & QBIT) ? "Q" : "",
(data[0] & DBIT) ? "D" : "",
(data[2] & MBIT) ? "M" : "");
- if ((length >= 5) && (data[0] & QBIT) && (data[3] == 0x7f))
- {
+ if ((length >= 5) && (data[0] & QBIT) && (data[3] == 0x7f)) {
/* pid transport */
int pid = data[4];
data += 5;
length -= 5;
switch (pid) {
- case PID_SEGMENT:
- lprintf(T_ROSEHDR," len %d\n", length - 5);
- data_dump(data, length, hexdump);
- break;
- case PID_ARP:
- lprintf(T_ROSEHDR," pid=ARP len %d\n", length - 5);
- arp_dump(data, length);
- break;
- case PID_NETROM:
- lprintf(T_ROSEHDR," pid=NET/ROM len %d\n", length - 5);
- netrom_dump(data, length, hexdump);
- break;
- case PID_IP:
- lprintf(T_ROSEHDR," pid=IP len %d\n", length - 5);
- ip_dump(data, length, hexdump);
- break;
- case PID_X25:
- lprintf(T_ROSEHDR, " pid=X.25 len %d\n", length - 5);
- rose_dump(data, length, hexdump);
- break;
- case PID_TEXNET:
- lprintf(T_ROSEHDR, " pid=TEXNET len %d\n", length - 5);
- data_dump(data, length, hexdump);
- break;
- case PID_FLEXNET:
- lprintf(T_ROSEHDR, " pid=FLEXNET len %d\n", length - 5);
- flexnet_dump(data, length, hexdump);
- break;
- case PID_NO_L3:
- lprintf(T_ROSEHDR, " pid=Text len %d\n", length - 5);
- data_dump(data, length, hexdump);
- break;
- default:
- lprintf(T_ROSEHDR, " pid=0x%x len %d\n", pid, length - 5);
- data_dump(data, length, hexdump);
- break;
+ case PID_SEGMENT:
+ lprintf(T_ROSEHDR, " len %d\n",
+ length - 5);
+ data_dump(data, length, hexdump);
+ break;
+ case PID_ARP:
+ lprintf(T_ROSEHDR, " pid=ARP len %d\n",
+ length - 5);
+ arp_dump(data, length);
+ break;
+ case PID_NETROM:
+ lprintf(T_ROSEHDR, " pid=NET/ROM len %d\n",
+ length - 5);
+ netrom_dump(data, length, hexdump);
+ break;
+ case PID_IP:
+ lprintf(T_ROSEHDR, " pid=IP len %d\n",
+ length - 5);
+ ip_dump(data, length, hexdump);
+ break;
+ case PID_X25:
+ lprintf(T_ROSEHDR, " pid=X.25 len %d\n",
+ length - 5);
+ rose_dump(data, length, hexdump);
+ break;
+ case PID_TEXNET:
+ lprintf(T_ROSEHDR, " pid=TEXNET len %d\n",
+ length - 5);
+ data_dump(data, length, hexdump);
+ break;
+ case PID_FLEXNET:
+ lprintf(T_ROSEHDR, " pid=FLEXNET len %d\n",
+ length - 5);
+ flexnet_dump(data, length, hexdump);
+ break;
+ case PID_NO_L3:
+ lprintf(T_ROSEHDR, " pid=Text len %d\n",
+ length - 5);
+ data_dump(data, length, hexdump);
+ break;
+ default:
+ lprintf(T_ROSEHDR, " pid=0x%x len %d\n",
+ pid, length - 5);
+ data_dump(data, length, hexdump);
+ break;
}
- }
- else
- {
+ } else {
lprintf(T_ROSEHDR, " len %d\n", length - 3);
data_dump(data + 3, length - 3, hexdump);
}
@@ -205,15 +207,15 @@ void rose_dump(unsigned char *data, int length, int hexdump)
}
switch (data[2] & 0x1F) {
- case RR:
- lprintf(T_ROSEHDR, "RR R%d\n", (data[2] >> 5) & 0x07);
- return;
- case RNR:
- lprintf(T_ROSEHDR, "RNR R%d\n", (data[2] >> 5) & 0x07);
- return;
- case REJ:
- lprintf(T_ROSEHDR, "REJ R%d\n", (data[2] >> 5) & 0x07);
- return;
+ case RR:
+ lprintf(T_ROSEHDR, "RR R%d\n", (data[2] >> 5) & 0x07);
+ return;
+ case RNR:
+ lprintf(T_ROSEHDR, "RNR R%d\n", (data[2] >> 5) & 0x07);
+ return;
+ case REJ:
+ lprintf(T_ROSEHDR, "REJ R%d\n", (data[2] >> 5) & 0x07);
+ return;
}
lprintf(T_ROSEHDR, "UNKNOWN\n");
@@ -234,7 +236,7 @@ static char *clear_code(unsigned char code)
return "Remote Procedure Error";
if (code == 0x19)
return "Reverse Charging Acceptance Not Subscribed";
- if (code == 0x21)
+ if (code == 0x21)
return "Incompatible Destination";
if (code == 0x29)
return "Fast Select Acceptance Not Subscribed";
@@ -252,9 +254,9 @@ static char *clear_code(unsigned char code)
return "Not Obtainable";
if (code == 0x15)
return "RPOA Out Of Order";
-
+
sprintf(buffer, "Unknown %02X", code);
-
+
return buffer;
}
@@ -266,15 +268,15 @@ static char *reset_code(unsigned char code)
return "DTE Originated";
if (code == 0x03)
return "Remote Procedure Error";
- if (code == 0x11)
+ if (code == 0x11)
return "Incompatible Destination";
if (code == 0x05)
return "Local Procedure Error";
if (code == 0x07)
return "Network Congestion";
-
+
sprintf(buffer, "Unknown %02X", code);
-
+
return buffer;
}
@@ -290,9 +292,9 @@ static char *restart_code(unsigned char code)
return "Network Congestion";
if (code == 0x07)
return "Network Operational";
-
+
sprintf(buffer, "Unknown %02X", code);
-
+
return buffer;
}
@@ -300,7 +302,8 @@ static char *dump_x25_addr(unsigned char *data)
{
static char buffer[25];
- sprintf(buffer, "%02X%02X,%02X%02X%02X", data[0], data[1], data[2], data[3], data[4]);
+ sprintf(buffer, "%02X%02X,%02X%02X%02X", data[0], data[1], data[2],
+ data[3], data[4]);
return buffer;
}
@@ -311,8 +314,7 @@ static char *dump_ax25_call(unsigned char *data, int l_data)
char *ptr = buffer;
int ssid;
- while (l_data-- > 1)
- {
+ while (l_data-- > 1) {
*ptr = *data++ >> 1;
if (*ptr != ' ')
++ptr;
@@ -320,8 +322,7 @@ static char *dump_ax25_call(unsigned char *data, int l_data)
*ptr++ = '-';
ssid = (*data & 0x1F) >> 1;
- if (ssid >= 10)
- {
+ if (ssid >= 10) {
*ptr++ = '1';
ssid -= 10;
}
@@ -343,7 +344,7 @@ static void facility(unsigned char *data, int lgtot)
char *result = buf;
factot = data;
-
+
lgfac = *data++;
lg = lgfac;
@@ -351,12 +352,10 @@ static void facility(unsigned char *data, int lgtot)
digid[0] = digis[0] = '\0';
indorig[0] = inddest[0] = '\0';
- while (lg > 0)
- {
+ while (lg > 0) {
fct = *data++;
lg--;
- switch (fct)
- {
+ switch (fct) {
case 0:
/* Marker=0 National Fac ou Marker=15 CCITT */
data++;
@@ -364,12 +363,13 @@ static void facility(unsigned char *data, int lgtot)
break;
case 0x3F:
/* Used if call request via L2 digi instead of L3 */
- lprintf (T_ROSEHDR, "Facility 3F%2.2X\n", *data++);
+ lprintf(T_ROSEHDR, "Facility 3F%2.2X\n", *data++);
lg--;
break;
case 0x7F:
/* Random number to avoid loops */
- lprintf (T_ROSEHDR, "NbAlea: %2.2X%2.2X\n", *data, *(data + 1));
+ lprintf(T_ROSEHDR, "NbAlea: %2.2X%2.2X\n", *data,
+ *(data + 1));
data += 2;
lg -= 2;
break;
@@ -377,7 +377,8 @@ static void facility(unsigned char *data, int lgtot)
/* Destination digi (for compatibility) */
lgdigi = *data++;
if (!digi_fac)
- strcpy(digid, dump_ax25_call(data, lgdigi));
+ strcpy(digid,
+ dump_ax25_call(data, lgdigi));
data += lgdigi;
lg -= 1 + lgdigi;
break;
@@ -385,14 +386,16 @@ static void facility(unsigned char *data, int lgtot)
/* Origin digi (for compatibility) */
lgdigi = *data++;
if (!digi_fac)
- strcpy(digis, dump_ax25_call(data, lgdigi));
+ strcpy(digis,
+ dump_ax25_call(data, lgdigi));
data += lgdigi;
lg -= 1 + lgdigi;
break;
case 0xED:
/* Out of order : callsign */
lgaddcall = *data++;
- lprintf(T_ROSEHDR, "at %s", dump_ax25_call(data, lgaddcall));
+ lprintf(T_ROSEHDR, "at %s",
+ dump_ax25_call(data, lgaddcall));
data += lgaddcall;
lg -= 1 + lgaddcall;
break;
@@ -407,21 +410,19 @@ static void facility(unsigned char *data, int lgtot)
break;
case 0xEF:
lgaddcall = *data++;
- for (d = data, l = 0; l < lgaddcall ; l += 7, d += 7)
- {
- if (l > (6 * 7))
- {
+ for (d = data, l = 0; l < lgaddcall;
+ l += 7, d += 7) {
+ if (l > (6 * 7)) {
/* 6 digis maximum */
break;
}
- if (d[6] & AX25_HBIT)
- {
- strcat(digis, dump_ax25_call(d, 7));
+ if (d[6] & AX25_HBIT) {
+ strcat(digis,
+ dump_ax25_call(d, 7));
strcat(digis, " ");
- }
- else
- {
- strcat(digid, dump_ax25_call(d, 7));
+ } else {
+ strcat(digid,
+ dump_ax25_call(d, 7));
strcat(digid, " ");
}
}
@@ -439,50 +440,47 @@ static void facility(unsigned char *data, int lgtot)
lgad = *data++;
lg -= 6;
lgaddr = lgad;
-
+
if (fct == 0xCB)
- strcpy (addstorig, dump_x25_addr(data));
+ strcpy(addstorig, dump_x25_addr(data));
else
- strcpy (addstdest, dump_x25_addr(data));
-
+ strcpy(addstdest, dump_x25_addr(data));
+
data += (lgad + 1) / 2;
lg -= (lgad + 1) / 2;
lgadind = lgaddcall - (lgad + 1) / 2 - 5;
-
- if (fct == 0xCB)
- {
- strncpy (indorig, data, lgadind);
+
+ if (fct == 0xCB) {
+ strncpy(indorig, data, lgadind);
indorig[lgadind] = '\0';
- }
- else
- {
- strncpy (inddest, data, lgadind);
+ } else {
+ strncpy(inddest, data, lgadind);
inddest[lgadind] = '\0';
}
-
+
data += lgadind;
lg -= lgadind;
break;
default:
- lprintf (T_ROSEHDR, "Unknown Facility Type %2.2X\n", fct);
+ lprintf(T_ROSEHDR, "Unknown Facility Type %2.2X\n",
+ fct);
data_dump(factot, lgtot, 1);
lg = 0;
break;
}
- result += strlen (result);
+ result += strlen(result);
}
- if (*indorig && *inddest)
- {
+ if (*indorig && *inddest) {
/* Build the displayed string */
- lprintf (T_ROSEHDR, "fm %-9s @%s", indorig, addstorig);
+ lprintf(T_ROSEHDR, "fm %-9s @%s", indorig, addstorig);
if (*digis)
- lprintf (T_ROSEHDR, " via %s", digis);
- lprintf (T_ROSEHDR, "\n");
- lprintf (T_ROSEHDR, "to %-9s @%s", inddest, addstdest);
+ lprintf(T_ROSEHDR, " via %s", digis);
+ lprintf(T_ROSEHDR, "\n");
+ lprintf(T_ROSEHDR, "to %-9s @%s", inddest, addstdest);
if (*digid)
- lprintf (T_ROSEHDR, " via %s", digid);
- lprintf (T_ROSEHDR, "\n");
+ lprintf(T_ROSEHDR, " via %s", digid);
+ lprintf(T_ROSEHDR, "\n");
}
}
diff --git a/listen/rspfdump.c b/listen/rspfdump.c
index e05e0fa..4a84b42 100644
--- a/listen/rspfdump.c
+++ b/listen/rspfdump.c
@@ -9,45 +9,60 @@
void rspf_dump(unsigned char *data, int length)
{
int bptr, nodes, links, adjs;
-
+
lprintf(T_IPHDR, "RSPF: version %u ", data[0]);
-
- switch(data[1])
- {
- case 3: /* RRH */
- lprintf(T_IPHDR, "type RRH seq %#04x flags %d\n",ntohs(*((u_short*)(&data[8]))), data[10]);
- bptr = 11;
- while (bptr < length)
- lprintf(T_IPHDR, "%c", data[bptr++]);
- lprintf(T_IPHDR, "\n");
- break;
- case 1: /*Routing update*/
- lprintf(T_IPHDR, "type ROUTING UPDATE ");
- lprintf(T_IPHDR, "fragment %u frag total %u sync %u #nodes %u env_id %u\n", data[2], data[3], data[6], data[7], ntohs(*((u_short*)(&data[8]))));
-
- bptr = data[6] + 6;
- nodes = data[7];
- while(nodes-- && (length - bptr) > 7)
- {
- lprintf(T_DATA, " Reporting Router: %s Seq %u Subseq %u #links %u\n", inet_ntoa(*((struct in_addr*)(&data[bptr]))), ntohs(*((u_short*)(&data[bptr+4]))), data[bptr+6], data[bptr+7]);
- links = data[bptr+7];
- bptr += 8;
- while(links-- && (length - bptr) > 4)
- {
- lprintf(T_DATA, " horizon %u ERP factor %u cost %u #adjacencies %u\n", data[bptr], data[bptr+1], data[bptr+2], data[bptr+3]);
- adjs = data[bptr+3];
- bptr += 4;
- while(adjs-- && (length - bptr) > 4)
- {
- lprintf(T_DATA, " %s/%d \n", inet_ntoa(*((struct in_addr*)(&data[bptr+1]))), data[bptr] & 0x3f);
- bptr += 5;
- }
+
+ switch (data[1]) {
+ case 3: /* RRH */
+ lprintf(T_IPHDR, "type RRH seq %#04x flags %d\n",
+ ntohs(*((u_short *) (&data[8]))), data[10]);
+ bptr = 11;
+ while (bptr < length)
+ lprintf(T_IPHDR, "%c", data[bptr++]);
+ lprintf(T_IPHDR, "\n");
+ break;
+ case 1: /*Routing update */
+ lprintf(T_IPHDR, "type ROUTING UPDATE ");
+ lprintf(T_IPHDR,
+ "fragment %u frag total %u sync %u #nodes %u env_id %u\n",
+ data[2], data[3], data[6], data[7],
+ ntohs(*((u_short *) (&data[8]))));
+
+ bptr = data[6] + 6;
+ nodes = data[7];
+ while (nodes-- && (length - bptr) > 7) {
+ lprintf(T_DATA,
+ " Reporting Router: %s Seq %u Subseq %u #links %u\n",
+ inet_ntoa(*
+ ((struct in_addr
+ *) (&data[bptr]))),
+ ntohs(*((u_short *) (&data[bptr + 4]))),
+ data[bptr + 6], data[bptr + 7]);
+ links = data[bptr + 7];
+ bptr += 8;
+ while (links-- && (length - bptr) > 4) {
+ lprintf(T_DATA,
+ " horizon %u ERP factor %u cost %u #adjacencies %u\n",
+ data[bptr], data[bptr + 1],
+ data[bptr + 2], data[bptr + 3]);
+ adjs = data[bptr + 3];
+ bptr += 4;
+ while (adjs-- && (length - bptr) > 4) {
+ lprintf(T_DATA,
+ " %s/%d \n",
+ inet_ntoa(*
+ ((struct in_addr
+ *) (&data[bptr
+ +
+ 1]))),
+ data[bptr] & 0x3f);
+ bptr += 5;
}
- }
- break;
- default:
- lprintf(T_ERROR, "Unknown packet type %d\n", data[1]);
- break;
+ }
+ }
+ break;
+ default:
+ lprintf(T_ERROR, "Unknown packet type %d\n", data[1]);
+ break;
}
}
-
diff --git a/listen/tcpdump.c b/listen/tcpdump.c
index 3a9520f..23c9686 100644
--- a/listen/tcpdump.c
+++ b/listen/tcpdump.c
@@ -1,4 +1,4 @@
-/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/tcpdump.c,v 1.1 2001/04/10 01:58:56 csmall Exp $ */
+/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/tcpdump.c,v 1.2 2001/09/12 13:18:44 terry Exp $ */
/* TCP header tracing routines
* Copyright 1991 Phil Karn, KA9Q
@@ -38,37 +38,46 @@ void tcp_dump(unsigned char *data, int length, int hexdump)
int mss = 0;
source = get16(data + 0);
- dest = get16(data + 2);
- seq = get32(data + 4);
- ack = get32(data + 8);
+ dest = get16(data + 2);
+ seq = get32(data + 4);
+ ack = get32(data + 8);
hdrlen = (data[12] & 0xF0) >> 2;
- flags = data[13];
- wnd = get16(data + 14);
- up = get16(data + 18);
+ flags = data[13];
+ wnd = get16(data + 14);
+ up = get16(data + 18);
lprintf(T_PROTOCOL, "TCP:");
lprintf(T_TCPHDR, " %s->", servname(source, "tcp"));
lprintf(T_TCPHDR, "%s Seq x%x", servname(dest, "tcp"), seq);
- if (flags & ACK) lprintf(T_TCPHDR, " Ack x%x", ack);
+ if (flags & ACK)
+ lprintf(T_TCPHDR, " Ack x%x", ack);
- if (flags & CE) lprintf(T_TCPHDR, " CE");
+ if (flags & CE)
+ lprintf(T_TCPHDR, " CE");
- if (flags & URG) lprintf(T_TCPHDR, " URG");
+ if (flags & URG)
+ lprintf(T_TCPHDR, " URG");
- if (flags & ACK) lprintf(T_TCPHDR, " ACK");
+ if (flags & ACK)
+ lprintf(T_TCPHDR, " ACK");
- if (flags & PSH) lprintf(T_TCPHDR, " PSH");
+ if (flags & PSH)
+ lprintf(T_TCPHDR, " PSH");
- if (flags & RST) lprintf(T_TCPHDR, " RST");
+ if (flags & RST)
+ lprintf(T_TCPHDR, " RST");
- if (flags & SYN) lprintf(T_TCPHDR, " SYN");
+ if (flags & SYN)
+ lprintf(T_TCPHDR, " SYN");
- if (flags & FIN) lprintf(T_TCPHDR, " FIN");
+ if (flags & FIN)
+ lprintf(T_TCPHDR, " FIN");
lprintf(T_TCPHDR, " Wnd %d", wnd);
- if (flags & URG) lprintf(T_TCPHDR, " UP x%x", up);
+ if (flags & URG)
+ lprintf(T_TCPHDR, " UP x%x", up);
/* Process options, if any */
if (hdrlen > TCPLEN && length >= hdrlen) {
@@ -95,29 +104,30 @@ void tcp_dump(unsigned char *data, int length, int hexdump)
optlen = *cp++;
/* Process valid multi-byte options */
- switch (kind) {
+ switch (kind) {
case MSS_KIND:
- if (optlen == MSS_LENGTH)
+ if (optlen == MSS_LENGTH)
mss = get16(cp);
break;
}
- optlen = max(2, optlen); /* Enforce legal minimum */
+ optlen = max(2, optlen); /* Enforce legal minimum */
i -= optlen;
cp += optlen - 2;
}
}
- if (mss != 0) lprintf(T_TCPHDR," MSS %d", mss);
+ if (mss != 0)
+ lprintf(T_TCPHDR, " MSS %d", mss);
length -= hdrlen;
- data += hdrlen;
+ data += hdrlen;
if (length > 0) {
lprintf(T_TCPHDR, " Data %d\n", length);
data_dump(data, length, hexdump);
return;
}
-
+
lprintf(T_TCPHDR, "\n");
}
diff --git a/listen/udpdump.c b/listen/udpdump.c
index 4eb75a1..f80a134 100644
--- a/listen/udpdump.c
+++ b/listen/udpdump.c
@@ -1,4 +1,4 @@
-/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/udpdump.c,v 1.1 2001/04/10 01:58:56 csmall Exp $ */
+/* @(#) $Header: /home/ax25-cvs/ax25-apps/listen/udpdump.c,v 1.2 2001/09/12 13:18:44 terry Exp $ */
/* UDP packet tracing
* Copyright 1991 Phil Karn, KA9Q
@@ -18,27 +18,28 @@ void udp_dump(unsigned char *data, int length, int hexdump)
int dest;
hdr_length = get16(data + 4);
- source = get16(data + 0);
- dest = get16(data + 2);
+ source = get16(data + 0);
+ dest = get16(data + 2);
lprintf(T_PROTOCOL, "UDP:");
- lprintf(T_TCPHDR, " len %d %s->", hdr_length, servname(source, "udp"));
+ lprintf(T_TCPHDR, " len %d %s->", hdr_length,
+ servname(source, "udp"));
lprintf(T_TCPHDR, "%s", servname(dest, "udp"));
-
+
if (hdr_length > UDPHDR) {
length -= UDPHDR;
- data += UDPHDR;
-
+ data += UDPHDR;
+
switch (dest) {
- case RIP_PORT:
- lprintf(T_TCPHDR, "\n");
- rip_dump(data, length);
- break;
- default:
- lprintf(T_TCPHDR, " Data %d\n", length);
- data_dump(data, length, hexdump);
- break;
+ case RIP_PORT:
+ lprintf(T_TCPHDR, "\n");
+ rip_dump(data, length);
+ break;
+ default:
+ lprintf(T_TCPHDR, " Data %d\n", length);
+ data_dump(data, length, hexdump);
+ break;
}
}
}
diff --git a/listen/utils.c b/listen/utils.c
index ce7ecb9..0d978ee 100644
--- a/listen/utils.c
+++ b/listen/utils.c
@@ -14,33 +14,32 @@
#include "listen.h"
-int color = 0; /* Colorized? */
-int sevenbit = 1; /* Are we on a 7-bit terminal? */
-int ibmhack = 0; /* IBM mapping? */
+int color = 0; /* Colorized? */
+int sevenbit = 1; /* Are we on a 7-bit terminal? */
+int ibmhack = 0; /* IBM mapping? */
/* mapping of IBM codepage 437 chars 128-159 to ISO latin1 equivalents
* (158 and 159 are mapped to space)
*/
-unsigned char ibm_map[32] =
-{
+unsigned char ibm_map[32] = {
199, 252, 233, 226, 228, 224, 229, 231,
234, 235, 232, 239, 238, 236, 196, 197,
201, 230, 198, 244, 246, 242, 251, 249,
- 255, 214, 220, 162, 163, 165, 32, 32
+ 255, 214, 220, 162, 163, 165, 32, 32
};
-
+
/*
* Printf in Technicolor (TM) (available in selected theatres only)
*/
-
+
void lprintf(int dtype, char *fmt, ...)
{
va_list args;
char str[1024];
unsigned char *p;
chtype ch;
-
+
va_start(args, fmt);
vsnprintf(str, 1024, fmt, args);
va_end(args);
@@ -51,17 +50,17 @@ void lprintf(int dtype, char *fmt, ...)
if (sevenbit && ch > 127)
ch = '.';
-
+
if ((ch > 127 && ch < 160) && ibmhack)
ch = ibm_map[ch - 128] | A_BOLD;
else if ((ch < 32) && (ch != '\n'))
ch = (ch + 64) | A_REVERSE;
- if ((dtype == T_ADDR) || (dtype == T_PROTOCOL)
- || (dtype == T_AXHDR) || (dtype == T_IPHDR)
+ if ((dtype == T_ADDR) || (dtype == T_PROTOCOL)
+ || (dtype == T_AXHDR) || (dtype == T_IPHDR)
|| (dtype == T_ROSEHDR) || (dtype == T_PORT)
|| (dtype == T_TIMESTAMP))
- ch |= A_BOLD;
+ ch |= A_BOLD;
ch |= COLOR_PAIR(dtype);
@@ -76,7 +75,7 @@ void lprintf(int dtype, char *fmt, ...)
fflush(stdout);
}
}
-
+
int initcolor(void)
{
if (!has_colors)
@@ -91,7 +90,7 @@ int initcolor(void)
idlok(stdscr, TRUE); /* Use hardware ins/del of the terminal */
nodelay(stdscr, TRUE); /* Make getch() nonblocking */
- /* Pick colors for each type */
+ /* Pick colors for each type */
init_pair(T_PORT, COLOR_GREEN, COLOR_BLACK);
init_pair(T_DATA, COLOR_WHITE, COLOR_BLACK);
init_pair(T_ERROR, COLOR_RED, COLOR_BLACK);
@@ -104,8 +103,8 @@ int initcolor(void)
init_pair(T_KISS, COLOR_MAGENTA, COLOR_BLACK);
init_pair(T_BPQ, COLOR_MAGENTA, COLOR_BLACK);
init_pair(T_TCPHDR, COLOR_BLUE, COLOR_BLACK);
- init_pair(T_FLEXNET, COLOR_BLUE, COLOR_BLACK);
-
+ init_pair(T_FLEXNET, COLOR_BLUE, COLOR_BLACK);
+
return 1;
}
@@ -114,7 +113,7 @@ char *servname(int port, char *proto)
{
struct servent *serv;
static char str[16];
-
+
if ((serv = getservbyport(htons(port), proto)))
strncpy(str, serv->s_name, 16);
else