summaryrefslogtreecommitdiffstats
path: root/call
Commit message (Collapse)AuthorAgeFilesLines
* UTF-8 support for call.Thomas Osterried2016-02-112-278/+769
| | | | | | | | | | | | | | | | | | | | | 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>
* call: Fix race condition between select(2) and signal delivery.Ralf Baechle2015-06-101-6/+13
| | | | | | | | | | | | | | 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>
* call: The -T option is also supported for NET/ROM and ROSE.Ralf Baechle2015-06-101-2/+2
| | | | | | So document the fact. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Call: Fix typo in man page.Ralf Baechle2015-06-101-1/+1
| | | | | | automaticaly -> automatically Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Call: Fix parsing of the argument of the -T option.Ralf Baechle2015-06-101-9/+12
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* call: Don't reinstall SIGQUIT signal handler.Ralf Baechle2015-06-101-1/+0
| | | | | | | 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>
* call: Rewrite excessivly long select call for readability.Ralf Baechle2015-06-101-2/+9
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* call: Harden against compiler overoptimization.Ralf Baechle2015-06-102-2/+2
| | | | | | | 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>
* Call: Handle select(2) returning EINTR.Ralf Baechle2015-06-101-5/+8
| | | | | | | | | | | | | | 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>
* listen: Fix signedness compiler warnings.Ralf Baechle2015-06-081-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Reformat consistently. Strictly whitespace changes only.Ralf Baechle2015-05-022-71/+71
| | | | | | | 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>
* Remove pointless return statements at the end of void functions.Ralf Baechle2015-05-021-3/+0
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Remove parenthesis around arguments of return statements.Ralf Baechle2015-05-023-37/+37
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Use tabs for indentation, not spaces.Ralf Baechle2015-05-021-21/+21
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Remove useless initializations to 0 or NULL.Ralf Baechle2015-05-021-5/+5
| | | | | | | 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>
* Nuke trailing whitespace.Ralf Baechle2015-05-025-7/+7
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Nuke trailing blank lines.Ralf Baechle2015-05-021-1/+0
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Kill a ton of useless casts to char * all over the code.Ralf Baechle2013-06-171-2/+2
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* call: Fix warning about set but not used variable.Ralf Baechle2013-06-171-2/+2
| | | | | | | | | | 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>
* call: Fix warning about set but not used variable.Ralf Baechle2013-06-171-4/+2
| | | | | | | | | | 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: Fix warning about set but unused variable.Ralf Baechle2013-06-171-2/+0
| | | | | | | 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>
* Ignore even more generated files.Ralf Baechle2013-06-041-4/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Convert .cvsignore files to .gitignoreRalf Baechle2013-06-041-0/+0
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Include man page source files in generated dist archives.Ralf Baechle2013-06-041-1/+1
|
* Fix build of man pages when building in a separate build directory.Ralf Baechle2013-06-041-1/+1
|
* bugfix: buffer overflow in call.c.Thomas Osterried2012-10-281-2/+2
| | | | | | | | | | | | 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.
* Apply program name transformations also to man page content.Ralf Baechle2011-12-112-13/+30
| | | | | | 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.
* - Important bugfix (call did not work properly after my last patch)Thomas Osterried2009-11-112-140/+215
| | | | | | | | | - 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.
* fix: on read through closed pipe, call did endless select(),Thomas Osterried2009-08-242-17/+66
| | | | | | | | 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.
* Remove use of backwards compatibility header name.Ralf Baechle2009-06-211-12/+0
| | | | | | 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.
* Ignore a few more generated files.Ralf Baechle2009-06-191-0/+1
|
* Remove all generated files.Ralf Baechle2009-06-191-522/+0
| | | | | | | | | | | | | | 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.
* Fix build error caused by variable definition after statement.Ralf Baechle2009-06-061-1/+2
|
* on modern systems, the ncurses gui crash in wtouchln() orThomas Osterried2009-04-291-2/+3
| | | | | | | | | 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.
* fixed segfault issueThomas Osterried2009-04-151-10/+10
|
* call writes messages to stdout using printf(). it writes dataThomas Osterried2009-03-191-8/+33
| | | | | | | | | | | 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().
* removed debug codeThomas Osterried2009-01-251-2/+0
|
* fixed segfault issue by parsing unexpected bin headers.Thomas Osterried2009-01-251-28/+39
|
* revised linemodeThomas Osterried2009-01-241-33/+1
|
* Hope this is the last fix for the slightly corrupted outputThomas Osterried2009-01-241-6/+12
| | | | issue whenever a packet ended with "\r ".
* major fix.Thomas Osterried2009-01-241-37/+101
| | | | | | | | | | | | | | 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().
* small fixThomas Osterried2009-01-242-4/+11
|
* smaller fixesThomas Osterried2009-01-241-9/+8
|
* fix for fix in dos to unix time conversion partThomas Osterried2009-01-241-1/+1
|
* fixed problem i produced yesterday.Thomas Osterried2009-01-241-3/+5
| | | | | currently we've seen other bugs in call which lead to malfunctions and segfaults.
* smaller changes.Thomas Osterried2009-01-231-15/+16
|
* fixed bin download corruption.Thomas Osterried2009-01-221-29/+35
| | | | fixed dos to unix time conversion.
* #BIN upload now preserves the file time.Thomas Osterried2009-01-223-4/+28
|
* - bugfixes:Thomas Osterried2009-01-211-57/+84
| | | | | | | | | | | | - fileupload (in raw and gui "slave" mode) goes only step by step the 128 bytes further if user enters a character. Thanks to Daniel DO8CD for the report. - write() returns -1 at EAGAIN (packet links are usually slower then linux file IO, and EAGAIN occurs because the txbuffer in the kernel is full). This lead to a bad substraction in sent bytes and thus to file corruption at the receiving site. - added more help: now explaining all the ~-Escapes in raw mode in the ~? command.
* - new option -S: be silent. useful for using call in shellscripts.Thomas Osterried2008-07-092-12/+32
| | | | | | - call was not usable as a pipe in scripts because it read 511 bytes, tried to write these 511 bytes (but 256 is max for ax25 I-frames), got -1 EMSGSIZE (Message too long) and terminated.