| 33 |
|
|
| 34 |
#include "ttxssh.h" |
#include "ttxssh.h" |
| 35 |
#include "util.h" |
#include "util.h" |
| 36 |
|
#include "pkt.h" |
| 37 |
|
|
| 38 |
//#define READAMOUNT 60000 |
//#define READAMOUNT 60000 |
| 39 |
// 60000 -> 65536 へ拡張。SSH2ではwindow制御を行うため、SSH2のwindow sizeと |
// 60000 -> 65536 へ拡張。SSH2ではwindow制御を行うため、SSH2のwindow sizeと |
| 40 |
// 合わせておく必要がある。(2004.10.17 yutaka) |
// 合わせておく必要がある。(2004.10.17 yutaka) |
| 41 |
#define READAMOUNT 65536 |
//#define READAMOUNT 65536 |
| 42 |
|
// 65536 -> 131072 へ拡張。(2007.10.29 maya) |
| 43 |
|
#define READAMOUNT CHAN_SES_WINDOW_DEFAULT |
| 44 |
|
|
| 45 |
void PKT_init(PTInstVar pvar) |
void PKT_init(PTInstVar pvar) |
| 46 |
{ |
{ |
| 151 |
|
|
| 152 |
while (SSH_is_any_payload(pvar) ? buflen > 0 : !connection_closed) { |
while (SSH_is_any_payload(pvar) ? buflen > 0 : !connection_closed) { |
| 153 |
if (SSH_is_any_payload(pvar)) { |
if (SSH_is_any_payload(pvar)) { |
| 154 |
/* ssh.c has some session data for us to give to Teraterm. */ |
/* ssh.c has some session data for us to give to Tera Term. */ |
| 155 |
int grabbed = SSH_extract_payload(pvar, buf, buflen); |
int grabbed = SSH_extract_payload(pvar, buf, buflen); |
| 156 |
|
|
| 157 |
amount_in_buf += grabbed; |
amount_in_buf += grabbed; |
| 185 |
SSH2_send_kexinit(pvar); |
SSH2_send_kexinit(pvar); |
| 186 |
} |
} |
| 187 |
|
|
| 188 |
|
} else { |
| 189 |
|
// reset flag to re-read server ID (2008.1.24 yutaka) |
| 190 |
|
pvar->pkt_state.seen_newline = 0; |
| 191 |
|
|
| 192 |
} |
} |
| 193 |
|
|
| 194 |
pvar->pkt_state.datastart += i; |
pvar->pkt_state.datastart += i; |
| 241 |
pvar->pkt_state.datastart += total_packet_size; |
pvar->pkt_state.datastart += total_packet_size; |
| 242 |
pvar->pkt_state.datalen -= total_packet_size; |
pvar->pkt_state.datalen -= total_packet_size; |
| 243 |
|
|
| 244 |
} else if (total_packet_size > 4 * 1024 * 1024) { |
} else if (total_packet_size > PACKET_MAX_SIZE) { |
| 245 |
// 4MBを超える巨大なパケットが届いたら、異常終了する。 |
// 4MBを超える巨大なパケットが届いたら、異常終了する。 |
| 246 |
// 実際にはデータ化けで復号失敗時に、誤認識することが多い。 |
// 実際にはデータ化けで復号失敗時に、誤認識することが多い。 |
| 247 |
UTIL_get_lang_msg("MSG_PKT_OVERSIZED_ERROR", pvar, |
UTIL_get_lang_msg("MSG_PKT_OVERSIZED_ERROR", pvar, |