Uwe Ohse
The lrzsz package

recordzmodem - a zmodem protocol debugger


SYNOPSIS

recordzmodem [options] PROGRAM [args ...]

DESCRIPTION

recordzmodem intercepts standard input and output of PROGRAM and writes zmodem protocol information to the standard error output.

Each line of output consists of the process ID of PROGRAM, followed by a blank, followed by one or two tag character, followed by a blank, followed by protocol information or data.

The tag character may be '>' (something was sent to the child PROGRAM), '<' (something was sent from the child) or '=', meaning that the line contains a dump of data instead of protocol information. In the later case the a '<' or '>' indicating the direction of the data dumped.

recordzmodem somewhat changes the timing of the protocol transactions. This is unfortunate but inevitable.

DATA

When data is dumped it is encoded to not contain any special characters anymore. A '<' character is encoded as '<<', other characters ranging from ASCII 33 to 126 are printed literally, other characters are printed as '<XX>', where X is a hexadecimal digit.
If not all data is dumped then line dumped will end with three dots (...).

Note that data dumped because of the --input or --full-input options has undergone zmodem link level escaping, while this escaping has been removed at later stages of the processing.

OPTIONS

-d, --data
Dump the beginning of all data packets. One line of information is printed, containing 30 to 70 bytes of information.
-D, --full-data
Dump all content of all data packets. Multiple lines containing a '=' tag are printed, if needed.
-i, --input
Dump the beginning of all input read. One line of information is printed, containing 30 to 70 bytes of information.
-I, --full-input
Dump all content of all input read. Multiple lines containing a '=' tag are printed, if needed.

EXAMPLES

In all examples the file "outputfile" will contain information useful for seeing what's going on.

Run lrz, saving protocol information to a file

        recordzmodem 2>outputfile lrz

The output will contain a human readable translation of all zmodem frames and data subframes, but without any data.

Run lsz, saving protocol information and some data

        recordzmodem -d 2>outputfile lsz

This time the output will show the start line of all data subframes.

CAVEATS

This program is still not finished. It can not deal with variable headers now. It still cannot recognize all protocol flags. It will not show some unknown flags.

Encryption, LZW and RLE encodings probably never will be understood.

HISTORY

recordzmodem was added in version 1.9.0.

AUTHOR

Uwe Ohse, uwe@ohse.de

SEE ALSO

lsz(1), lsb(1), lsx(1), lrz(1), lrb(1), lrx(1), lrzsz_intro(7),