| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
tcpdump.
-> Without -t, listen now shows a timestamp.
Signed-off-by: Thomas Osterried <ax25@x-berg.in-berlin.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
packet, but garbled:
bpq2: fm DL9SAU to DL9SAU-15 ctl I00+ pid=8(segment) len 4 remain 0
0000 E2 E3 E4 | ...
Reason:
the defragmented packet is passed to netif_rx(skb).
It has skb->protocol = htons(ETH_P_IP), but still belongs to
ifr.ifr_hwaddr.sa_family == AF_AX25.
listen -a looks for every iface with like ifr.ifr_hwaddr.sa_family == AF_AX25
and thus gets the desegmented packet. This desegmented packet has already
lost his ax25 header information (it's the IP datagram that netif_rx sees),
prefixed by AX25_P_IP = 0xcc:
strace:
recvfrom(3, "\0\210\230r\246\202\252\340\210\230r\246\202\252\177\314\10\201\314E\0\1\1\0\32\0\0?\1!\327,\200\200\n,\200\200\1\0\0\347\300\21\6\0\1\26\23\303V..
recvfrom(3, "\314E\0\1\1\0\32\0\0?\1!\327,\200\200\n,\200\200\1\0\0\347\300\21\6\0\1\26\23\303V..
\314 == 0xcc == AX25_P_IP
We can make safely make the assumption for first byte == 0xcc and length > 2,
that we safeley can detect those IP frames, and then ignore it.
Signed-off-by: Thomas Osterried <ax25@x-berg.in-berlin.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
make[2]: Entering directory '/home/ralf/src/ax25/ax25-apps/listen'
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -Wall -MT listen.o -MD -MP -MF .deps/listen.Tpo -c -o listen.o listen.c
listen.c: In function ‘ascii_dump’:
listen.c:231:4: warning: pointer targets in passing argument 2 of ‘__builtin_strncat’ differ in signedness [-Wpointer-sign]
strncat(buf, &c, 1);
^
listen.c:231:4: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
listen.c: In function ‘hex_dump’:
listen.c:282:8: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
data2 = data;
^
[...]
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -Wall -MT rosedump.o -MD -MP -MF .deps/rosedump.Tpo -c -o rosedump.o rosedump.c
rosedump.c: In function ‘facility’:
rosedump.c:331:9: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
factot = data;
^
rosedump.c:398:11: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
for (d = data, l = 0; l < lgaddcall;
^
rosedump.c:406:28: warning: pointer targets in passing argument 1 of ‘dump_ax25_call’ differ in signedness [-Wpointer-sign]
dump_ax25_call(d, 7));
^
rosedump.c:296:14: note: expected ‘unsigned char *’ but argument is of type ‘char *’
static char *dump_ax25_call(unsigned char *data, int l_data)
^
rosedump.c:410:28: warning: pointer targets in passing argument 1 of ‘dump_ax25_call’ differ in signedness [-Wpointer-sign]
dump_ax25_call(d, 7));
^
rosedump.c:296:14: note: expected ‘unsigned char *’ but argument is of type ‘char *’
static char *dump_ax25_call(unsigned char *data, int l_data)
^
rosedump.c:438:4: warning: pointer targets in passing argument 2 of ‘__builtin_strncpy’ differ in signedness [-Wpointer-sign]
strncpy(indorig, data, lgadind);
^
rosedump.c:438:4: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
rosedump.c:441:4: warning: pointer targets in passing argument 2 of ‘__builtin_strncpy’ differ in signedness [-Wpointer-sign]
strncpy(inddest, data, lgadind);
^
rosedump.c:441:4: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
rosedump.c:451:14: warning: pointer targets in passing argument 1 of ‘data_dump’ differ in signedness [-Wpointer-sign]
data_dump(factot, lgtot, 1);
^
In file included from rosedump.c:11:0:
listen.h:31:6: note: expected ‘unsigned char *’ but argument is of type ‘char *’
void data_dump(unsigned char *, int, int);
^
[...]
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -Wall -MT utils.o -MD -MP -MF .deps/utils.Tpo -c -o utils.o utils.c
utils.c: In function ‘lprintf’:
utils.c:49:10: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
for (p = str; *p != '\0'; p++) {
^
utils.c:71:10: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
for (p = str; *p != '\0'; p++)
^
[...]
make[2]: Leaving directory '/home/ralf/src/ax25/ax25-apps/listen'
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
| |
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
| |
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
GIFADDR: Bad file descriptor
after signling termination with ^C
In detail:
close(3) = 0
sigreturn() = ? (mask now [])
ioctl(3, SIOCGIFHWADDR, {ifr_name="eth0", ???}) = -1 EBADF (Bad file descriptor)
-> The interrupt handler introduced concurrency issues ;)
The patch caused only unexpected behaviour; no security problems.
This new patch fixes this problem.
|
|
|
|
| |
Patch from Michael Stuermer <ms@mallorn.de> with a few touchups be me.
|
|
|
|
|
|
| |
Glibc as old as 2.2 provides working headers under the right name and
if not libax25 would install headers under the right name so this has
become redundant and ugly.
|
|
|
|
|
|
|
|
| |
Various socket syscalls receive a length argument that should be a
socklen_t rsp. a ptr to a socklen_t but instead int rsp. ptr to int were
being passed. While in theory this was a bug it's harmless as dangerously
large values would not be used but the issue manifested itself in a
significant number of compilation warnings.
|
|
|
|
| |
pointless comments.
|
| |
|
|
|
|
| |
Makefile bug
|
| |
|
| |
|
| |
|
|
|