diff --git a/src/sbbs3/zmodem.c b/src/sbbs3/zmodem.c index 6284c5d54ab917deb796da246ad61ad8d9828ae0..5e0a5824ed923724673f45d9e4e8715426094ae9 100644 --- a/src/sbbs3/zmodem.c +++ b/src/sbbs3/zmodem.c @@ -268,7 +268,7 @@ zmodem_tx_hex_header(zmodem_t* zm, unsigned char * p) */ zmodem_tx_raw(zm, '\r'); - zmodem_tx_raw(zm, '\n'|0x80); /* FDSZ sends 0x8a instead of 0x0a */ + zmodem_tx_raw(zm, '\n'); /* FDSZ sends 0x8a instead of 0x0a */ if(type!=ZACK && type!=ZFIN) zmodem_tx_raw(zm, XON); @@ -1204,7 +1204,9 @@ void zmodem_parse_zrinit(zmodem_t* zm) int zmodem_get_zrinit(zmodem_t* zm) { - unsigned char zrqinit_header[] = { ZRQINIT, 0, 0, 0, 0 }; + unsigned char zrqinit_header[] = { ZRQINIT, /* ZF3: */0, 0, 0, /* ZF0: */0 }; + /* Note: sz/dsz/fdsz sends 0x80 in ZF3 because it supports var-length headers. */ + /* We do not, so we send 0x00, resulting in a CRC-16 value of 0x0000 as well. */ zmodem_tx_raw(zm,'r'); zmodem_tx_raw(zm,'z');