variables
{
dword listeningSocket;
char data[1500];
}
on start
{
DtlsListen(ip_Endpoint(0.0.0.0:4433));
}
// create new socket to listen for next connection
void DtlsListen(ip_Endpoint endpoint)
{
listeningSocket = UdpOpen(endpoint);
listeningSocket = tlsOpen(listeningSocket);
tlsAuthenticateAsServer(listeningSocket, "Server1");
}
void OnDtlsServerConnect(dword socket, ip_Endpoint endpoint, long result)
{
if(result == 0)
{
DtlsListen(ip_Endpoint(0.0.0.0:4433));
}
}
void OnTlsHandshakeComplete(dword socket, long result)
{
if(result != 0)
{
write("%BASE_FILE_NAME%: Tls Handshake failed on socket %d. Socket gets closed. Result: %d", socket, result);
udpClose(socket);
}
else
{
write("%BASE_FILE_NAME%: Tls Handshake complete on socket %d. Result: %d", socket, result);
udpReceiveFrom(socket, data, elcount(data));
}
}
OnUdpReceiveFrom(dword socket, long result, ip_Endpoint endpoint, char buffer[], dword size)
{
write("%BASE_FILE_NAME%: received: %s", buffer);
strncpy(data, buffer, elcount(data));
strncat(data, " reflected", elcount(data));
UdpSend(socket, data, strlen(data)); // reflect data
tlsClose(socket, 1);
}