| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
|
| |
C guarantees initialization to zero for global variables but putting those
variables into the .bss section. An explicit initialization however will
put the variable into the .data section where it will inflate the executable.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Cathryn Mataga.
1. Now supports UTF8 or IBM850 as the encoding style over AX25.
1a. Attention was paid to make sure that wide characters worked
with East Asian fonts.
2. Now the screen can be resized.
correctly. The program no longer crashes when it is resized.
3. Added a scrollback buffer. Use the up and down arrow keys
or the page up/page down keys to scroll through history.
After the screen begins scrolling, press 'up arrow' to view
history.
4. Many visual quirks have been fixed.
This version is now dependent on iconv and wide character
versions of ncurses, which I think should be everywhere these
days.
Signed-off-by: Thomas Osterried <ax25@x-berg.in-berlin.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a signal is delivered between the start of the main select loop and select
might wait for a long time. Fixing this with select is not possible so
switch to pselect.
Unlike select pselect akes a struct timespec pointer as its argument so
rewrite the related infrastructure to work with struct timespec instead of
struct timeval.
For now the race did only affect the SIGQUIT delivery.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
| |
So document the fact.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
| |
automaticaly -> automatically
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
| |
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
| |
This is Linux software so we don't have to deal with this kind of
UNIX V7 or SVR3 braindamage of resetting the signal handlers.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
| |
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
| |
A compiler won't know that the interrupted variable can be changed behind
its back in a signal handler so it might do clever overoptimizations.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This may happen when call is running in curses mode, and the terminal
window is resized which results in a SIGWINCH sent. Ncurses as normally
configured on Linux distributions will have installed a handler. If
as it is the most likely case, the select call will be interrupted by
the signal, select will return EINTR and call will exit.
Note that this doesn't mean it's now a good idea to resize the window.
Call will still not handle the screen size change properly and the output
will look ugly and missformatted.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Indentation by tabs only. Move case labels in switches are on the same
level as the switch keyword.
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>
|
|
|
|
| |
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
| |
They only inflate the .data section of the binary. Initializations to
FALSE are still left to do.
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>
|
|
|
|
| |
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
|
|
|
| |
gcc -DHAVE_CONFIG_H -I. -I.. -O2 -Wall -Wno-pointer-sign -MT call.o -MD -MP
-MF .deps/call.Tpo -c -o call.o call.c
call.c: In function ‘wrdstatw’:
call.c:482:9: warning: variable ‘x’ set but not used [-Wunused-but-set-variable]
mv -f .deps/call.Tpo .deps/call.Po
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
|
|
|
| |
gcc -DHAVE_CONFIG_H -I. -I.. -O2 -Wall -Wno-pointer-sign -MT menu.o -MD -MP -MF .deps/menu.Tpo -c -o menu.o menu.c
menu.c: In function ‘p_dwn_menu’:
menu.c:132:15: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
menu.c: In function ‘top_menu’:
menu.c:244:11: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
|
|
|
|
|
| |
call.c:1590:6: warning: variable ‘extrach’ set but not used [-Wunused-but-set-va
riable]
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>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the call sign you connect to has 9 characters
(i.E. DL9SAU-10), then call segfaults. idString
in the ncruses mode routine start_screen() was
dimensioned too short, and the auther had the fatal
assumtion that a call is 8 characters long (and not 9),
and he did limit the length in sprintf with ... %n.ns
This is an old bug. Obviously, ubuntu 12.04 and 12.10
introduced better runtime checks into potential buffer
overflows.
|
|
|
|
|
|
| |
For now these options are just honored for the call.1 and listen.1 man
pages because these days these two programs generally get renamed to
avoid naming conflicts with other programs.
|
|
|
|
|
|
|
|
|
| |
- Better error handling on read() == -1 and write() == -1.
Previously, the return value was not honored correctly - and could
cause unexpected results.
- New option "-R":
Disable all remote commands like autobin (#BIN#), 7plus downloads, //echo, etc.
This is useful for scripting where you just don't like the remote site to trigger uncaught conditions here.
|
|
|
|
|
|
|
|
| |
read() = 0, wht consumed 100% CPU power.
New options:
-W: waits after EOF on stdin. Useful for scripting, for waiting
for data coming via fd 3 (ax25 connection)
-T secs: idle timout after secs seconds.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Keeping generated files in CVS doesn't only tend to produce large and
cluttered files it also may result in build problems due to timestamps
in the wrong order. So dump everything, update .cvsignore to ignore
these files and resolve all warnings generated by autoreconf.
From now on users of a CVS checkout should run the command
autoreconf --install --force
after having done a CVS checkout. For this to succeed automake, autoconf
and libtool will have to be installed.
|
| |
|
|
|
|
|
|
|
|
|
| |
wnoutrefresh() [ncurses functions], called from winclose() in menu.c.
Debunging with gdb showed that wtab->fline was a large negative number.
Now doing better checking that wtab->fline and wtab->lline is > 0.
Seems that this fix is sufficient. If it will come out that it is not,
we'll write a wtouchln() wrapper which checks if the arguments are
positive and reasonable small.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
from the ax25 connection using write(0). everything was fine
as long as call wrote to stdout.
If instead we use output redirection to a file or stdout
(> foo, | bar), then the messages like "Connected to.." appeared
at the end of the connection.
I guess it's a glibc issue that printf (whih is buffered) behaves
different when stdout is redirected.
Fixed using fflush() after each printf().
|
| |
|
| |
|
| |
|
|
|
|
| |
issue whenever a packet ended with "\r ".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. if a line was split over two ax25 packets, we read i.e.
1. "foobar told me" 2. " go7+. ". The second packet was
interpreted like starting with " go7+. ".
thus in a pure bbs listing it was misinterpreted as start
of a 7plus file.
Since the data was not like a 7plus header starts, the
7plus download parser caused a segfault (after copying
i.E. 1555 bytes to char s[20]. [seen in gdb ;-]
-> enforced a "linemode".
2. protocol and array size assurances in the #BIN and 7plus
part, as well as in dupdstatw().
|
| |
|
| |
|
| |
|
|
|
|
|
| |
currently we've seen other bugs in call which lead to malfunctions
and segfaults.
|
| |
|
|
|
|
| |
fixed dos to unix time conversion.
|
| |
|