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); } }