[ttssh2-commit] [10495] ttxsshのログをデバグ出力に出せるようにした

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2023年 1月 16日 (月) 00:06:40 JST


Revision: 10495
          https://osdn.net/projects/ttssh2/scm/svn/commits/10495
Author:   zmatsuo
Date:     2023-01-16 00:06:39 +0900 (Mon, 16 Jan 2023)
Log Message:
-----------
ttxsshのログをデバグ出力に出せるようにした

- 通常は従来どおりファイルに出力する
- ttxssh.c logputs() 内 outputdebugstring を true にすると OutputDebugString() が使用される

Modified Paths:
--------------
    trunk/ttssh2/ttxssh/fwd-socks.c
    trunk/ttssh2/ttxssh/ssh.c
    trunk/ttssh2/ttxssh/ttxssh.c

-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/fwd-socks.c
===================================================================
--- trunk/ttssh2/ttxssh/fwd-socks.c	2023-01-15 15:06:29 UTC (rev 10494)
+++ trunk/ttssh2/ttxssh/fwd-socks.c	2023-01-15 15:06:39 UTC (rev 10495)
@@ -101,7 +101,7 @@
 	return closure;
 }
 
-void ClearRemoteConnectFlag(FWDDynamicFilterClosure *closure)
+static void ClearRemoteConnectFlag(FWDDynamicFilterClosure *closure)
 {
 	PTInstVar pvar = closure->pvar;
 	FWDChannel *c = pvar->fwd_state.channels + closure->channel_num;
@@ -122,6 +122,7 @@
 	FWDChannel *c = pvar->fwd_state.channels + closure->channel_num;
 
 	logprintf(LOG_LEVEL_VERBOSE, "%s: sending %d bytes.", __FUNCTION__, len);
+	//logprintf_hexdump(LOG_LEVEL_VERBOSE, data, len, "%s: sending %d bytes.", __FUNCTION__, len);
 
 	return UTIL_sock_buffered_write(pvar, &c->writebuf, dummy_blocking_write, c->local_socket, data, len);
 }
@@ -198,7 +199,7 @@
 	unsigned char addr[4];
 };
 
-int parse_socks4_request(FWDDynamicFilterClosure *closure, unsigned char *buff, unsigned int bufflen)
+static int parse_socks4_request(FWDDynamicFilterClosure *closure, unsigned char *buff, unsigned int bufflen)
 {
 	struct socks4_header s4hdr;
 	unsigned char addrbuff[NI_MAXHOST];
@@ -273,7 +274,7 @@
 	return 1;
 }
 
-int parse_socks5_init_request(FWDDynamicFilterClosure *closure, unsigned char *buff, unsigned int bufflen)
+static int parse_socks5_init_request(FWDDynamicFilterClosure *closure, unsigned char *buff, unsigned int bufflen)
 {
 	unsigned int authmethod_count;
 	unsigned int i;
@@ -320,7 +321,7 @@
 	unsigned char addr_len;
 };
 
-int parse_socks5_connect_request(FWDDynamicFilterClosure *closure, unsigned char *buff, unsigned int bufflen)
+static int parse_socks5_connect_request(FWDDynamicFilterClosure *closure, unsigned char *buff, unsigned int bufflen)
 {
 	struct socks5_header s5hdr;
 	unsigned char addr[NI_MAXHOST];
@@ -407,7 +408,7 @@
 	return 1;
 }
 
-FwdFilterResult parse_client_request(FWDDynamicFilterClosure *closure, int *len, unsigned char **buf)
+static FwdFilterResult parse_client_request(FWDDynamicFilterClosure *closure, int *len, unsigned char **buf)
 {
 	unsigned char *request = closure->request_buf;
 	unsigned int reqlen, newlen;

Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c	2023-01-15 15:06:29 UTC (rev 10494)
+++ trunk/ttssh2/ttxssh/ssh.c	2023-01-15 15:06:39 UTC (rev 10495)
@@ -201,6 +201,7 @@
 {
 	int i, found;
 	Channel_t *c;
+	logprintf(LOG_LEVEL_VERBOSE, "%s: local_num %d", __FUNCTION__, local_num);
 
 	found = -1;
 	for (i = 0 ; i < CHANNEL_MAX ; i++) {

Modified: trunk/ttssh2/ttxssh/ttxssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ttxssh.c	2023-01-15 15:06:29 UTC (rev 10494)
+++ trunk/ttssh2/ttxssh/ttxssh.c	2023-01-15 15:06:39 UTC (rev 10495)
@@ -96,6 +96,7 @@
 #include "asprintf.h"
 #include "win32helper.h"
 #include "comportinfo.h"
+#include "asprintf.h"
 
 #include "libputty.h"
 
@@ -777,26 +778,34 @@
 void logputs(int level, char *msg)
 {
 	if (level <= pvar->settings.LogLevel) {
+		char *buf;
+		char *strtime;
+		int len;
 		int file;
+		BOOL enable_log = TRUE;
+		BOOL enable_outputdebugstring = FALSE;
 
-		wchar_t *fname = get_log_dir_relative_nameW(L"TTSSH.LOG");
-		file = _wopen(fname, _O_RDWR | _O_APPEND | _O_CREAT | _O_TEXT,
-		              _S_IREAD | _S_IWRITE);
-		free(fname);
+		strtime = mctimelocal("%Y-%m-%d %H:%M:%S.%NZ", TRUE);
+		len = asprintf(&buf, "%s [%lu] %s\n",
+					   strtime, GetCurrentProcessId(), msg);
 
-		if (file >= 0) {
-			char *strtime = mctimelocal("%Y-%m-%d %H:%M:%S.%NZ", TRUE);
-			DWORD processid;
-			char tmp[26];
+		if (enable_log) {
+			wchar_t *fname = get_log_dir_relative_nameW(L"TTSSH.LOG");
+			file = _wopen(fname, _O_RDWR | _O_APPEND | _O_CREAT | _O_TEXT,
+						  _S_IREAD | _S_IWRITE);
+			free(fname);
 
-			_write(file, strtime, strlen(strtime));
-			processid = GetCurrentProcessId();
-			_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, " [%lu] ",processid);
-			_write(file, tmp, strlen(tmp));
-			_write(file, msg, strlen(msg));
-			_write(file, "\n", 1);
-			_close(file);
+			if (file >= 0) {
+				_write(file, buf, len - 1);	// len includes '\0'
+				_close(file);
+			}
 		}
+
+		if (enable_outputdebugstring) {
+			OutputDebugStringA(buf);
+		}
+
+		free(buf);
 	}
 }
 


ttssh2-commit メーリングリストの案内
Back to archive index