I have this cpp code that i need to convert to c
can anyone help or give advice on converting cpp to c?
is it possible to convert to c in ms
header:
Code:class CSSLSocket { public: CSSLSocket(); virtual ~CSSLSocket(); bool Init(); bool AttachToSocket(int sSocket); int GetSocket(); bool Accept(); bool Connect(); void Close(); int Read(void *pBuf, int iNum); int Write(const void *pBuf, int iNum); bool m_bConnected; protected: SSL_CTX *m_psslCtx; SSL *m_pSSL; int m_sSocket; };
cpp code:
Code:CSSLSocket::CSSLSocket() { m_psslCtx=NULL; m_pSSL=NULL; SSL_library_init(); m_bConnected=FALSE; } CSSLSocket::~CSSLSocket() { // Cleanup if(m_psslCtx) SSL_CTX_free(m_psslCtx); if(m_pSSL) { SSL_shutdown(m_pSSL); SSL_free(m_pSSL); } m_bConnected=FALSE; } bool CSSLSocket::Init() { m_bConnected=FALSE; // Initialize the context, exit if fails m_psslCtx=SSL_CTX_new(SSLv3_method()); if(!m_psslCtx) return FALSE; // Initialize the object, exit if fails m_pSSL=SSL_new(m_psslCtx); if(!m_pSSL) return FALSE; // Success return TRUE; } bool CSSLSocket::AttachToSocket(int sSocket) { m_bConnected=FALSE; // Fail if not initialized if(!m_psslCtx || !m_pSSL) return FALSE; // Store the socket, and attach it to the ssl object m_sSocket=sSocket; if(!SSL_set_fd(m_pSSL, m_sSocket)) return FALSE; // Success return TRUE; } int CSSLSocket::GetSocket() { return m_sSocket; } bool CSSLSocket::Accept() { m_bConnected=FALSE; // Fail if not initialized if(!m_psslCtx || !m_pSSL) return FALSE; if(SSL_accept(m_pSSL)==1) { m_bConnected=TRUE; return TRUE; } else { m_bConnected=FALSE; return FALSE; } } bool CSSLSocket::Connect() { m_bConnected=FALSE; // Fail if not initialized if(!m_psslCtx || !m_pSSL) return FALSE; if(SSL_connect(m_pSSL)==1) { m_bConnected=TRUE; return TRUE; } else { m_bConnected=FALSE; return FALSE; } } void CSSLSocket::Close() { SSL_shutdown(m_pSSL); m_bConnected=FALSE; } int CSSLSocket::Read(void *pBuf, int iNum) { if(!m_psslCtx || !m_pSSL || !m_bConnected) return 0; return SSL_read(m_pSSL, pBuf, iNum); } int CSSLSocket::Write(const void *pBuf, int iNum) { if(!m_psslCtx || !m_pSSL || !m_bConnected) return 0; return SSL_write(m_pSSL, pBuf, iNum); }





Reply With Quote