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
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;
|
|
};
|
|
|