From cdcf0a8cac3a50269e3b09c1a1cbc287da0669c4 Mon Sep 17 00:00:00 2001 From: Koichiro Iwao Date: Wed, 18 Sep 2019 06:39:21 +0000 Subject: [PATCH] security/softether-devel: make LogFileList command[1] work properly as well as r512198. Also config backup function should work now. [1] https://www.softether.org/4-docs/1-manual/6._Command_Line_Management_Utility_Manual/6.3_VPN_Server_%2F%2F_VPN_Bridge_Management_Command_Reference_(For_Entire_Server)#6.3.55_.22LogFileList.22:_Get_List_of_Log_Files Sponsored by: HAW International, Inc. --- security/softether-devel/Makefile | 59 +-- .../files/patch-chain-certs-dir | 31 -- .../files/patch-log-db-pid-dir | 429 ++++++++++++++++++ security/softether-devel/files/patch-piddir | 29 -- security/softether-devel/files/pkg-message.in | 1 + security/softether-devel/pkg-plist | 1 + 6 files changed, 443 insertions(+), 107 deletions(-) delete mode 100644 security/softether-devel/files/patch-chain-certs-dir create mode 100644 security/softether-devel/files/patch-log-db-pid-dir delete mode 100644 security/softether-devel/files/patch-piddir diff --git a/security/softether-devel/Makefile b/security/softether-devel/Makefile index e97d120bdfc3..1e7eeaac4a9c 100644 --- a/security/softether-devel/Makefile +++ b/security/softether-devel/Makefile @@ -2,7 +2,7 @@ PORTNAME= softether DISTVERSION= 4.30-9700-beta -#PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= security net-vpn MASTER_SITES= https://www.softether-download.com/files/softether/v${DISTVERSION}-2019.07.13-tree/Source_Code/ PKGNAMESUFFIX= -devel @@ -42,8 +42,9 @@ PORTDOCS= AUTHORS.TXT ChangeLog LICENSE README THIRD_PARTY.TXT WARNING.TXT SE_DBDIR?= /var/db/${PORTNAME} SE_LOGDIR?= /var/log/${PORTNAME} -PLIST_SUB= SE_DBDIR="${SE_DBDIR}" SE_LOGDIR="${SE_LOGDIR}" -SUB_LIST= SE_DBDIR="${SE_DBDIR}" SE_LOGDIR="${SE_LOGDIR}" +SE_PIDDIR?= /var/run/${PORTNAME} +PLIST_SUB= SE_DBDIR="${SE_DBDIR}" SE_LOGDIR="${SE_LOGDIR}" SE_PIDDIR="${SE_PIDDIR}" +SUB_LIST= SE_DBDIR="${SE_DBDIR}" SE_LOGDIR="${SE_LOGDIR}" SE_PIDDIR="${SE_PIDDIR}" SUB_FILES= pkg-message vpncmd CPPFLAGS+= -I${LOCALBASE}/include @@ -59,49 +60,11 @@ ALL_TARGET= build post-patch: # SoftEther scatters logs, config files and PID files in PREFIX/libexec # directory. To write them in the right place, replace it. - ${REINPLACE_CMD} \ - -e "s|@vpn_server_template|${SE_DBDIR}/vpn_server_template|" \ - -e "s|@vpn_server|${SE_DBDIR}/vpn_server|" \ - -e "s|@vpn_bridge|${SE_DBDIR}/vpn_bridge|" \ - -e "s|@vpn_gate_svc|${SE_DBDIR}/vpn_gate_svc|" \ - -e "s|@vpn_gate_relay|${SE_DBDIR}/vpn_gate_relay|" \ - ${WRKSRC}/src/Cedar/Server.c - - ${REINPLACE_CMD} \ - -e "s|@adminip|${SE_DBDIR}/adminip|" \ - -e "s|@etherlogger|${SE_DBDIR}/etherlogger|" \ - -e "s|@vpn_client|${SE_DBDIR}/vpn_client|" \ - -e "s|@vpn_router|${SE_DBDIR}/vpn_router|" \ - -e "s|@custom|${SE_DBDIR}/custom|" \ - -e "s|@backup|${SE_DBDIR}/backup|" \ - -e "s|@save_binary|${SE_DBDIR}/save_binary|" \ - -e "s|@lang|${SE_DBDIR}/lang|" \ - -e "s|@azureserver|${SE_DBDIR}/azureserver|" \ - -e "s|@server_log|${SE_LOGDIR}/server|" \ - -e "s|@security_log|${SE_LOGDIR}/security|" \ - -e "s|@packet_log|${SE_LOGDIR}/packet|" \ - -e "s|@secure_nat_log|${SE_LOGDIR}/secure_nat|" \ - -e "s|@client_log|${SE_LOGDIR}/client|" \ - -e "s|@tiny_log|${SE_LOGDIR}/tiny|" \ - -e "s|@carrier_log|${SE_LOGDIR}/carrier|" \ - -e "s|@etherlogger_log|${SE_LOGDIR}/etherlogger|" \ - ${WRKSRC}/src/Cedar/Cedar.h \ - ${WRKSRC}/src/Cedar/Client.h \ - ${WRKSRC}/src/Cedar/Nat.h \ - ${WRKSRC}/src/Cedar/Server.c \ - ${WRKSRC}/src/Mayaqua/Cfg.c \ - ${WRKSRC}/src/Mayaqua/Cfg.h \ - ${WRKSRC}/src/Mayaqua/Table.h - - ${REINPLACE_CMD} \ - -e "s|abort_error_log\.txt|${SE_LOGDIR}/abort_error_log.txt|" \ - ${WRKSRC}/src/Mayaqua/Kernel.c - ${REINPLACE_CMD} \ -e "s|%%SE_DBDIR%%|${SE_DBDIR}|g" \ - ${WRKSRC}/src/Cedar/Protocol.c \ - ${WRKSRC}/src/Mayaqua/Unix.c \ - ${WRKSRC}/src/Mayaqua/Network.c + -e "s|%%SE_LOGDIR%%|${SE_LOGDIR}|g" \ + -e "s|%%SE_PIDDIR%%|${SE_PIDDIR}|g" \ + ${WRKSRC}/src/Mayaqua/FileIO.c # skip configure at all and copy the corresponding Makefile in place .if ${ARCH} != "amd64" @@ -126,9 +89,11 @@ do-install: .for i in vpnbridge vpnclient vpncmd vpnserver @${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/${PORTNAME}/${i} .endfor - @${MKDIR} ${STAGEDIR}${DOCSDIR} - @${MKDIR} ${STAGEDIR}${SE_DBDIR} - @${MKDIR} ${STAGEDIR}${SE_LOGDIR} + @${MKDIR} \ + ${STAGEDIR}${DOCSDIR} \ + ${STAGEDIR}${SE_DBDIR} \ + ${STAGEDIR}${SE_LOGDIR} \ + ${STAGEDIR}${SE_PIDDIR} .for doc in ${PORTDOCS} ${INSTALL_DATA} ${WRKSRC}/${doc} ${STAGEDIR}${DOCSDIR} .endfor diff --git a/security/softether-devel/files/patch-chain-certs-dir b/security/softether-devel/files/patch-chain-certs-dir deleted file mode 100644 index 7a962c115e04..000000000000 --- a/security/softether-devel/files/patch-chain-certs-dir +++ /dev/null @@ -1,31 +0,0 @@ ---- src/Cedar/Protocol.c.orig 2019-02-03 19:43:50 UTC -+++ src/Cedar/Protocol.c -@@ -58,7 +58,7 @@ bool TryGetRootCertChain(LIST *o, X *x, bool auto_save - wchar_t exedir[MAX_SIZE]; - - GetExeDirW(exedir, sizeof(exedir)); -- CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); -+ CombinePathW(dirname, sizeof(dirname), L"%%SE_DBDIR%%", L"chain_certs"); - MakeDirExW(dirname); - - if (auto_save) -@@ -365,7 +365,7 @@ void AddAllChainCertsToCertList(LIST *o) - - GetExeDirW(exedir, sizeof(exedir)); - -- CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); -+ CombinePathW(dirname, sizeof(dirname), L"%%SE_DBDIR%%", L"chain_certs"); - - MakeDirExW(dirname); - ---- src/Mayaqua/Network.c.orig 2019-02-03 19:43:50 UTC -+++ src/Mayaqua/Network.c -@@ -11520,7 +11520,7 @@ void AddChainSslCertOnDirectory(struct ssl_ctx_st *ctx - - GetExeDirW(exedir, sizeof(exedir)); - -- CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); -+ CombinePathW(dirname, sizeof(dirname), L"%%SE_DBDIR%%", L"chain_certs"); - - MakeDirExW(dirname); - diff --git a/security/softether-devel/files/patch-log-db-pid-dir b/security/softether-devel/files/patch-log-db-pid-dir new file mode 100644 index 000000000000..8538d16572b0 --- /dev/null +++ b/security/softether-devel/files/patch-log-db-pid-dir @@ -0,0 +1,429 @@ +--- src/Cedar/Admin.c.orig 2019-09-18 01:40:24 UTC ++++ src/Cedar/Admin.c +@@ -11482,7 +11482,7 @@ void SiReadLocalLogFile(SERVER *s, char *filepath, UIN + + Zero(t, sizeof(RPC_READ_LOG_FILE)); + +- GetExeDir(exe_dir, sizeof(exe_dir)); ++ GetLogDir(exe_dir, sizeof(exe_dir)); + Format(full_path, sizeof(full_path), "%s/%s", exe_dir, filepath); + + // Read file +--- src/Cedar/Cedar.h.orig 2019-09-18 01:40:24 UTC ++++ src/Cedar/Cedar.h +@@ -502,22 +502,26 @@ + #define LOG_ENGINE_BUFFER_CACHE_SIZE_MAX (10 * 1024 * 1024) // Write cache size + + // Constant such as a file name +-#define SERVER_LOG_DIR_NAME "@server_log" ++#define SERVER_LOG_DIR "server" ++#define SERVER_LOG_DIR_NAME "@"SERVER_LOG_DIR + #define BRIDGE_LOG_DIR_NAME SERVER_LOG_DIR_NAME + #define SERVER_LOG_PERFIX "vpn" + +-#define HUB_SECURITY_LOG_DIR_NAME "@security_log" +-#define HUB_SECURITY_LOG_FILE_NAME "@security_log/%s" ++#define HUB_SECURITY_LOG_DIR "security" ++#define HUB_SECURITY_LOG_DIR_NAME "@"HUB_SECURITY_LOG_DIR ++#define HUB_SECURITY_LOG_FILE_NAME HUB_SECURITY_LOG_DIR_NAME"/%s" + #define HUB_SECURITY_LOG_PREFIX "sec" +-#define HUB_PACKET_LOG_DIR_NAME "@packet_log" +-#define HUB_PACKET_LOG_FILE_NAME "@packet_log/%s" ++#define HUB_PACKET_LOG_DIR "packet" ++#define HUB_PACKET_LOG_DIR_NAME "@"HUB_PACKET_LOG_DIR ++#define HUB_PACKET_LOG_FILE_NAME HUB_PACKET_LOG_DIR_NAME"/%s" + #define HUB_PACKET_LOG_PREFIX "pkt" + +-#define NAT_LOG_DIR_NAME "@secure_nat_log" +-#define NAT_LOG_FILE_NAME "@secure_nat_log/%s" ++#define NAT_LOG_DIR "secure_nat" ++#define NAT_LOG_DIR_NAME "@"NAT_LOG_DIR ++#define NAT_LOG_FILE_NAME NAT_LOG_DIR_NAME"/%s" + #define NAT_LOG_PREFIX "snat" + +-#define CLIENT_LOG_DIR_NAME "@client_log" ++#define CLIENT_LOG_DIR_NAME "@client" + #define CLIENT_LOG_PREFIX "client" + + // Packet log settings +@@ -583,7 +587,7 @@ + // Expiration date of random size cache + #define RAND_SIZE_CACHE_EXPIRE (24 * 60 * 60 * 1000) + // Management allowed IP address list file name +-#define ADMINIP_TXT "@adminip.txt" ++#define ADMINIP_TXT "$adminip.txt" + + #define NON_SSL_MIN_COUNT 60 + #define NON_SSL_ENTRY_EXPIRES (10 * 60 * 1000) +@@ -634,9 +638,10 @@ + ////////////////////////////////////////////////////////////////////// + + #define EL_ADMIN_PORT 22888 +-#define EL_CONFIG_FILENAME "@etherlogger.config" +-#define EL_PACKET_LOG_DIR_NAME "@etherlogger_log" +-#define EL_PACKET_LOG_FILE_NAME "@etherlogger_log/%s" ++#define EL_CONFIG_FILENAME "$etherlogger.config" ++#define EL_PACKET_LOG_DIR "etherlogger" ++#define EL_PACKET_LOG_DIR_NAME "@"EL_PACKET_LOG_DIR ++#define EL_PACKET_LOG_FILE_NAME EL_PACKET_LOG_DIR_NAME"/%s" + #define EL_PACKET_LOG_PREFIX "pkt" + #define EL_LICENSE_CHECK_SPAN (10 * 1000) + +--- src/Cedar/Client.h.orig 2019-09-18 01:40:24 UTC ++++ src/Cedar/Client.h +@@ -116,7 +116,7 @@ + + + // Constants +-#define CLIENT_CONFIG_FILE_NAME "@vpn_client.config" ++#define CLIENT_CONFIG_FILE_NAME "$vpn_client.config" + #define CLIENT_DEFAULT_KEEPALIVE_HOST "keepalive.softether.org" + #define CLIENT_DEFAULT_KEEPALIVE_PORT 80 + #define CLIENT_DEFAULT_KEEPALIVE_INTERVAL KEEP_INTERVAL_DEFAULT +@@ -136,7 +136,7 @@ + #define CLIENT_WIN32_EXE_FILENAME_X64 "vpnclient_x64.exe" + #define CLIENT_WIN32_EXE_FILENAME_IA64 "vpnclient_ia64.exe" + +-#define CLIENT_CUSTOM_INI_FILENAME "@custom.ini" ++#define CLIENT_CUSTOM_INI_FILENAME "$custom.ini" + + #define CLIENT_GLOBAL_PULSE_NAME "clientglobalpulse" + +--- src/Cedar/Logging.c.orig 2019-09-18 01:40:24 UTC ++++ src/Cedar/Logging.c +@@ -111,11 +111,11 @@ static char *delete_targets[] = + "backup.vpn_server.config", + "backup.vpn_gate_svc.config", + "backup.etherlogger.config", +- "packet_log", +- "etherlogger_log", ++ HUB_PACKET_LOG_DIR, ++ EL_PACKET_LOG_DIR, + "secure_nat_log", +- "security_log", +- "server_log", ++ HUB_SECURITY_LOG_DIR, ++ SERVER_LOG_DIR, + "bridge_log", + "packet_log_archive", + "azure_log", +@@ -529,7 +529,7 @@ ERASER *NewEraser(LOG *log, UINT64 min_size) + + e = ZeroMalloc(sizeof(ERASER)); + +- GetExeDir(dir, sizeof(dir)); ++ GetLogDir(dir, sizeof(dir)); + + e->Log = log; + e->MinFreeSpace = min_size; +--- src/Cedar/Nat.h.orig 2019-09-18 01:40:24 UTC ++++ src/Cedar/Nat.h +@@ -106,7 +106,7 @@ + #define NAT_H + + // Constants +-#define NAT_CONFIG_FILE_NAME "@vpn_router.config" // NAT configuration file ++#define NAT_CONFIG_FILE_NAME "$vpn_router.config" // NAT configuration file + #define DEFAULT_NAT_ADMIN_PORT 2828 // Default port number for management + #define NAT_ADMIN_PORT_LISTEN_INTERVAL 1000 // Interval for trying to open a port for management + #define NAT_FILE_SAVE_INTERVAL (30 * 1000) // Interval to save +--- src/Cedar/Protocol.c.orig 2019-09-18 01:40:24 UTC ++++ src/Cedar/Protocol.c +@@ -874,7 +874,7 @@ bool TryGetRootCertChain(LIST *o, X *x, bool auto_save + wchar_t dirname[MAX_SIZE]; + wchar_t exedir[MAX_SIZE]; + +- GetExeDirW(exedir, sizeof(exedir)); ++ GetDbDirW(exedir, sizeof(exedir)); + CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); + MakeDirExW(dirname); + +@@ -1180,7 +1180,7 @@ void AddAllChainCertsToCertList(LIST *o) + return; + } + +- GetExeDirW(exedir, sizeof(exedir)); ++ GetDbDirW(exedir, sizeof(exedir)); + + CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); + +--- src/Cedar/Server.c.orig 2019-09-18 01:40:24 UTC ++++ src/Cedar/Server.c +@@ -106,12 +106,12 @@ + + static SERVER *server = NULL; + static LOCK *server_lock = NULL; +-char *SERVER_CONFIG_FILE_NAME = "@vpn_server.config"; +-char *SERVER_CONFIG_FILE_NAME_IN_CLIENT = "@vpn_gate_svc.config"; +-char *SERVER_CONFIG_FILE_NAME_IN_CLIENT_RELAY = "@vpn_gate_relay.config"; +-char *BRIDGE_CONFIG_FILE_NAME = "@vpn_bridge.config"; +-char *SERVER_CONFIG_TEMPLATE_NAME = "@vpn_server_template.config"; +-char *BRIDGE_CONFIG_TEMPLATE_NAME = "@vpn_server_template.config"; ++char *SERVER_CONFIG_FILE_NAME = "$vpn_server.config"; ++char *SERVER_CONFIG_FILE_NAME_IN_CLIENT = "$vpn_gate_svc.config"; ++char *SERVER_CONFIG_FILE_NAME_IN_CLIENT_RELAY = "$vpn_gate_relay.config"; ++char *BRIDGE_CONFIG_FILE_NAME = "$vpn_bridge.config"; ++char *SERVER_CONFIG_TEMPLATE_NAME = "$vpn_server_template.config"; ++char *BRIDGE_CONFIG_TEMPLATE_NAME = "$vpn_server_template.config"; + + static bool server_reset_setting = false; + +@@ -1105,16 +1105,16 @@ LIST *EnumLogFile(char *hubname) + hubname = NULL; + } + +- GetExeDir(exe_dir, sizeof(exe_dir)); ++ GetLogDir(exe_dir, sizeof(exe_dir)); + + // Enumerate in the server_log + if (hubname == NULL) + { +- EnumLogFileDir(o, "server_log"); ++ EnumLogFileDir(o, SERVER_LOG_DIR); + } + + // Enumerate in the packet_log +- Format(tmp, sizeof(tmp), "%s/packet_log", exe_dir); ++ Format(tmp, sizeof(tmp), "%s/"HUB_PACKET_LOG_DIR, exe_dir); + + if (hubname == NULL) + { +@@ -1130,7 +1130,7 @@ LIST *EnumLogFile(char *hubname) + { + char dir_name[MAX_PATH]; + +- Format(dir_name, sizeof(dir_name), "packet_log/%s", e->FileName); ++ Format(dir_name, sizeof(dir_name), HUB_PACKET_LOG_DIR"/%s", e->FileName); + + EnumLogFileDir(o, dir_name); + } +@@ -1143,13 +1143,13 @@ LIST *EnumLogFile(char *hubname) + { + char dir_name[MAX_PATH]; + +- Format(dir_name, sizeof(dir_name), "packet_log/%s", hubname); ++ Format(dir_name, sizeof(dir_name), HUB_PACKET_LOG_DIR"/%s", hubname); + + EnumLogFileDir(o, dir_name); + } + + // Enumerate in the security_log +- Format(tmp, sizeof(tmp), "%s/security_log", exe_dir); ++ Format(tmp, sizeof(tmp), "%s/"HUB_SECURITY_LOG_DIR, exe_dir); + + if (hubname == NULL) + { +@@ -1165,7 +1165,7 @@ LIST *EnumLogFile(char *hubname) + { + char dir_name[MAX_PATH]; + +- Format(dir_name, sizeof(dir_name), "security_log/%s", e->FileName); ++ Format(dir_name, sizeof(dir_name), HUB_SECURITY_LOG_DIR"/%s", e->FileName); + + EnumLogFileDir(o, dir_name); + } +@@ -1178,7 +1178,7 @@ LIST *EnumLogFile(char *hubname) + { + char dir_name[MAX_PATH]; + +- Format(dir_name, sizeof(dir_name), "security_log/%s", hubname); ++ Format(dir_name, sizeof(dir_name), HUB_SECURITY_LOG_DIR"/%s", hubname); + + EnumLogFileDir(o, dir_name); + } +@@ -1199,7 +1199,7 @@ void EnumLogFileDir(LIST *o, char *dirname) + return; + } + +- GetExeDir(exe_dir, sizeof(exe_dir)); ++ GetLogDir(exe_dir, sizeof(exe_dir)); + Format(dir_full_path, sizeof(dir_full_path), "%s/%s", exe_dir, dirname); + + dir = EnumDir(dir_full_path); +--- src/Cedar/Server.h.orig 2019-09-18 01:40:24 UTC ++++ src/Cedar/Server.h +@@ -143,7 +143,7 @@ extern char *SERVER_CONFIG_FILE_NAME; + + #define MAX_PUBLIC_PORT_NUM 128 + +-#define MEMBER_SELECTOR_TXT_FILENAME "@member_selector.config" ++#define MEMBER_SELECTOR_TXT_FILENAME "$member_selector.config" + #define MEMBER_SELECTOR_CONNECT_TIMEOUT 2000 + #define MEMBER_SELECTOR_DATA_TIMEOUT 5000 + +--- src/Mayaqua/Cfg.c.orig 2019-09-18 01:40:24 UTC ++++ src/Mayaqua/Cfg.c +@@ -130,12 +130,12 @@ void BackupCfgWEx(CFG_RW *rw, FOLDER *f, wchar_t *orig + } + + // Determine the directory name +- UniFormat(dirname, sizeof(dirname), L"@backup.%s", original[0] == L'@' ? original + 1 : original); ++ UniFormat(dirname, sizeof(dirname), L"$backup.%s", original[0] == L'$' ? original + 1 : original); + + // Determine the file name + LocalTime(&st); + UniFormat(datestr, sizeof(datestr), L"%04u%02u%02u%02u_%s", +- st.wYear, st.wMonth, st.wDay, st.wHour, original[0] == L'@' ? original + 1 : original); ++ st.wYear, st.wMonth, st.wDay, st.wHour, original[0] == L'$' ? original + 1 : original); + + if (revision_number == INFINITE) + { +@@ -144,7 +144,7 @@ void BackupCfgWEx(CFG_RW *rw, FOLDER *f, wchar_t *orig + else + { + UniFormat(filename, sizeof(filename), L"%08u_%s", +- revision_number, original[0] == L'@' ? original + 1 : original); ++ revision_number, original[0] == L'$' ? original + 1 : original); + } + + // Don't save if the date and time has not been changed +--- src/Mayaqua/Cfg.h.orig 2019-09-18 01:40:24 UTC ++++ src/Mayaqua/Cfg.h +@@ -108,7 +108,7 @@ + // Macro + //#define CHECK_CFG_NAME_EXISTS // Check duplication of the existing name + +-#define SAVE_BINARY_FILE_NAME_SWITCH L"@save_binary" ++#define SAVE_BINARY_FILE_NAME_SWITCH L"$save_binary" + + // Constants + #define TAG_DECLARE "declare" +--- src/Mayaqua/FileIO.c.orig 2019-09-18 01:40:24 UTC ++++ src/Mayaqua/FileIO.c +@@ -1460,6 +1460,36 @@ void GetExeNameW(wchar_t *name, UINT size) + UniStrCpy(name, size, exe_file_name_w); + } + ++void GetLogDir(char *name, UINT size) ++{ ++ Format(name, size, "%%SE_LOGDIR%%"); ++} ++ ++void GetLogDirW(wchar_t *name, UINT size) ++{ ++ UniFormat(name, size, L"%%SE_LOGDIR%%"); ++} ++ ++void GetDbDir(char *name, UINT size) ++{ ++ Format(name, size, "%%SE_DBDIR%%"); ++} ++ ++void GetDbDirW(wchar_t *name, UINT size) ++{ ++ UniFormat(name, size, L"%%SE_DBDIR%%"); ++} ++ ++void GetPidDir(char *name, UINT size) ++{ ++ Format(name, size, "%%SE_PIDDIR%%"); ++} ++ ++void GetPidDirW(wchar_t *name, UINT size) ++{ ++ UniFormat(name, size, L"%%SE_PIDDIR%%"); ++} ++ + // Initialization of the aquisition of the EXE file name + void InitGetExeName(char *arg) + { +@@ -2382,14 +2412,20 @@ void InnerFilePathW(wchar_t *dst, UINT size, wchar_t * + return; + } + +- if (src[0] != L'@') ++ if (src[0] != L'@' && src[0] != L'$') + { + NormalizePathW(dst, size, src); + } ++ else if (src[0] == L'$') ++ { ++ wchar_t dir[MAX_SIZE]; ++ GetDbDirW(dir, sizeof(dir)); ++ ConbinePathW(dst, size, dir, &src[1]); ++ } + else + { + wchar_t dir[MAX_SIZE]; +- GetExeDirW(dir, sizeof(dir)); ++ GetLogDirW(dir, sizeof(dir)); + ConbinePathW(dst, size, dir, &src[1]); + } + } +--- src/Mayaqua/FileIO.h.orig 2019-09-18 01:40:24 UTC ++++ src/Mayaqua/FileIO.h +@@ -340,6 +340,12 @@ void GetExeName(char *name, UINT size); + void GetExeNameW(wchar_t *name, UINT size); + void GetExeDir(char *name, UINT size); + void GetExeDirW(wchar_t *name, UINT size); ++void GetLogDir(char *name, UINT size); ++void GetLogDirW(wchar_t *name, UINT size); ++void GetDbDir(char *name, UINT size); ++void GetDbDirW(wchar_t *name, UINT size); ++void GetPidDir(char *name, UINT size); ++void GetPidDirW(wchar_t *name, UINT size); + void BuildHamcore(char *dst_filename, char *src_dir, bool unix_only); + int CompareHamcore(void *p1, void *p2); + void InitHamcore(); +--- src/Mayaqua/Network.c.orig 2019-09-18 01:40:24 UTC ++++ src/Mayaqua/Network.c +@@ -13048,7 +13048,7 @@ void AddChainSslCertOnDirectory(struct ssl_ctx_st *ctx + + o = NewListFast(NULL); + +- GetExeDirW(exedir, sizeof(exedir)); ++ GetDbDirW(exedir, sizeof(exedir)); + + CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); + +--- src/Mayaqua/Network.h.orig 2019-09-18 01:40:24 UTC ++++ src/Mayaqua/Network.h +@@ -150,7 +150,7 @@ struct DYN_VALUE + #define SSL_LOGGING_DIRNAME "@ssl_log" + + // Private IP list file +-#define PRIVATE_IP_TXT_FILENAME "@private_ip.txt" ++#define PRIVATE_IP_TXT_FILENAME "$private_ip.txt" + + // Start range of the random UDP port + #define RAND_UDP_PORT_START 5000 +--- src/Mayaqua/Table.h.orig 2019-09-18 01:40:24 UTC ++++ src/Mayaqua/Table.h +@@ -110,7 +110,7 @@ + #define LANGLIST_FILENAME "|languages.txt" + #define LANGLIST_FILENAME_WINE "|languages_wine.txt" + +-#define LANG_CONFIG_FILENAME L"@lang.config" ++#define LANG_CONFIG_FILENAME L"$lang.config" + #define LANG_CONFIG_TEMPLETE "|lang.config" + + // Language constant +--- src/Mayaqua/Unix.c.orig 2019-09-18 01:40:24 UTC ++++ src/Mayaqua/Unix.c +@@ -915,7 +915,7 @@ void *UnixNewSingleInstance(char *instance_name) + StrCpy(tmp, sizeof(tmp), instance_name); + } + +- GetExeDir(dir, sizeof(dir)); ++ GetPidDir(dir, sizeof(dir)); + + // File name generation + Format(name, sizeof(name), "%s/.%s", dir, tmp); +@@ -2367,7 +2367,7 @@ void UnixGenPidFileName(char *name, UINT size) + return; + } + +- GetExeDir(dir, sizeof(dir)); ++ GetPidDir(dir, sizeof(dir)); + + GetExeName(exe_name, sizeof(exe_name)); + StrCat(exe_name, sizeof(exe_name), ":pid_hash"); +@@ -2412,7 +2412,7 @@ void UnixGenCtlFileName(char *name, UINT size) + return; + } + +- GetExeDir(dir, sizeof(dir)); ++ GetPidDir(dir, sizeof(dir)); + + GetExeName(exe_name, sizeof(exe_name)); + StrCat(exe_name, sizeof(exe_name), ":pid_hash"); diff --git a/security/softether-devel/files/patch-piddir b/security/softether-devel/files/patch-piddir deleted file mode 100644 index c8375df27fcc..000000000000 --- a/security/softether-devel/files/patch-piddir +++ /dev/null @@ -1,29 +0,0 @@ ---- src/Mayaqua/Unix.c.orig 2019-02-03 19:43:50 UTC -+++ src/Mayaqua/Unix.c -@@ -774,7 +774,7 @@ void *UnixNewSingleInstance(char *instance_name) - GetExeDir(dir, sizeof(dir)); - - // File name generation -- Format(name, sizeof(name), "%s/.%s", dir, tmp); -+ Format(name, sizeof(name), "%%SE_DBDIR%%/.%s", tmp); - - fd = open(name, O_WRONLY); - if (fd == -1) -@@ -2194,7 +2194,7 @@ void UnixGenPidFileName(char *name, UINT size) - Md5(hash, exe_name, StrLen(exe_name)); - BinToStr(tmp1, sizeof(tmp1), hash, sizeof(hash)); - -- Format(name, size, "%s/.pid_%s", dir, tmp1); -+ Format(name, size, "%%SE_DBDIR%%/.pid_%s", tmp1); - } - - // Delete the PID file -@@ -2239,7 +2239,7 @@ void UnixGenCtlFileName(char *name, UINT size) - Md5(hash, exe_name, StrLen(exe_name)); - BinToStr(tmp1, sizeof(tmp1), hash, sizeof(hash)); - -- Format(name, size, "%s/.ctl_%s", dir, tmp1); -+ Format(name, size, "%%SE_DBDIR%%/.ctl_%s", tmp1); - } - - // Write the CTL file diff --git a/security/softether-devel/files/pkg-message.in b/security/softether-devel/files/pkg-message.in index 2daccabd9f27..69fc521a2999 100644 --- a/security/softether-devel/files/pkg-message.in +++ b/security/softether-devel/files/pkg-message.in @@ -20,6 +20,7 @@ When removing SoftEther VPN without the desire to reinstall, please ensure to remove the following dirctories as well: - %%SE_DBDIR%% - %%SE_LOGDIR%% +- %%SE_PIDDIR%% EOM } ] diff --git a/security/softether-devel/pkg-plist b/security/softether-devel/pkg-plist index 26279b02899c..261430cc4d5d 100644 --- a/security/softether-devel/pkg-plist +++ b/security/softether-devel/pkg-plist @@ -7,3 +7,4 @@ sbin/vpncmd @dir libexec/softether @dir %%SE_DBDIR%% @dir %%SE_LOGDIR%% +@dir %%SE_PIDDIR%%