Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/SoftEtherVPN/SoftEtherVPN_Stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Cedar/Protocol.c')
-rw-r--r--src/Cedar/Protocol.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/Cedar/Protocol.c b/src/Cedar/Protocol.c
index 2fc3c22b..def224bb 100644
--- a/src/Cedar/Protocol.c
+++ b/src/Cedar/Protocol.c
@@ -3736,6 +3736,7 @@ bool ServerAccept(CONNECTION *c)
s->NormalClient = true;
IPToStr(s->ClientIP, sizeof(s->ClientIP), &c->ClientIp);
+ s->ClientPort = c->ClientPort;
if (c->FirstSock->IsRUDPSocket)
{
@@ -7783,7 +7784,10 @@ SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
if (c == NULL || proxy_host_name == NULL || proxy_port == 0 || server_host_name == NULL
|| server_port == 0)
{
- c->Err = ERR_PROXY_CONNECT_FAILED;
+ if (c != NULL)
+ {
+ c->Err = ERR_PROXY_CONNECT_FAILED;
+ }
return NULL;
}
@@ -7977,7 +7981,10 @@ SOCK *ProxyConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
if (c == NULL || proxy_host_name == NULL || proxy_port == 0 || server_host_name == NULL ||
server_port == 0)
{
- c->Err = ERR_PROXY_CONNECT_FAILED;
+ if (c != NULL)
+ {
+ c->Err = ERR_PROXY_CONNECT_FAILED;
+ }
return NULL;
}
if (username != NULL && password != NULL &&
@@ -8977,7 +8984,7 @@ UINT WsRecvSync(WS *w, void *data, UINT size)
return sz;
}
r = Recv(w->Sock, w->TmpBuf, sizeof(w->TmpBuf), w->Sock->SecureMode);
- if (r == 0)
+ if (r == 0 || r == SOCK_LATER)
{
break;
}
@@ -9589,9 +9596,9 @@ UINT MvpnDoAccept(CONNECTION *c, WS *w)
StrCpy(ipc_param.HubName, sizeof(ipc_param.HubName), client_hub_name);
StrCpy(ipc_param.UserName, sizeof(ipc_param.UserName), auth_username);
CopyIP(&ipc_param.ClientIp, &w->Sock->RemoteIP);
- ipc_param.ClientPort, w->Sock->RemotePort;
+ ipc_param.ClientPort = w->Sock->RemotePort;
CopyIP(&ipc_param.ServerIp, &w->Sock->LocalIP);
- ipc_param.ServerPort, w->Sock->LocalPort;
+ ipc_param.ServerPort = w->Sock->LocalPort;
StrCpy(ipc_param.ClientHostname, sizeof(ipc_param.ClientHostname), w->Sock->RemoteHostname);
StrCpy(ipc_param.CryptName, sizeof(ipc_param.CryptName), w->Sock->CipherName);
ipc_param.Layer = IPC_LAYER_3; // TODO