XMODEM送信の挙動の改善
Eröffnet am: 2021-11-15 13:23
Letztes Update: 2021-11-19 00:55
Auswertung: | gekka | Verantwortlicher: | (Keine) |
---|---|---|---|
Priorität: | 5 - Mittel | Meilenstein: | (Keine) |
Typ: | Patches | Schweregrad: | 5 - Mittel |
Komponente: | Tera Term | Status: | Offen |
Lösung | Keine |
Einzelheiten
XMODEMのプロトコルでは開始時にデータ受信側からデータ送信側へ周期的に送信要求のコマンド('C'あるいはNAK)が送られてくる。
データ受信側がすでに要求している状態でTeraTermがデータ送信側となる場合、ファイルおよびオプションの選択のダイアログが表示されている間も受信側から周期的にコマンドが送られてくる。
この送信要求がダイアログ表示中の間も蓄積されていく。
Teratermの現状の挙動は、この蓄積されたコマンドの先頭の1バイト目だけを解釈するだけで送信を開始してしまう。
そして1ブロック目の送信処理の直後に、この蓄積されたコマンドの2バイト目を解釈して1ブロック目の送信を繰り返してしまう。
このために、受信側は最初の1パケット目に対して正常受信したと応答を返しても、2ブロック目は送られて来ないことになる。
この挙動が繰り返されることで送受信は失敗することになる。
あるいはダイアログ表示中に受信側がタイムアウトして受信を受け付けなくなっている場合(CAN)でも無視して送信をしてしまう。
正しくは 蓄積されているコマンド全体を調べて判定する必要がある。
Kommentar
パッチありがとうございます。
すべてのパターンをチェックすることはできませんでしたが、
は正しい方針で、実装はうまくうごいているように思います。
もしよければ直接コミットしていただくのはいかがでしょうか?
わからないことなどあれば気軽にお声かけください。
登録しなくてもつかえます。