1
0
mirror of https://github.com/stefanocasazza/ULib.git synced 2025-09-28 19:05:55 +08:00
ULib/tests/ulib/test_ssl_client.cpp
stefanocasazza b6ee1e71fd fix
2017-07-25 12:41:44 +02:00

45 lines
1.1 KiB
C++

// test_ssl_client.cpp
#include <ulib/net/client/client.h>
static const char* getArg(const char* param) { return (param && *param ? param : 0); }
int
U_EXPORT main (int argc, char* argv[], char* env[])
{
U_ULIB_INIT(argv);
U_TRACE(5,"main(%d)",argc)
UString host(argv[8]);
UClient<USSLSocket> x(0);
// Check server certificates agains our known trusted certificate
if (((USSLSocket*)x.socket)->setContext(0, getArg(argv[1]), getArg(argv[2]), getArg(argv[3]), getArg(argv[4]), getArg(argv[5]), u_atoi(argv[6])) &&
((USSLSocket*)x.socket)->connectServer(host, 8080))
{
U_DUMP("getPeerCertificate() = %p", ((USSLSocket*)x.socket)->getPeerCertificate())
const char* str = argv[7];
int size = strlen(str);
for (int i = 0; i < 2; ++i)
{
if (((USSLSocket*)x.socket)->send(str, size) == size)
{
cout << str << '\n';
char buffer[1024];
if (((USSLSocket*)x.socket)->recv(buffer, size) == size)
{
cout.write(buffer, size);
cout << '\n';
}
}
}
}
}