summaryrefslogtreecommitdiffstats
path: root/listen/listen.c
diff options
context:
space:
mode:
Diffstat (limited to 'listen/listen.c')
-rw-r--r--listen/listen.c171
1 files changed, 89 insertions, 82 deletions
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);
}