Note that there are some explanatory texts on larger screens.

plurals
  1. POHow do I make an SSL socket available between functions?
    text
    copied!<p>This is my class:</p> <pre><code> class SSLIRC : public Bot { public: SSLIRC(void); void sockconnect(char*, int, bool); void sockwrite(char*); std::string sockread(void); bool connected; bool verbose; private: WSADATA wsaData; SOCKET m_socket; sockaddr_in clientService; LPHOSTENT hostEntry; }; </code></pre> <p>and this is my SSLIRC::sockconnect</p> <pre><code>void SSLIRC::sockconnect(char* hName, int portNum, bool debug) { verbose = debug; SSL *sslSocket = 0; SSL_CTX *sslContext = 0; int error = WSAStartup(MAKEWORD(2,0),&amp;wsaData); if (error != NO_ERROR) std::cout &lt;&lt; "Client: Error at WSAStartup().\n"; else std::cout &lt;&lt; "Client: WSAStartup() is OK.\n"; fflush(stdout); // socket int socket = 0; // struct for socket struct sockaddr_in host_addr = {0}; //information about host struct hostent *host = {0}; // name of host host = gethostbyname(hName); if (host == NULL) { printf("Unknown Host %s\n", hName); exit (0); } // create socket // for SSL need SOCK_STREAM socket socket = ::socket(PF_INET, SOCK_STREAM, 0); if (socket &lt; 0) { printf("Socket Error\n"); exit (0); } // create host struct host_addr.sin_family = AF_INET; // set IP addres host_addr.sin_addr = *((struct in_addr *)host-&gt;h_addr); // set HTTPS port host_addr.sin_port = htons(portNum); // connet if (connect(socket, (struct sockaddr *)&amp;host_addr, sizeof(host_addr)) == -1) { closesocket(socket); printf("Connection Error\n"); exit (0); } sslContext = SSL_CTX_new(SSLv23_client_method()); sslSocket = SSL_new(sslContext); if(!sslSocket) { closesocket(socket); printf("SSL creation error\n"); exit(0); } // join sslSocket and socket SSL_set_fd(sslSocket, socket); // conect sslSocket error = SSL_connect(sslSocket); if(!error) { closesocket(socket); printf("SSL connect error = %d\n", error); error = SSL_get_error(sslSocket, error); printf("SSL error: %d\n", error); exit (0); } printf("SSL handshake established.\n"); } </code></pre> <p>How do I declare sslSocket so it's available in my class for the other functions to use?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload