Lines Matching refs:se

144 void OvsLog(OPENVPN_SERVER *s, OPENVPN_SESSION *se, OPENVPN_CHANNEL *c, char *name, ...)  in OvsLog()  argument
154 if (se == NULL) in OvsLog()
163 se->Id, &se->ClientIp, se->ClientPort, &se->ServerIp, se->ServerPort); in OvsLog()
168 se->Id, &se->ClientIp, se->ClientPort, &se->ServerIp, se->ServerPort, in OvsLog()
184 OPENVPN_SESSION *se; in OvsProceccRecvPacket() local
194 se = OvsFindOrCreateSession(s, &p->DstIP, p->DestPort, &p->SrcIP, p->SrcPort, protocol); in OvsProceccRecvPacket()
195 if (se == NULL) in OvsProceccRecvPacket()
222 if (se->Channels[recv_packet->KeyId] != NULL) in OvsProceccRecvPacket()
225 OvsFreeChannel(se->Channels[recv_packet->KeyId]); in OvsProceccRecvPacket()
226 se->Channels[recv_packet->KeyId] = NULL; in OvsProceccRecvPacket()
230 c = OvsNewChannel(se, recv_packet->KeyId); in OvsProceccRecvPacket()
231 if (se->ClientSessionId == 0) in OvsProceccRecvPacket()
233 se->ClientSessionId = recv_packet->MySessionId; in OvsProceccRecvPacket()
235 se->Channels[recv_packet->KeyId] = c; in OvsProceccRecvPacket()
254 if (se->Channels[recv_packet->KeyId] != NULL) in OvsProceccRecvPacket()
256 c = se->Channels[recv_packet->KeyId]; in OvsProceccRecvPacket()
278 OvsProcessRecvControlPacket(s, se, c, recv_packet); in OvsProceccRecvPacket()
286 if (se->Channels[recv_packet->KeyId] != NULL) in OvsProceccRecvPacket()
288 OPENVPN_CHANNEL *c = se->Channels[recv_packet->KeyId]; in OvsProceccRecvPacket()
313 se->LastCommTick = s->Now; in OvsProceccRecvPacket()
346 if (se->Ipc != NULL) in OvsProceccRecvPacket()
348 switch (se->Mode) in OvsProceccRecvPacket()
351 IPCSendL2(se->Ipc, data, size); in OvsProceccRecvPacket()
355 IPCSendIPv4(se->Ipc, data, size); in OvsProceccRecvPacket()
417 void OvsProcessRecvControlPacket(OPENVPN_SERVER *s, OPENVPN_SESSION *se, OPENVPN_CHANNEL *c, OPENVP… in OvsProcessRecvControlPacket() argument
422 if (s == NULL || se == NULL || c == NULL || p == NULL) in OvsProcessRecvControlPacket()
471 if (se->Established) in OvsProcessRecvControlPacket()
508 OvsSetupSessionParameters(s, se, c, &data); in OvsProcessRecvControlPacket()
528 OvsLog(s, se, c, "LO_CHANNEL_ESTABLISHED_NEWKEY"); in OvsProcessRecvControlPacket()
550 OvsBeginIPCAsyncConnectionIfEmpty(s, se, c); in OvsProcessRecvControlPacket()
574 WriteFifo(send_fifo, se->PushReplyStr, StrLen(se->PushReplyStr)); in OvsProcessRecvControlPacket()
583 UINT OvsCalcTcpMss(OPENVPN_SERVER *s, OPENVPN_SESSION *se, OPENVPN_CHANNEL *c) in OvsCalcTcpMss() argument
587 if (s == NULL || se == NULL || c == NULL) in OvsCalcTcpMss()
597 if (se->Protocol == OPENVPN_PROTOCOL_TCP) in OvsCalcTcpMss()
604 if (IsIP4(&se->ClientIp)) in OvsCalcTcpMss()
634 if (se->Mode == OPENVPN_MODE_L2) in OvsCalcTcpMss()
650 void OvsBeginIPCAsyncConnectionIfEmpty(OPENVPN_SERVER *s, OPENVPN_SESSION *se, OPENVPN_CHANNEL *c) in OvsBeginIPCAsyncConnectionIfEmpty() argument
653 if (s == NULL || se == NULL || c == NULL) in OvsBeginIPCAsyncConnectionIfEmpty()
658 if (IsIPCConnected(se->Ipc) == false) in OvsBeginIPCAsyncConnectionIfEmpty()
660 FreeIPC(se->Ipc); in OvsBeginIPCAsyncConnectionIfEmpty()
662 se->Ipc = NULL; in OvsBeginIPCAsyncConnectionIfEmpty()
665 if (se->IpcAsync == NULL) in OvsBeginIPCAsyncConnectionIfEmpty()
679 …StrCpy(p.Postfix, sizeof(p.Postfix), (se->Mode == OPENVPN_MODE_L3 ? OPENVPN_IPC_POSTFIX_L3 : OPENV… in OvsBeginIPCAsyncConnectionIfEmpty()
685 Copy(&p.ClientIp, &se->ClientIp, sizeof(IP)); in OvsBeginIPCAsyncConnectionIfEmpty()
686 p.ClientPort = se->ClientPort; in OvsBeginIPCAsyncConnectionIfEmpty()
688 Copy(&p.ServerIp, &se->ServerIp, sizeof(IP)); in OvsBeginIPCAsyncConnectionIfEmpty()
689 p.ServerPort = se->ServerPort; in OvsBeginIPCAsyncConnectionIfEmpty()
696 if (se->Mode == OPENVPN_MODE_L3) in OvsBeginIPCAsyncConnectionIfEmpty()
718 p.Layer = (se->Mode == OPENVPN_MODE_L2) ? IPC_LAYER_2 : IPC_LAYER_3; in OvsBeginIPCAsyncConnectionIfEmpty()
721 p.Mss = OvsCalcTcpMss(s, se, c); in OvsBeginIPCAsyncConnectionIfEmpty()
725 se->IpcAsync = NewIPCAsync(s->Cedar, &p, s->SockEvent); in OvsBeginIPCAsyncConnectionIfEmpty()
768 void OvsSetupSessionParameters(OPENVPN_SERVER *s, OPENVPN_SESSION *se, OPENVPN_CHANNEL *c, OPENVPN_… in OvsSetupSessionParameters() argument
774 if (s == NULL || se == NULL || c == NULL || data == NULL) in OvsSetupSessionParameters()
784 OvsLog(s, se, c, "LO_OPTION_STR_RECV", data->OptionString); in OvsSetupSessionParameters()
790 OvsLog(s, se, c, "LO_CLIENT_CERT", c->ClientCert.X->subject_name->CommonName); in OvsSetupSessionParameters()
794 OvsLog(s, se, c, "LO_CLIENT_CERT", "(unknown CN)"); in OvsSetupSessionParameters()
799 OvsLog(s, se, c, "LO_CLIENT_NO_CERT"); in OvsSetupSessionParameters()
803 OvsLog(s, se, c, "LO_CLIENT_UNVERIFIED_CERT", c->ClientCert.PreverifyErrMessage); in OvsSetupSessionParameters()
815 if (se->Mode == OPENVPN_MODE_UNKNOWN) in OvsSetupSessionParameters()
822 se->Mode = OPENVPN_MODE_L3; in OvsSetupSessionParameters()
827 se->Mode = OPENVPN_MODE_L2; in OvsSetupSessionParameters()
836 se->LinkMtu = mtu; in OvsSetupSessionParameters()
844 se->TunMtu = mtu; in OvsSetupSessionParameters()
848 if (se->Protocol == OPENVPN_PROTOCOL_TCP) in OvsSetupSessionParameters()
852 if (IsIP6(&se->ClientIp) == false) in OvsSetupSessionParameters()
864 if (IsIP6(&se->ClientIp) == false) in OvsSetupSessionParameters()
901 WriteBufInt64(b, se->ClientSessionId); in OvsSetupSessionParameters()
902 WriteBufInt64(b, se->ServerSessionId); in OvsSetupSessionParameters()
919 (se->Mode == OPENVPN_MODE_L2 ? "tap" : "tun"), in OvsSetupSessionParameters()
920 se->LinkMtu, in OvsSetupSessionParameters()
921 se->TunMtu, in OvsSetupSessionParameters()
926 OvsLog(s, se, c, "LO_OPTION_STR_SEND", c->ServerKey.OptionString); in OvsSetupSessionParameters()
1400 OPENVPN_CHANNEL *OvsNewChannel(OPENVPN_SESSION *se, UCHAR key_id) in OvsNewChannel() argument
1404 if (se == NULL) in OvsNewChannel()
1411 c->Session = se; in OvsNewChannel()
1412 c->Server = se->Server; in OvsNewChannel()
1426 se->LastCreatedChannelIndex = key_id; in OvsNewChannel()
1453 OPENVPN_SESSION *se = LIST_DATA(s->SessionList, i); in OvsNewServerSessionId() local
1454 if (se->ServerSessionId == id) in OvsNewServerSessionId()
1717 OPENVPN_SESSION *se; in OvsFindOrCreateSession() local
1724 se = OvsSearchSession(s, server_ip, server_port, client_ip, client_port, protocol); in OvsFindOrCreateSession()
1725 if (se == NULL) in OvsFindOrCreateSession()
1727 se = OvsNewSession(s, server_ip, server_port, client_ip, client_port, protocol); in OvsFindOrCreateSession()
1729 if (se != NULL) in OvsFindOrCreateSession()
1731 Insert(s->SessionList, se); in OvsFindOrCreateSession()
1735 return se; in OvsFindOrCreateSession()
1751 OPENVPN_SESSION *se = LIST_DATA(s->SessionList, i); in OvsGetNumSessionByClientIp() local
1753 if (CmpIpAddr(&se->ClientIp, ip) == 0) in OvsGetNumSessionByClientIp()
1765 OPENVPN_SESSION *se; in OvsNewSession() local
1787 se = ZeroMalloc(sizeof(OPENVPN_SESSION)); in OvsNewSession()
1789 se->Server = s; in OvsNewSession()
1791 Copy(&se->ClientIp, client_ip, sizeof(IP)); in OvsNewSession()
1792 se->ClientPort = client_port; in OvsNewSession()
1794 Copy(&se->ServerIp, server_ip, sizeof(IP)); in OvsNewSession()
1795 se->ServerPort = server_port; in OvsNewSession()
1797 se->LastCommTick = s->Now; in OvsNewSession()
1799 se->Protocol = protocol; in OvsNewSession()
1801 se->ServerSessionId = OvsNewServerSessionId(se->Server); in OvsNewSession()
1803 se->CreatedTick = s->Now; in OvsNewSession()
1805 se->Id = s->NextSessionId; in OvsNewSession()
1815 return se; in OvsNewSession()
1819 void OvsFreeSession(OPENVPN_SESSION *se) in OvsFreeSession() argument
1823 if (se == NULL) in OvsFreeSession()
1829 if (se->Ipc != NULL) in OvsFreeSession()
1831 if (se->Mode == OPENVPN_MODE_L3) in OvsFreeSession()
1833 if (se->IpcAsync != NULL) in OvsFreeSession()
1837 UINTToIP(&dhcp_ip, se->IpcAsync->L3ClientAddressOption.ServerAddress); in OvsFreeSession()
1839 IPCDhcpFreeIP(se->Ipc, &dhcp_ip); in OvsFreeSession()
1840 IPCProcessL3Events(se->Ipc); in OvsFreeSession()
1848 OPENVPN_CHANNEL *c = se->Channels[i]; in OvsFreeSession()
1857 if (se->Ipc != NULL) in OvsFreeSession()
1859 FreeIPC(se->Ipc); in OvsFreeSession()
1862 if (se->IpcAsync != NULL) in OvsFreeSession()
1864 FreeIPCAsync(se->IpcAsync); in OvsFreeSession()
1867 Free(se); in OvsFreeSession()
1873 OPENVPN_SESSION *se; in OvsSearchSession() local
1887 se = Search(s->SessionList, &t); in OvsSearchSession()
1889 return se; in OvsSearchSession()
1908 OPENVPN_SESSION *se = LIST_DATA(s->SessionList, i); in OvsRecvPacket() local
1910 if (se->Ipc != NULL) in OvsRecvPacket()
1912 if (se->Mode == OPENVPN_MODE_L3) in OvsRecvPacket()
1915 IPCFlushArpTableEx(se->Ipc, s->Now); in OvsRecvPacket()
1933 OPENVPN_SESSION *se = LIST_DATA(s->SessionList, i); in OvsRecvPacket() local
1936 if (se->Ipc != NULL) in OvsRecvPacket()
1938 if (se->Mode == OPENVPN_MODE_L3) in OvsRecvPacket()
1940 IPCProcessL3Events(se->Ipc); in OvsRecvPacket()
1946 OPENVPN_CHANNEL *c = se->Channels[j]; in OvsRecvPacket()
1954 UINT next_channel_id = se->LastCreatedChannelIndex + 1; in OvsRecvPacket()
1959 if (se->Channels[next_channel_id] != NULL) in OvsRecvPacket()
1962 OvsFreeChannel(se->Channels[next_channel_id]); in OvsRecvPacket()
1963 se->Channels[next_channel_id] = NULL; in OvsRecvPacket()
1967 c2 = OvsNewChannel(se, (UCHAR)next_channel_id); in OvsRecvPacket()
1969 se->Channels[next_channel_id] = c2; in OvsRecvPacket()
1971 OvsLog(s, se, c, "LO_INITIATE_REKEY"); in OvsRecvPacket()
1986 if (se->IpcAsync != NULL) in OvsRecvPacket()
1988 if (se->IpcAsync->Done) in OvsRecvPacket()
1990 if (se->IpcAsync->Ipc != NULL) in OvsRecvPacket()
1997 OvsLog(s, se, c, "LO_CHANNEL_ESTABLISHED"); in OvsRecvPacket()
2005 if (se->Mode == OPENVPN_MODE_L3) in OvsRecvPacket()
2009 DHCP_OPTION_LIST *cao = &se->IpcAsync->L3ClientAddressOption; in OvsRecvPacket()
2159 OvsLog(s, se, c, "LP_SET_IPV4_PARAM", in OvsRecvPacket()
2166 OvsLog(s, se, c, "LO_PUSH_REPLY", option_str); in OvsRecvPacket()
2168 StrCpy(se->PushReplyStr, sizeof(se->PushReplyStr), option_str); in OvsRecvPacket()
2170 se->Ipc = se->IpcAsync->Ipc; in OvsRecvPacket()
2171 se->IpcAsync->Ipc = NULL; in OvsRecvPacket()
2176 IPCSetSockEventWhenRecvL2Packet(se->Ipc, s->SockEvent); in OvsRecvPacket()
2181 se->Established = true; in OvsRecvPacket()
2182 se->LastCommTick = Tick64(); in OvsRecvPacket()
2188 if (se->IpcAsync->DhcpAllocFailed) in OvsRecvPacket()
2190 OvsLog(s, se, c, "LP_DHCP_REQUEST_NG"); in OvsRecvPacket()
2195 OvsLog(s, se, c, "LO_CHANNEL_FAILED"); in OvsRecvPacket()
2206 FreeIPCAsync(se->IpcAsync); in OvsRecvPacket()
2207 se->IpcAsync = NULL; in OvsRecvPacket()
2215 if (IsIPCConnected(se->Ipc) == false) in OvsRecvPacket()
2221 OvsLog(s, se, c, "LO_CHANNEL_DISCONNECTED_BY_HUB"); in OvsRecvPacket()
2229 se->Established = false; in OvsRecvPacket()
2230 se->LastCommTick = s->Now; in OvsRecvPacket()
2275 p = OvsNewControlPacket(cp->OpCode, j, se->ServerSessionId, num, acks, in OvsRecvPacket()
2276 se->ClientSessionId, cp->PacketId, cp->DataSize, cp->Data); in OvsRecvPacket()
2278 OvsSendPacketNow(s, se, p); in OvsRecvPacket()
2294 OPENVPN_PACKET *p = OvsNewControlPacket(OPENVPN_P_ACK_V1, j, se->ServerSessionId, in OvsRecvPacket()
2295 num, acks, se->ClientSessionId, 0, 0, NULL); in OvsRecvPacket()
2297 OvsSendPacketNow(s, se, p); in OvsRecvPacket()
2304 if (se->Ipc != NULL) in OvsRecvPacket()
2306 if (se->Mode == OPENVPN_MODE_L3) in OvsRecvPacket()
2308 if (se->IpcAsync != NULL) in OvsRecvPacket()
2311 if (se->IpcAsync->L3NextDhcpRenewTick <= s->Now) in OvsRecvPacket()
2315 se->IpcAsync->L3NextDhcpRenewTick = s->Now + se->IpcAsync->L3DhcpRenewInterval; in OvsRecvPacket()
2317 UINTToIP(&ip, se->IpcAsync->L3ClientAddressOption.ServerAddress); in OvsRecvPacket()
2319 IPCDhcpRenewIP(se->Ipc, &ip); in OvsRecvPacket()
2323 IPCProcessL3Events(se->Ipc); in OvsRecvPacket()
2326 IPCProcessInterrupts(se->Ipc); in OvsRecvPacket()
2332 OPENVPN_CHANNEL *c = se->Channels[j]; in OvsRecvPacket()
2347 if (se->Established == false) in OvsRecvPacket()
2353 if (se->Mode == OPENVPN_MODE_L2) in OvsRecvPacket()
2358 BLOCK *b = IPCRecvL2(se->Ipc); in OvsRecvPacket()
2377 BLOCK *b = IPCRecvIPv4(se->Ipc); in OvsRecvPacket()
2395 if ((se->NextPingSendTick == 0) || (se->NextPingSendTick <= s->Now)) in OvsRecvPacket()
2397 se->NextPingSendTick = s->Now + (UINT64)(OPENVPN_PING_SEND_INTERVAL); in OvsRecvPacket()
2403 AddInterrupt(s->Interrupt, se->NextPingSendTick); in OvsRecvPacket()
2407 …if ((se->Established == false) && (s->Now >= (se->CreatedTick + (UINT64)OPENVPN_NEW_SESSION_DEADLI… in OvsRecvPacket()
2412 if (se->Established && (s->Now >= (se->LastCommTick + (UINT64)OPENVPN_RECV_TIMEOUT))) in OvsRecvPacket()
2424 Add(delete_session_list, se); in OvsRecvPacket()
2434 OPENVPN_SESSION *se = LIST_DATA(delete_session_list, i); in OvsRecvPacket() local
2436 Debug("Deleting Session %p\n", se); in OvsRecvPacket()
2439 OvsFreeSession(se); in OvsRecvPacket()
2443 Delete(s->SessionList, se); in OvsRecvPacket()
2451 void OvsSendPacketNow(OPENVPN_SERVER *s, OPENVPN_SESSION *se, OPENVPN_PACKET *p) in OvsSendPacketNow() argument
2456 if (s == NULL || se == NULL || p == NULL) in OvsSendPacketNow()
2474 OvsSendPacketRawNow(s, se, b->Buf, b->Size); in OvsSendPacketNow()
2478 void OvsSendPacketRawNow(OPENVPN_SERVER *s, OPENVPN_SESSION *se, void *data, UINT size) in OvsSendPacketRawNow() argument
2483 if (s == NULL || se == NULL || data == NULL || size == 0) in OvsSendPacketRawNow()
2489 u = NewUdpPacket(&se->ServerIp, se->ServerPort, &se->ClientIp, se->ClientPort, in OvsSendPacketRawNow()
2657 OPENVPN_SESSION *se = LIST_DATA(s->SessionList, i); in FreeOpenVpnServer() local
2659 OvsFreeSession(se); in FreeOpenVpnServer()
2814 SOCK_EVENT *se; in OvsPerformTcpServer() local
2832 se = NewSockEvent(); in OvsPerformTcpServer()
2834 JoinSockToSockEvent(sock, se); in OvsPerformTcpServer()
2842 s = NewOpenVpnServer(cedar, im, se); in OvsPerformTcpServer()
3000 OPENVPN_SESSION *se = LIST_DATA(s->SessionList, i); in OvsPerformTcpServer() local
3002 if (se->Established) in OvsPerformTcpServer()
3025 WaitSockEvent(se, next_interval); in OvsPerformTcpServer()
3038 ReleaseSockEvent(se); in OvsPerformTcpServer()