[Ttssh2-commit] [6861] LtoR 転送と Dynamic 転送で同じポートだった場合にはじくようにした。

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.



Ttssh2-commit メーリングリストの案内