svnno****@sourc*****
svnno****@sourc*****
2017年 7月 13日 (木) 19:01:38 JST
Revision: 6861 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6861 Author: doda Date: 2017-07-13 19:01:38 +0900 (Thu, 13 Jul 2017) Log Message: ----------- LtoR 転送と Dynamic 転送で同じポートだった場合にはじくようにした。 FWD_compare_specs() で FWD_LOCAL_TO_REMOTE と FWD_LOCAL_DYNAMIC を同一視 するようにしている。 FWC_compare_specs() は server_listening_specs の検索でも使っているけれど remote の扱いは変わらないようにしているので影響ないはず。 Modified Paths: -------------- trunk/ttssh2/ttxssh/fwd.c trunk/ttssh2/ttxssh/fwd.h -------------- next part -------------- Modified: trunk/ttssh2/ttxssh/fwd.c =================================================================== --- trunk/ttssh2/ttxssh/fwd.c 2017-07-13 10:01:34 UTC (rev 6860) +++ trunk/ttssh2/ttxssh/fwd.c 2017-07-13 10:01:38 UTC (rev 6861) @@ -886,7 +886,7 @@ int delta = spec1->from_port - spec2->from_port; if (delta == 0) { - delta = spec1->type - spec2->type; + delta = FwdListeningType(spec1->type) - FwdListeningType(spec2->type); } if (delta == 0) { Modified: trunk/ttssh2/ttxssh/fwd.h =================================================================== --- trunk/ttssh2/ttxssh/fwd.h 2017-07-13 10:01:34 UTC (rev 6860) +++ trunk/ttssh2/ttxssh/fwd.h 2017-07-13 10:01:38 UTC (rev 6861) @@ -78,9 +78,18 @@ /* Request types */ typedef enum { - FWD_NONE, FWD_LOCAL_TO_REMOTE, FWD_REMOTE_TO_LOCAL, FWD_REMOTE_X11_TO_LOCAL, FWD_LOCAL_DYNAMIC + FWD_NONE, + FWD_LOCAL_TO_REMOTE, + FWD_LOCAL_DYNAMIC, + FWD_LISTENING_LOCAL, // 比較用のダミー。ローカルで listen するのはこれより上にする + FWD_REMOTE_TO_LOCAL, + FWD_REMOTE_X11_TO_LOCAL } FWDType; +#define FwdTypeIsLocal(type) ((type) > FWD_NONE && (type) < FWD_LISTENING_LOCAL) +#define FwdTypeIsRemote(type) ((type) > FWD_LISTENING_LOCAL) +#define FwdListeningType(type) (FwdTypeIsLocal(type)?FWD_LOCAL_TO_REMOTE:(type)) + /* If 'type' is FWD_REMOTE_X11_TO_LOCAL, then from_port must be -1, to_port must be 6000 + display number, and to_host must be the desired X server host.