You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.2 KiB

#include "UDPTCPNetwork.h"
WebServerClient::WebServerClient () {
tcp = NULL;
ssl = NULL;
ssl_key = "";
ssl_cert = "";
};
WebServerClient::~WebServerClient () {
if (ssl) delete ssl;
ssl = NULL;
if (tcp) delete tcp;
tcp = NULL;
};
/// @brief
/// @param socket
/// @param _ssl_key
/// @param _ssl_cert
/// @return
int WebServerClient::Accept (TCP *socket, std::string _ssl_key, std::string _ssl_cert) {
if (ssl) delete ssl;
ssl = NULL;
if (tcp) delete tcp;
tcp = NULL;
tcp = socket;
ssl_key = _ssl_key;
ssl_cert = _ssl_cert;
ssl = new SSLSocket;
ssl->SetCertificat(ssl_cert, ssl_key);
ssl->Accept(tcp->GetSocket(),200);
return 1;
};
/// @brief
/// @param socket
/// @return
int WebServerClient::Accept (TCP *socket) {
if (ssl) delete ssl;
ssl = NULL;
if (tcp) delete tcp;
tcp = NULL;
tcp = socket;
return 1;
};
int WebServerClient::Loop () {
int len;
//
// read data
if (ssl) {
len = ssl->Read(buffer, WEB_READ_BUFFER_SIZE);
}
else {
len = tcp->ReadTimeout(buffer, WEB_READ_BUFFER_SIZE, 20);
}
if (len < 0) return 0;
if (len > 0) printf ("%s\n", buffer);
return 0;
};