scmno****@osdn*****
scmno****@osdn*****
2018年 1月 11日 (木) 22:20:00 JST
Revision: 7019 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/7019 Author: doda Date: 2018-01-11 22:20:00 +0900 (Thu, 11 Jan 2018) Log Message: ----------- パケットハンドラ関数からは pvar->ssh_state 構造体を直接いじらないようにする 方針決定の試験実装の為、とりあえず handle_SSH2_kexinit() のみ。 r7014 のコミットログにも書いたが ssh_state.payloadlen と ssh_state.payload の長さは対応していない。 これは分かりづらいので、ハンドラ関数からは ssh_state 構造体を直接いじらずに マクロを利用して、残りペイロードへのポインタ / 残りペイロード長を取り出す ようにする。 Revision Links: -------------- http://sourceforge.jp/projects/ttssh2/scm/svn/commits/7014 Modified Paths: -------------- trunk/ttssh2/ttxssh/ssh.c -------------- next part -------------- Modified: trunk/ttssh2/ttxssh/ssh.c =================================================================== --- trunk/ttssh2/ttxssh/ssh.c 2018-01-11 13:19:57 UTC (rev 7018) +++ trunk/ttssh2/ttxssh/ssh.c 2018-01-11 13:20:00 UTC (rev 7019) @@ -133,6 +133,11 @@ static void ssh2_scp_free_packetlist(Channel_t *c); static void get_window_pixel_size(PTInstVar pvar, int *x, int *y); +// \x83}\x83N\x83\x8D +#define remained_payload(pvar) ((pvar)->ssh_state.payload + payload_current_offset(pvar)) +#define remained_payloadlen(pvar) ((pvar)->ssh_state.payloadlen - (pvar)->ssh_state.payload_grabbed) +#define payload_current_offset(pvar) ((pvar)->ssh_state.payload_grabbed - 1) + // // Global request confirm // @@ -4845,8 +4850,8 @@ SSH2_send_kexinit(pvar); } - data = pvar->ssh_state.payload; - len = pvar->ssh_state.payloadlen - 1; + data = remained_payload(pvar); + len = remained_payloadlen(pvar); // KEX \x82̍Ō\xE3\x82\xC5 hash (session-id) \x82\xF0\x8Cv\x8EZ\x82\xB7\x82\xE9\x82̂Ɏg\x82\xA4\x82̂ŕۑ\xB6\x82\xB5\x82Ă\xA8\x82\xAD if (pvar->peer_kex != NULL) {