From c4d1a10c2a72b0c326295a4c51fa2b972a3ba23b Mon Sep 17 00:00:00 2001 From: Ilya Shipitsin Date: Sat, 18 Aug 2018 17:55:24 +0500 Subject: [PATCH 1/3] src/Cedar/Command: remove dead code, null pointer dereference, unused functions, variables found by coverity, cppcheck [src/Cedar/Command.c:9378]: (style) Variable 'ret' is assigned a value that is never used. [src/Cedar/Command.c:9999]: (style) The function 'CmdEvalNetworkAndSubnetMask6' is never used. --- src/Cedar/Command.c | 205 +++++++++++++------------------------------- src/Cedar/Command.h | 1 - 2 files changed, 60 insertions(+), 146 deletions(-) diff --git a/src/Cedar/Command.c b/src/Cedar/Command.c index c3e62867..d8fb64c0 100644 --- a/src/Cedar/Command.c +++ b/src/Cedar/Command.c @@ -549,6 +549,10 @@ bool CheckFileSystem() FileClose(io); b = ReadDumpW(filename); + if(b == NULL) + { + return false; + } for (i = 0;i < b->Size;i++) { @@ -1335,7 +1339,7 @@ void TtsWorkerThread(THREAD *thread, void *param) // Notice the size information from the server to the client tmp64 = Endian64(ts->NumBytes); - Recv(ts->Sock, recv_buf_data, buf_size, false); + (void)Recv(ts->Sock, recv_buf_data, buf_size, false); if (ts->LastWaitTick == 0 || ts->LastWaitTick <= Tick64()) { @@ -2012,7 +2016,7 @@ void TtcWorkerThread(THREAD *thread, void *param) suprise[i] = '!'; } - ret = Send(ts->Sock, suprise, sizeof(suprise), false); + (void)Send(ts->Sock, suprise, sizeof(suprise), false); } ret = Recv(ts->Sock, &tmp64, sizeof(tmp64), false); @@ -9370,8 +9374,10 @@ UINT PsCaps(CONSOLE *c, char *cmd_name, wchar_t *str, void *param) { LIST *o; PS *ps = (PS *)param; - UINT ret = 0; CAPSLIST *t; + UINT i; + CT *ct; + o = ParseCommandList(c, cmd_name, str, NULL, 0); if (o == NULL) @@ -9382,56 +9388,43 @@ UINT PsCaps(CONSOLE *c, char *cmd_name, wchar_t *str, void *param) // RPC call t = ScGetCapsEx(ps->Rpc); - if (ret != ERR_NO_ERROR) - { - // An error has occured - CmdPrintError(c, ret); - FreeParamValueList(o); - return ret; - } - else - { - UINT i; - CT *ct; + ct = CtNewStandard(); - ct = CtNewStandard(); + for (i = 0;i < LIST_NUM(t->CapsList);i++) + { + CAPS *c = LIST_DATA(t->CapsList, i); + wchar_t title[MAX_SIZE]; + char name[256]; - for (i = 0;i < LIST_NUM(t->CapsList);i++) + Format(name, sizeof(name), "CT_%s", c->Name); + + UniStrCpy(title, sizeof(title), _UU(name)); + + if (UniIsEmptyStr(title)) { - CAPS *c = LIST_DATA(t->CapsList, i); - wchar_t title[MAX_SIZE]; - char name[256]; - - Format(name, sizeof(name), "CT_%s", c->Name); - - UniStrCpy(title, sizeof(title), _UU(name)); - - if (UniIsEmptyStr(title)) - { - UniFormat(title, sizeof(title), L"%S", (StrLen(c->Name) >= 2) ? c->Name + 2 : c->Name); - } - - if (StartWith(c->Name, "b_")) - { - bool icon_pass = c->Value == 0 ? false : true; - if (StrCmpi(c->Name, "b_must_install_pcap") == 0) - { - // Reverse only item of WinPcap - icon_pass = !icon_pass; - } - CtInsert(ct, title, c->Value == 0 ? _UU("CAPS_NO") : _UU("CAPS_YES")); - } - else - { - wchar_t str[64]; - UniToStru(str, c->Value); - CtInsert(ct, title, str); - } + UniFormat(title, sizeof(title), L"%S", (StrLen(c->Name) >= 2) ? c->Name + 2 : c->Name); } - CtFree(ct, c); + if (StartWith(c->Name, "b_")) + { + bool icon_pass = c->Value == 0 ? false : true; + if (StrCmpi(c->Name, "b_must_install_pcap") == 0) + { + // Reverse only item of WinPcap + icon_pass = !icon_pass; + } + CtInsert(ct, title, c->Value == 0 ? _UU("CAPS_NO") : _UU("CAPS_YES")); + } + else + { + wchar_t str[64]; + UniToStru(str, c->Value); + CtInsert(ct, title, str); + } } + CtFree(ct, c); + FreeCapsList(t); FreeParamValueList(o); @@ -10001,32 +9994,6 @@ bool CmdEvalNetworkAndSubnetMask4(CONSOLE *c, wchar_t *str, void *param) return true; } -bool CmdEvalNetworkAndSubnetMask6(CONSOLE *c, wchar_t *str, void *param) -{ - char tmp[MAX_SIZE]; - IP ip, mask; - // Validate arguments - if (c == NULL || str == NULL) - { - return false; - } - - UniToStr(tmp, sizeof(tmp), str); - - if (ParseIpAndSubnetMask6(tmp, &ip, &mask) == false) - { - c->Write(c, _UU("CMD_PARSE_IP_SUBNET_ERROR_1_6")); - return false; - } - - if (IsNetworkPrefixAddress6(&ip, &mask) == false) - { - c->Write(c, _UU("CMD_PARSE_IP_SUBNET_ERROR_3")); - return false; - } - - return true; -} // Evaluate the IP address and subnet mask bool CmdEvalHostAndSubnetMask4(CONSOLE *c, wchar_t *str, void *param) @@ -17131,7 +17098,7 @@ UINT64 StrToDateTime64(char *str) ret = INFINITE; if (a >= 1000 && a <= 9999 && b >= 1 && b <= 12 && c >= 1 && c <= 31 && - d >= 0 && d <= 23 && e >= 0 && e <= 59 && f >= 0 && f <= 59) + d <= 23 && e <= 59 && f <= 59) { SYSTEMTIME t; @@ -19020,31 +18987,18 @@ UINT PsNatEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param) } else { - bool ok = true; - t.UseNat = true; - if (ok == false) + StrCpy(t.HubName, sizeof(t.HubName), ps->HubName); + ret = ScSetSecureNATOption(ps->Rpc, &t); + + if (ret != ERR_NO_ERROR) { - // Parameter is invalid - ret = ERR_INVALID_PARAMETER; + // An error has occured CmdPrintError(c, ret); FreeParamValueList(o); return ret; } - else - { - StrCpy(t.HubName, sizeof(t.HubName), ps->HubName); - ret = ScSetSecureNATOption(ps->Rpc, &t); - - if (ret != ERR_NO_ERROR) - { - // An error has occured - CmdPrintError(c, ret); - FreeParamValueList(o); - return ret; - } - } } FreeParamValueList(o); @@ -19088,31 +19042,18 @@ UINT PsNatDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param) } else { - bool ok = true; - t.UseNat = false; - if (ok == false) + StrCpy(t.HubName, sizeof(t.HubName), ps->HubName); + ret = ScSetSecureNATOption(ps->Rpc, &t); + + if (ret != ERR_NO_ERROR) { - // Parameter is invalid - ret = ERR_INVALID_PARAMETER; + // An error has occured CmdPrintError(c, ret); FreeParamValueList(o); return ret; } - else - { - StrCpy(t.HubName, sizeof(t.HubName), ps->HubName); - ret = ScSetSecureNATOption(ps->Rpc, &t); - - if (ret != ERR_NO_ERROR) - { - // An error has occured - CmdPrintError(c, ret); - FreeParamValueList(o); - return ret; - } - } } FreeParamValueList(o); @@ -19177,34 +19118,21 @@ UINT PsNatSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param) } else { - bool ok = true; - t.Mtu = GetParamInt(o, "MTU"); t.NatTcpTimeout = GetParamInt(o, "TCPTIMEOUT"); t.NatUdpTimeout = GetParamInt(o, "UDPTIMEOUT"); t.SaveLog = GetParamYes(o, "LOG"); - if (ok == false) + StrCpy(t.HubName, sizeof(t.HubName), ps->HubName); + ret = ScSetSecureNATOption(ps->Rpc, &t); + + if (ret != ERR_NO_ERROR) { - // Parameter is invalid - ret = ERR_INVALID_PARAMETER; + // An error has occured CmdPrintError(c, ret); FreeParamValueList(o); return ret; } - else - { - StrCpy(t.HubName, sizeof(t.HubName), ps->HubName); - ret = ScSetSecureNATOption(ps->Rpc, &t); - - if (ret != ERR_NO_ERROR) - { - // An error has occured - CmdPrintError(c, ret); - FreeParamValueList(o); - return ret; - } - } } FreeParamValueList(o); @@ -19497,31 +19425,18 @@ UINT PsDhcpEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param) } else { - bool ok = true; - t.UseDhcp = true; - if (ok == false) + StrCpy(t.HubName, sizeof(t.HubName), ps->HubName); + ret = ScSetSecureNATOption(ps->Rpc, &t); + + if (ret != ERR_NO_ERROR) { - // Parameter is invalid - ret = ERR_INVALID_PARAMETER; + // An error has occured CmdPrintError(c, ret); FreeParamValueList(o); return ret; } - else - { - StrCpy(t.HubName, sizeof(t.HubName), ps->HubName); - ret = ScSetSecureNATOption(ps->Rpc, &t); - - if (ret != ERR_NO_ERROR) - { - // An error has occured - CmdPrintError(c, ret); - FreeParamValueList(o); - return ret; - } - } } FreeParamValueList(o); diff --git a/src/Cedar/Command.h b/src/Cedar/Command.h index 46820d1f..6ead4ed5 100644 --- a/src/Cedar/Command.h +++ b/src/Cedar/Command.h @@ -342,7 +342,6 @@ bool CmdEvalTcpOrUdp(CONSOLE *c, wchar_t *str, void *param); wchar_t *GetConnectionTypeStr(UINT type); bool CmdEvalHostAndSubnetMask4(CONSOLE *c, wchar_t *str, void *param); bool CmdEvalNetworkAndSubnetMask4(CONSOLE *c, wchar_t *str, void *param); -bool CmdEvalNetworkAndSubnetMask6(CONSOLE *c, wchar_t *str, void *param); bool CmdEvalIpAndMask4(CONSOLE *c, wchar_t *str, void *param); bool CmdEvalIpAndMask6(CONSOLE *c, wchar_t *str, void *param); wchar_t *GetLogSwitchStr(UINT i); From 29c991c487031e975839613eadfa60438dfe52d0 Mon Sep 17 00:00:00 2001 From: Ilya Shipitsin Date: Sat, 18 Aug 2018 18:59:51 +0500 Subject: [PATCH 2/3] src/Cedar/BridgeUnix: null pointer dereference resolved, unused variables, functions removed found by coverity, cppcheck [src/Cedar/BridgeUnix.c:270] -> [src/Cedar/BridgeUnix.c:279]: (style) Variable 'ret' is reassigned a value before the old one has been used. [src/Cedar/BridgeUnix.c:560] -> [src/Cedar/BridgeUnix.c:569]: (style) Variable 't' is reassigned a value before the old one has been used. [src/Cedar/BridgeUnix.c:1528] -> [src/Cedar/BridgeUnix.c:1537]: (style) Variable 'ret' is reassigned a value before the old one has been used. [src/Cedar/BridgeUnix.c:1278]: (style) Unused variable: c [src/Cedar/BridgeUnix.c:1090]: (style) The function 'DlipAttachRequest' is never used. --- src/Cedar/BridgeUnix.c | 75 +++++++++++++----------------------------- src/Cedar/BridgeUnix.h | 1 - 2 files changed, 22 insertions(+), 54 deletions(-) diff --git a/src/Cedar/BridgeUnix.c b/src/Cedar/BridgeUnix.c index 4640dd6c..797f6fcd 100644 --- a/src/Cedar/BridgeUnix.c +++ b/src/Cedar/BridgeUnix.c @@ -267,18 +267,19 @@ int UnixEthOpenRawSocket() // Is Ethernet device control supported? bool IsEthSupported() { - bool ret = false; -#if defined(UNIX_LINUX) - ret = IsEthSupportedLinux(); +#if defined(UNIX_LINUX) + return IsEthSupportedLinux(); #elif defined(UNIX_SOLARIS) - ret = IsEthSupportedSolaris(); + return IsEthSupportedSolaris(); #elif defined(BRIDGE_PCAP) - ret = true; + return true; #elif defined(BRIDGE_BPF) - ret = true; + return true; +#else + return false; #endif - return ret; + } #ifdef UNIX_LINUX @@ -557,19 +558,19 @@ TOKEN_LIST *GetEthList() } TOKEN_LIST *GetEthListEx(UINT *total_num_including_hidden, bool enum_normal, bool enum_rawip) { - TOKEN_LIST *t = NULL; #if defined(UNIX_LINUX) - t = GetEthListLinux(enum_normal, enum_rawip); + return GetEthListLinux(enum_normal, enum_rawip); #elif defined(UNIX_SOLARIS) - t = GetEthListSolaris(); + return GetEthListSolaris(); #elif defined(BRIDGE_PCAP) - t = GetEthListPcap(); + return GetEthListPcap(); #elif defined(BRIDGE_BPF) - t = GetEthListBpf(); + return GetEthListBpf(); +#else + return NULL; #endif - return t; } #ifdef UNIX_LINUX @@ -1086,37 +1087,6 @@ bool DlipBindRequest(int fd) return true; } -// Attach to the device -bool DlipAttachRequest(int fd, UINT devid) -{ - dl_attach_req_t req; - struct strbuf ctl; - int flags; - // Validate arguments - if (fd == -1) - { - return false; - } - - Zero(&req, sizeof(req)); - req.dl_primitive = DL_ATTACH_REQ; - req.dl_ppa = devid; - - Zero(&ctl, sizeof(ctl)); - ctl.maxlen = 0; - ctl.len = sizeof(req); - ctl.buf = (char *)&req; - - flags = 0; - - if (putmsg(fd, &ctl, NULL, flags) < 0) - { - return false; - } - - return true; -} - // Verify the ACK message bool DlipReceiveAck(int fd) { @@ -1275,7 +1245,6 @@ ETH *OpenEthPcap(char *name, bool local, bool tapmode, char *tapaddr) char errbuf[PCAP_ERRBUF_SIZE]; ETH *e; pcap_t *p; - CANCEL *c; // Validate arguments if (name == NULL || tapmode != false) @@ -1525,19 +1494,19 @@ ETH *OpenEthBpf(char *name, bool local, bool tapmode, char *tapaddr) // Open Ethernet adapter ETH *OpenEth(char *name, bool local, bool tapmode, char *tapaddr) { - ETH *ret = NULL; -#if defined(UNIX_LINUX) - ret = OpenEthLinux(name, local, tapmode, tapaddr); +#if defined(UNIX_LINUX) + return OpenEthLinux(name, local, tapmode, tapaddr); #elif defined(UNIX_SOLARIS) - ret = OpenEthSolaris(name, local, tapmode, tapaddr); + return OpenEthSolaris(name, local, tapmode, tapaddr); #elif defined(BRIDGE_PCAP) - ret = OpenEthPcap(name, local, tapmode, tapaddr); + return OpenEthPcap(name, local, tapmode, tapaddr); #elif defined(BRIDGE_BPF) - ret = OpenEthBpf(name, local, tapmode, tapaddr); + return OpenEthBpf(name, local, tapmode, tapaddr); +#else + return NULL; #endif - return ret; } typedef struct UNIXTHREAD @@ -2695,7 +2664,7 @@ void EthPutPacketLinuxIpRaw(ETH *e, void *data, UINT size) p = ParsePacket(data, size); - if (p->BroadcastPacket || Cmp(p->MacAddressDest, e->RawIpMyMacAddr, 6) == 0) + if (p && p->BroadcastPacket || Cmp(p->MacAddressDest, e->RawIpMyMacAddr, 6) == 0) { if (IsValidUnicastMacAddress(p->MacAddressSrc)) { diff --git a/src/Cedar/BridgeUnix.h b/src/Cedar/BridgeUnix.h index f2b4cfad..619cc970 100644 --- a/src/Cedar/BridgeUnix.h +++ b/src/Cedar/BridgeUnix.h @@ -227,7 +227,6 @@ void EthSendIpPacketInnerIpRaw(ETH *e, void *data, UINT size, USHORT protocol); #ifdef UNIX_SOLARIS // Function prototype for Solaris -bool DlipAttachRequest(int fd, UINT devid); bool DlipReceiveAck(int fd); bool DlipPromiscuous(int fd, UINT level); bool DlipBindRequest(int fd); From b0ebd1f1d5241e87c8118bd153830bf3a6ada2a7 Mon Sep 17 00:00:00 2001 From: Ilya Shipitsin Date: Sat, 18 Aug 2018 19:24:12 +0500 Subject: [PATCH 3/3] src/Cedar/Client: remove dead code, unused functions, variables found by coverity, cppcheck [src/Cedar/Client.c:10486]: (style) The function 'CiFreeInnerVPNServer' is never used. [src/Cedar/Client.c:10877]: (style) The function 'CiGetNumActiveSessions' is never used. [src/Cedar/Client.c:2042]: (style) The function 'CiHasAccountSensitiveInformationFile' is never used. [src/Cedar/Client.c:10469]: (style) The function 'CiNewInnerVPNServer' is never used. [src/Cedar/Client.c:1128]: (style) The function 'CncGetSessionId' is never used. [src/Cedar/Client.c:767]: (style) The function 'CncPasswordDlgHaltThread' is never used. [src/Cedar/Client.c:10681]: (style) The function 'CompareInternetSetting' is never used. [src/Cedar/Client.c:11060]: (style) The function 'CtGetClient' is never used. [src/Cedar/Client.c:5128]: (style) The function 'InRpcClientNotify' is never used. [src/Cedar/Client.c:4340]: (style) The function 'InRpcEnumObjectInSecure' is never used. [src/Cedar/Client.c:5140]: (style) The function 'OutRpcClientNotify' is never used. [src/Cedar/Client.c:5657]: (style) Condition 'reg_port!=0' is always false [src/Cedar/Client.c:683]: (style) Variable 'ret' is assigned a value that is never used. [src/Cedar/Client.c:725]: (style) Variable 'ret' is assigned a value that is never used. [src/Cedar/Client.c:1013]: (style) Variable 'param' is assigned a value that is never used. --- src/Cedar/Client.c | 244 +-------------------------------------------- src/Cedar/Client.h | 13 --- 2 files changed, 4 insertions(+), 253 deletions(-) diff --git a/src/Cedar/Client.c b/src/Cedar/Client.c index 9008b0fd..1c8812b8 100644 --- a/src/Cedar/Client.c +++ b/src/Cedar/Client.c @@ -680,7 +680,6 @@ SOCK *CncNicInfo(UI_NICINFO *info) { SOCK *s; PACK *p; - bool ret = false; // Validate arguments if (info == NULL) { @@ -722,7 +721,6 @@ SOCK *CncMsgDlg(UI_MSG_DLG *dlg) { SOCK *s; PACK *p; - bool ret = false; char *utf; // Validate arguments if (dlg == NULL) @@ -763,29 +761,6 @@ void CndMsgDlgFree(SOCK *s) ReleaseSock(s); } -// The thread to stop the password input dialog client forcibly -void CncPasswordDlgHaltThread(THREAD *thread, void *param) -{ - CNC_CONNECT_ERROR_DLG_THREAD_PARAM *dp = (CNC_CONNECT_ERROR_DLG_THREAD_PARAM *)param; - // Validate arguments - if (thread == NULL || param == NULL) - { - return; - } - - while (true) - { - if (dp->Session->Halt || dp->HaltThread) - { - break; - } - - Wait(dp->Event, 100); - } - - Disconnect(dp->Sock); -} - // Show the password input dialog bool CncPasswordDlg(SESSION *session, UI_PASSWORD_DLG *dlg) { @@ -1025,7 +1000,6 @@ SOCK *CncStatusPrinterWindowStart(SESSION *s) // Send a string to the status indicator void CncStatusPrinterWindowPrint(SOCK *s, wchar_t *str) { - CNC_STATUS_PRINTER_WINDOW_PARAM *param; PACK *p; // Validate arguments if (s == NULL || str == NULL) @@ -1033,8 +1007,6 @@ void CncStatusPrinterWindowPrint(SOCK *s, wchar_t *str) return; } - param = (CNC_STATUS_PRINTER_WINDOW_PARAM *)s->Param; - p = NewPack(); PackAddUniStr(p, "string", str); SendPack(s, p); @@ -1124,41 +1096,6 @@ void CncReleaseSocket() ReleaseSock(s); } -// Get the Session ID of the client notification service -UINT CncGetSessionId() -{ - SOCK *s = CncConnect(); - PACK *p; - UINT ret; - if (s == NULL) - { - return INFINITE; - } - - p = NewPack(); - PackAddStr(p, "function", "get_session_id"); - - SendPack(s, p); - FreePack(p); - - p = RecvPack(s); - if (p == NULL) - { - Disconnect(s); - ReleaseSock(s); - return INFINITE; - } - - ret = PackGetInt(p, "session_id"); - - FreePack(p); - - Disconnect(s); - ReleaseSock(s); - - return ret; -} - // Terminate the process of the client notification service void CncExit() { @@ -2039,28 +1976,6 @@ bool CiHasAccountSensitiveInformation(BUF *b) return ret; } -bool CiHasAccountSensitiveInformationFile(wchar_t *name) -{ - bool ret = false; - BUF *b; - // Validate arguments - if (name == NULL) - { - return false; - } - - b = ReadDumpW(name); - if (b == NULL) - { - return false; - } - - ret = CiHasAccountSensitiveInformation(b); - - FreeBuf(b); - - return ret; -} // Delete the sensitive information in the account information bool CiEraseSensitiveInAccount(BUF *b) @@ -4337,33 +4252,6 @@ void CiFreeEnumObjectInSecure(RPC_ENUM_OBJECT_IN_SECURE *a) } // RPC_ENUM_OBJECT_IN_SECURE -void InRpcEnumObjectInSecure(RPC_ENUM_OBJECT_IN_SECURE *e, PACK *p) -{ - UINT i; - // Validate arguments - if (e == NULL || p == NULL) - { - return; - } - - Zero(e, sizeof(RPC_ENUM_OBJECT_IN_SECURE)); - - e->NumItem = PackGetNum(p, "NumItem"); - e->hWnd = PackGetInt(p, "hWnd"); - e->ItemName = ZeroMalloc(sizeof(char *) * e->NumItem); - e->ItemType = ZeroMalloc(sizeof(bool) * e->NumItem); - - for (i = 0;i < e->NumItem;i++) - { - char name[MAX_SIZE]; - - Zero(name, sizeof(name)); - PackGetStrEx(p, "ItemName", name, sizeof(name), i); - e->ItemName[i] = CopyStr(name); - - e->ItemType[i] = PackGetIntEx(p, "ItemType", i) ? true : false; - } -} void OutRpcEnumObjectInSecure(PACK *p, RPC_ENUM_OBJECT_IN_SECURE *e) { UINT i; @@ -5125,29 +5013,6 @@ void OutRpcClientGetConnectionStatus(PACK *p, RPC_CLIENT_GET_CONNECTION_STATUS * } } -void InRpcClientNotify(RPC_CLIENT_NOTIFY *n, PACK *p) -{ - // Validate arguments - if (n == NULL || p == NULL) - { - return; - } - - Zero(n, sizeof(RPC_CLIENT_NOTIFY)); - - n->NotifyCode = PackGetInt(p, "NotifyCode"); -} -void OutRpcClientNotify(PACK *p, RPC_CLIENT_NOTIFY *n) -{ - // Validate arguments - if (n == NULL || p == NULL) - { - return; - } - - PackAddInt(p, "NotifyCode", n->NotifyCode); -} - // Notification main void CiNotifyMain(CLIENT *c, SOCK *s) { @@ -5781,9 +5646,7 @@ REMOTE_CLIENT *CcConnectRpcEx(char *server_name, char *password, bool *bad_pass, reg_port = 0; } } -#endif // OS_WIN32 - port_start = CLIENT_CONFIG_PORT - 1; if (reg_port != 0) { s = Connect(server_name, reg_port); @@ -5794,6 +5657,10 @@ REMOTE_CLIENT *CcConnectRpcEx(char *server_name, char *password, bool *bad_pass, } } +#endif // OS_WIN32 + + port_start = CLIENT_CONFIG_PORT - 1; + RETRY: port_start++; @@ -6351,11 +6218,6 @@ bool CiCheckCertProc(SESSION *s, CONNECTION *c, X *server_x, bool *expired) } } - if (old_x != NULL) - { - FreeX(old_x); - } - return false; #endif // OS_WIN32 } @@ -10470,35 +10332,6 @@ void CiWriteSettingToCfg(CLIENT *c, FOLDER *root) } } -// Create the inner VPN Server -SERVER *CiNewInnerVPNServer(CLIENT *c, bool relay_server) -{ - SERVER *s = NULL; - // Validate arguments - if (c == NULL) - { - return NULL; - } - - SetNatTLowPriority(); - - s = SiNewServerEx(false, true, relay_server); - - return s; -} - -// Stop the inner VPN Server -void CiFreeInnerVPNServer(CLIENT *c, SERVER *s) -{ - // Validate arguments - if (c == NULL || s == NULL) - { - return; - } - - SiReleaseServer(s); -} - // Apply settings of Inner VPN Server void CiApplyInnerVPNServerConfig(CLIENT *c) { @@ -10682,48 +10515,6 @@ CLIENT *CiNewClient() return c; } -// Examine whether two proxy server settings equal -bool CompareInternetSetting(INTERNET_SETTING *s1, INTERNET_SETTING *s2) -{ - // Validate arguments - if (s1 == NULL || s2 == NULL) - { - return false; - } - - if (s1->ProxyType != s2->ProxyType) - { - return false; - } - - if (s1->ProxyType == PROXY_DIRECT) - { - return true; - } - - if (s1->ProxyPort != s2->ProxyPort) - { - return false; - } - - if (StrCmp(s1->ProxyHostName, s2->ProxyHostName) != 0) - { - return false; - } - - if (StrCmp(s1->ProxyUsername, s2->ProxyUsername) != 0) - { - return false; - } - - if (StrCmp(s1->ProxyPassword, s2->ProxyPassword) != 0) - { - return false; - } - - return true; -} - // Send a global pulse void CiSendGlobalPulse(CLIENT *c) { @@ -10878,20 +10669,6 @@ void CiDecrementNumActiveSessions() Unlock(ci_active_sessions_lock); } -// Get the number of active sessions -UINT CiGetNumActiveSessions() -{ - UINT ret; - - Lock(ci_active_sessions_lock); - { - ret = ci_num_active_sessions; - } - Unlock(ci_active_sessions_lock); - - return ret; -} - // Release the client void CtReleaseClient(CLIENT *c) { @@ -11061,19 +10838,6 @@ void CiCheckOs() } } -// Get the client object -CLIENT *CtGetClient() -{ - if (client == NULL) - { - return NULL; - } - - AddRef(client->ref); - - return client; -} - // Client status indicator void CiClientStatusPrinter(SESSION *s, wchar_t *status) { diff --git a/src/Cedar/Client.h b/src/Cedar/Client.h index 75718089..540a18f9 100644 --- a/src/Cedar/Client.h +++ b/src/Cedar/Client.h @@ -602,9 +602,6 @@ void CcSetServiceToForegroundProcess(REMOTE_CLIENT *r); char *CiGetFirstVLan(CLIENT *c); void CiNormalizeAccountVLan(CLIENT *c); -bool CompareInternetSetting(INTERNET_SETTING *s1, INTERNET_SETTING *s2); - - void CnStart(); void CnListenerProc(THREAD *thread, void *param); @@ -646,7 +643,6 @@ SOCK *CncConnect(); SOCK *CncConnectEx(UINT timeout); void CncReleaseSocket(); void CncExit(); -UINT CncGetSessionId(); bool CncExecDriverInstaller(char *arg); SOCK *CncStatusPrinterWindowStart(SESSION *s); void CncStatusPrinterWindowPrint(SOCK *s, wchar_t *str); @@ -655,7 +651,6 @@ void CncStatusPrinterWindowThreadProc(THREAD *thread, void *param); bool CncConnectErrorDlg(SESSION *session, UI_CONNECTERROR_DLG *dlg); void CncConnectErrorDlgHaltThread(THREAD *thread, void *param); bool CncPasswordDlg(SESSION *session, UI_PASSWORD_DLG *dlg); -void CncPasswordDlgHaltThread(THREAD *thread, void *param); void CncCheckCert(SESSION *session, UI_CHECKCERT *dlg); void CncCheckCertHaltThread(THREAD *thread, void *param); bool CncSecureSignDlg(SECURE_SIGN *sign); @@ -666,7 +661,6 @@ void CncNicInfoFree(SOCK *s); void CtStartClient(); void CtStopClient(); -CLIENT *CtGetClient(); void CtReleaseClient(CLIENT *c); bool CtGetClientVersion(CLIENT *c, RPC_CLIENT_VERSION *ver); bool CtGetCmSetting(CLIENT *c, CM_SETTING *s); @@ -797,13 +791,9 @@ bool CiTryToParseAccount(BUF *b); bool CiTryToParseAccountFile(wchar_t *name); bool CiEraseSensitiveInAccount(BUF *b); bool CiHasAccountSensitiveInformation(BUF *b); -bool CiHasAccountSensitiveInformationFile(wchar_t *name); void CiApplyInnerVPNServerConfig(CLIENT *c); -SERVER *CiNewInnerVPNServer(CLIENT *c, bool relay_server); -void CiFreeInnerVPNServer(CLIENT *c, SERVER *s); void CiIncrementNumActiveSessions(); void CiDecrementNumActiveSessions(); -UINT CiGetNumActiveSessions(); BUF *EncryptPassword(char *password); BUF *EncryptPassword2(char *password); @@ -828,7 +818,6 @@ void InRpcClientEnumSecure(RPC_CLIENT_ENUM_SECURE *e, PACK *p); void OutRpcClientEnumSecure(PACK *p, RPC_CLIENT_ENUM_SECURE *e); void InRpcUseSecure(RPC_USE_SECURE *u, PACK *p); void OutRpcUseSecure(PACK *p, RPC_USE_SECURE *u); -void InRpcEnumObjectInSecure(RPC_ENUM_OBJECT_IN_SECURE *e, PACK *p); void OutRpcEnumObjectInSecure(PACK *p, RPC_ENUM_OBJECT_IN_SECURE *e); void InRpcCreateVLan(RPC_CLIENT_CREATE_VLAN *v, PACK *p); void OutRpcCreateVLan(PACK *p, RPC_CLIENT_CREATE_VLAN *v); @@ -858,8 +847,6 @@ void InRpcPolicy(POLICY *o, PACK *p); void OutRpcPolicy(PACK *p, POLICY *o); void InRpcClientGetConnectionStatus(RPC_CLIENT_GET_CONNECTION_STATUS *s, PACK *p); void OutRpcClientGetConnectionStatus(PACK *p, RPC_CLIENT_GET_CONNECTION_STATUS *c); -void InRpcClientNotify(RPC_CLIENT_NOTIFY *n, PACK *p); -void OutRpcClientNotify(PACK *p, RPC_CLIENT_NOTIFY *n); void InRpcClientConfig(CLIENT_CONFIG *c, PACK *p); void OutRpcClientConfig(PACK *p, CLIENT_CONFIG *c); void InRpcClientPasswordSetting(RPC_CLIENT_PASSWORD_SETTING *a, PACK *p);