diff options
Diffstat (limited to 'yamn/proto')
-rw-r--r-- | yamn/proto/pop3/pop3comm.cpp | 2 | ||||
-rw-r--r-- | yamn/proto/pop3/pop3opt.cpp | 31 | ||||
-rw-r--r-- | yamn/proto/ssl.cpp | 344 | ||||
-rw-r--r-- | yamn/proto/ssl.h | 61 |
4 files changed, 24 insertions, 414 deletions
diff --git a/yamn/proto/pop3/pop3comm.cpp b/yamn/proto/pop3/pop3comm.cpp index d80ab20..44cbfcc 100644 --- a/yamn/proto/pop3/pop3comm.cpp +++ b/yamn/proto/pop3/pop3comm.cpp @@ -341,7 +341,7 @@ int RegisterPOP3Plugin(WPARAM,LPARAM) }
/*//this doesn't work. the function doesn't know which contact to check
- //if((Finder->Flags & YAMN_ACC_ENA) && (Finder->NewMailN.Flags & YAMN_ACC_CONT) && DBGetContactSettingByte(NULL, YAMN_DBMODULE, YAMN_SHOWMAINMENU, 0))
+ //if((Finder->Flags & YAMN_ACC_ENA) && (Finder->NewMailN.Flags & YAMN_ACC_CONT) && DBGetContactSettingByte(NULL, YAMN_DBMODULE, YAMN_SHOWMAINMENU, 1))
//{
// mi.cbSize = sizeof(mi);
// mi.position = 0xb0000000;
diff --git a/yamn/proto/pop3/pop3opt.cpp b/yamn/proto/pop3/pop3opt.cpp index 004d2aa..ec748ac 100644 --- a/yamn/proto/pop3/pop3opt.cpp +++ b/yamn/proto/pop3/pop3opt.cpp @@ -27,7 +27,6 @@ #include "../../main.h"
#include "pop3comm.h"
#include "pop3opt.h"
-#include "uxtheme.h"
//- imported ---------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
@@ -88,8 +87,8 @@ INT_PTR CALLBACK DlgProcYAMNOpt(HWND hDlg,UINT msg,WPARAM wParam,LPARAM lParam) CheckDlgButton(hDlg,IDC_LONGDATE,(optDateTime&SHOWDATELONG) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_SMARTDATE,(optDateTime&SHOWDATENOTODAY) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_NOSECONDS,(optDateTime&SHOWDATENOSECONDS) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hDlg,IDC_MAINMENU,DBGetContactSettingByte(NULL, YAMN_DBMODULE, YAMN_SHOWMAINMENU, 0));
- CheckDlgButton(hDlg,IDC_YAMNASPROTO,DBGetContactSettingByte(NULL, YAMN_DBMODULE, YAMN_SHOWASPROTO, 0));
+ CheckDlgButton(hDlg,IDC_MAINMENU,DBGetContactSettingByte(NULL, YAMN_DBMODULE, YAMN_SHOWMAINMENU, 1));
+ CheckDlgButton(hDlg,IDC_YAMNASPROTO,DBGetContactSettingByte(NULL, YAMN_DBMODULE, YAMN_SHOWASPROTO, 1));
CheckDlgButton(hDlg,IDC_CLOSEONDELETE,DBGetContactSettingByte(NULL, YAMN_DBMODULE, YAMN_CLOSEDELETE, 0));
break;
@@ -255,7 +254,7 @@ int YAMNOptInitSvc(WPARAM wParam,LPARAM lParam) odp.cbSize=sizeof(odp);
odp.position=0x00000000;
odp.hInstance=YAMNVar.hInst;
- odp.pszGroup=LPGEN("Plugins");
+ odp.pszGroup=LPGEN("Network");
odp.pszTitle=LPGEN("YAMN");
odp.flags=ODPF_BOLDGROUPS;
//insert YAMN options dialog
@@ -280,7 +279,7 @@ int YAMNOptInitSvc(WPARAM wParam,LPARAM lParam) if( ServiceExists(MS_POPUP_ADDPOPUPEX) )
{
- odp.pszGroup=Translate("PopUps");
+ odp.pszGroup=LPGEN("PopUps");
odp.pszTab=LPGEN("YAMN");
odp.pszTemplate = MAKEINTRESOURCEA(IDD_POP3ACCOUNTPOPUP);
odp.pfnDlgProc = DlgProcPOP3AccPopup;
@@ -565,7 +564,7 @@ BOOL DlgShowAccount(HWND hDlg,WPARAM wParam,LPARAM lParam) DlgSetItemText(hDlg,(WPARAM)IDC_EDITAPPPARAM,(LPARAM)NULL);
DlgSetItemText(hDlg,(WPARAM)IDC_STTIMELEFT,(LPARAM)NULL);
SetDlgItemInt(hDlg,IDC_EDITPORT,110,FALSE);
- SetDlgItemInt(hDlg,IDC_EDITINTERVAL,10,FALSE);
+ SetDlgItemInt(hDlg,IDC_EDITINTERVAL,30,FALSE);
SetDlgItemInt(hDlg,IDC_EDITPOPS,0,FALSE);
SetDlgItemInt(hDlg,IDC_EDITNPOPS,0,FALSE);
SetDlgItemInt(hDlg,IDC_EDITFPOPS,0,FALSE);
@@ -573,7 +572,7 @@ BOOL DlgShowAccount(HWND hDlg,WPARAM wParam,LPARAM lParam) CheckDlgButton(hDlg,IDC_CHECK,BST_CHECKED);
CheckDlgButton(hDlg,IDC_CHECKSND,BST_CHECKED);
CheckDlgButton(hDlg,IDC_CHECKMSG,BST_UNCHECKED);
- CheckDlgButton(hDlg,IDC_CHECKICO,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKICO,BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_CHECKPOP,BST_CHECKED);
CheckDlgButton(hDlg,IDC_CHECKCOL,BST_CHECKED);
CheckDlgButton(hDlg,IDC_CHECKAPP,BST_UNCHECKED);
@@ -602,6 +601,7 @@ BOOL DlgShowAccount(HWND hDlg,WPARAM wParam,LPARAM lParam) CheckDlgButton(hDlg,IDC_CHECKNOTLS,BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_CHECKAPOP,BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_AUTOBODY,BST_UNCHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKCONTACT,BST_CHECKED);
SetDlgItemText(hDlg,IDC_STSTATUS,TranslateT("No account selected"));
}
@@ -686,6 +686,19 @@ BOOL CALLBACK DlgProcPOP3AccStatusOpt(HWND hDlg,UINT msg,WPARAM wParam,LPARAM lP DlgShowAccountStatus(hDlg,(WPARAM)M_SHOWACTUAL,(LPARAM)ActualAccount);
DlgEnableAccountStatus(hDlg,(WPARAM)TRUE,(LPARAM)TRUE);
}
+ else
+ {
+ CheckDlgButton(hDlg,IDC_CHECKST0,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST1,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST2,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST3,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST4,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST5,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST6,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST7,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST8,BST_CHECKED);
+ CheckDlgButton(hDlg,IDC_CHECKST9,BST_CHECKED);
+ }
TranslateDialogDefault(hDlg);
SendMessage(GetParent(hDlg),PSM_UNCHANGED,(WPARAM)hDlg,0);
return TRUE;
@@ -961,7 +974,9 @@ INT_PTR CALLBACK DlgProcPOP3AccOpt(HWND hDlg,UINT msg,WPARAM wParam,LPARAM lPara memset(&OFNStruct,0,sizeof(OPENFILENAME));
OFNStruct.lStructSize=sizeof(OPENFILENAME);
OFNStruct.hwndOwner=hDlg;
- OFNStruct.lpstrFilter=_T("Executables (*.exe;*.bat;*.cmd;*.com)\0*.exe;*.bat;*.cmd;*.com\0All Files (*.*)\0*.*\0");
+ TCHAR filter[MAX_PATH];
+ mir_sntprintf(filter, SIZEOF(filter), _T("%s (*.exe;*.bat;*.cmd;*.com)%c*.exe;*.bat;*.cmd;*.com%c%s (*.*)%c*.*%c"), TranslateT("Executables"), 0, 0, TranslateT("All Files"), 0, 0);
+ OFNStruct.lpstrFilter= filter;
OFNStruct.nFilterIndex=1;
OFNStruct.nMaxFile=MAX_PATH;
OFNStruct.lpstrFile=new TCHAR[MAX_PATH];
diff --git a/yamn/proto/ssl.cpp b/yamn/proto/ssl.cpp deleted file mode 100644 index 2865e91..0000000 --- a/yamn/proto/ssl.cpp +++ /dev/null @@ -1,344 +0,0 @@ -/*
- * This code implements communication based on OpenSSL library
- *
- * (c) majvan 2002,2004
- */
-
-#include "../filter/simple/AggressiveOptimize.h"
-#include <windows.h>
-#include <stdio.h>
-#include <newpluginapi.h> //CallService,UnHookEvent
-#include <m_netlib.h> //socket thorugh proxy functions
-#include <m_langpack.h> //langpack for "connection" and other words
-#include "../debug.h"
-#ifdef SSLTHRUNETLIB
- #include "netlib.h" //yes, we want to use netlib connection
-#endif
-#include "ssl.h"
-
-//--------------------------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------------------------
-
-PFN_SSL_int_void SSL_library_init; // int SSL_library_init()
-PFN_SSL_pvoid_void SSLv23_client_method; // SSL_METHOD *SSLv23_client_method()
-PFN_SSL_pvoid_void TLSv1_client_method; // SSL_METHOD *TLSv1_client_method()
-PFN_SSL_pvoid_pvoid SSL_CTX_new; // SSL_CTX *SSL_CTX_new(SSL_METHOD *method)
-PFN_SSL_void_pvoid SSL_CTX_free; // void SSL_CTX_free(SSL_CTX *ctx);
-PFN_SSL_pvoid_pvoid SSL_new; // SSL *SSL_new(SSL_CTX *ctx)
-PFN_SSL_void_pvoid SSL_free; // void SSL_free(SSL *ssl);
-PFN_SSL_int_pvoid_int SSL_set_fd; // int SSL_set_fd(SSL *ssl, int fd);
-PFN_SSL_int_pvoid SSL_connect; // int SSL_connect(SSL *ssl);
-PFN_SSL_int_pvoid_pvoid_int SSL_read; // int SSL_read(SSL *ssl, void *buffer, int bufsize)
-PFN_SSL_int_pvoid_pvoid_int SSL_write; // int SSL_write(SSL *ssl, void *buffer, int bufsize)
-PFN_SSL_int_pvoid_int SSL_get_error; // int SSL_write(SSL *ssl, int ret)
-
-BOOL SSLLoaded=FALSE;
-HINSTANCE hSSLLibrary=(HINSTANCE)NULL;
-PVOID SSLCtx=NULL;
-PVOID TLSCtx=NULL;
-
-//PVOID CSSLClient::SSLCtx=NULL;
-//BOOL CSSLClient::SSLLoaded=FALSE;
-//HINSTANCE CSSLClient::hSSLLibrary=(HINSTANCE)NULL;
-extern HANDLE hNetlibUser;
-
-void __stdcall SSL_DebugLog( const char *fmt, ... )
-{
- char str[ 4096 ];
- va_list vararg;
-
- va_start( vararg, fmt );
- int tBytes = _vsnprintf( str, sizeof(str)-1, fmt, vararg );
- if ( tBytes == 0 )
- return;
-
- if ( tBytes > 0 )
- str[ tBytes ] = 0;
- else
- str[ sizeof(str)-1 ] = 0;
-
- CallService( MS_NETLIB_LOG, ( WPARAM )hNetlibUser, ( LPARAM )str );
- va_end( vararg );
-}
-
-#define SSLstr "SSL support"
-#define SSLconnstr "SSL connection"
-
-int RegisterSSL()
-{
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<Register SSL support>");
-#endif
- SSL_DebugLog("%s %sing...",SSLstr,"register");
- if(NULL==(hSSLLibrary=LoadLibrary("ssleay32.dll")))
- if(NULL==(hSSLLibrary=LoadLibrary("libssl32.dll"))) //try to load library using the old OpenSSL filename
- {
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<error, status:library not found></Register SSL support>\n");
-#endif
- SSL_DebugLog("%s failed.",SSLstr);
- return 0;
- }
-
- if(NULL!=(SSL_library_init=(PFN_SSL_int_void)GetProcAddress(hSSLLibrary,"SSL_library_init")))
- if(NULL!=(SSLv23_client_method=(PFN_SSL_pvoid_void)GetProcAddress(hSSLLibrary,"SSLv23_client_method")))
- if(NULL!=(SSL_CTX_new=(PFN_SSL_pvoid_pvoid)GetProcAddress(hSSLLibrary,"SSL_CTX_new")))
- if(NULL!=(SSL_CTX_free=(PFN_SSL_void_pvoid)GetProcAddress(hSSLLibrary,"SSL_CTX_free")))
- if(NULL!=(SSL_new=(PFN_SSL_pvoid_pvoid)GetProcAddress(hSSLLibrary,"SSL_new")))
- if(NULL!=(SSL_free=(PFN_SSL_void_pvoid)GetProcAddress(hSSLLibrary,"SSL_free")))
- if(NULL!=(SSL_set_fd=(PFN_SSL_int_pvoid_int)GetProcAddress(hSSLLibrary,"SSL_set_fd")))
- if(NULL!=(SSL_connect=(PFN_SSL_int_pvoid)GetProcAddress(hSSLLibrary,"SSL_connect")))
- if(NULL!=(SSL_read=(PFN_SSL_int_pvoid_pvoid_int)GetProcAddress(hSSLLibrary,"SSL_read")))
- if(NULL!=(SSL_write=(PFN_SSL_int_pvoid_pvoid_int)GetProcAddress(hSSLLibrary,"SSL_write")))
- if(NULL!=(SSL_get_error=(PFN_SSL_int_pvoid_int)GetProcAddress(hSSLLibrary,"SSL_get_error")))
- {
- TLSv1_client_method=(PFN_SSL_pvoid_void)GetProcAddress(hSSLLibrary,"TLSv1_client_method");
- if (TLSv1_client_method) {
- TLSCtx=SSL_CTX_new(TLSv1_client_method()); //TLS1 only used
- } else {
- SSL_DebugLog("TLSv1 not available");
- }
- SSL_library_init();
- SSLCtx=SSL_CTX_new(SSLv23_client_method()); //SSL2,3 & TLS1 used
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"</Register SSL support>\n");
-#endif
- SSLLoaded=TRUE;
- SSL_DebugLog("%s %sed.",SSLstr,"register");
- return 1;
- }
-
- FreeLibrary(hSSLLibrary);
- hSSLLibrary=(HINSTANCE)NULL;
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<error, status:library not compatible></Register SSL support>\n");
-#endif
- SSL_DebugLog("%s failed: %s not compatible",SSLstr,"ssleay32.dll");
- return 0;
-}
-
-//Connects to the server through the sock
-//if not success, exception is throwed
-void CSSLClient::Connect(const char* servername,const int port) throw(DWORD)
-{
- WSADATA wsaData;
-
- NetworkError=SystemError=0;
-
- if(!SSLLoaded)
- throw NetworkError=ESSL_NOTLOADED;
- try
- {
-#ifdef SSLTHRUNETLIB
- NETLIBOPENCONNECTION nloc;
-
- nloc.cbSize=sizeof(NETLIBOPENCONNECTION);
- nloc.szHost=servername;
- nloc.wPort=port;
- nloc.flags=0;
- #ifdef DEBUG_COMM
- DebugLog(CommFile,"<open connection>\n");
- #endif
- if(NULL==(hNLConn=(HANDLE)CallService(MS_NETLIB_OPENCONNECTION,(WPARAM)hNetlibUser,(LPARAM)&nloc)))
- {
- #ifdef DEBUG_COMM
- DebugLog(CommFile,"<error></open connection>\n");
- #endif
- sock=INVALID_SOCKET;
- }
- else
- {
- #ifdef DEBUG_COMM
- DebugLog(CommFile,"</open connection>\n");
- #endif
- sock=CallService(MS_NETLIB_GETSOCKET,(WPARAM)hNLConn,0);
- }
-#endif
-
- if(sock==INVALID_SOCKET)
- {
- if(0!=WSAStartup(MAKEWORD(2,0),&wsaData))
- {
- SystemError=WSAGetLastError();
- throw NetworkError=(DWORD)ESSL_WINSOCKINIT;
- }
- ZeroMemory(&connection,sizeof(struct sockaddr_in));
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<gethostbyname>\n");
-#endif
- if(NULL==(server=gethostbyname(servername)))
- {
- SystemError=WSAGetLastError();
- throw NetworkError=(DWORD)ESSL_GETHOSTBYNAME;
- }
- memmove((char*)&(connection.sin_addr.s_addr),server->h_addr,server->h_length);
- connection.sin_family=AF_INET;
- connection.sin_port=htons((unsigned short int)port); /* integral size mismatch in argument - htons(port)*/
- if(INVALID_SOCKET==(sock=socket(AF_INET,SOCK_STREAM,0)))
- {
- SystemError=WSAGetLastError();
- throw NetworkError=(DWORD)ESSL_CREATESOCKET;
- }
- if(-1==connect(sock,(struct sockaddr*)&connection,sizeof(connection)))
- {
- SystemError=WSAGetLastError();
- throw NetworkError=(DWORD)ESSL_SOCKETCONNECT;
- }
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"</gethostbyname>\n");
-#endif
- }
-
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<connect SSL>\n");
-#endif
- if(NULL==(hConnection=SSL_new(SSLCtx)))
- throw NetworkError=(DWORD)ESSL_CREATESSL;
- if(SSL_set_fd(hConnection,sock)<1)
- throw NetworkError=(DWORD)ESSL_SETSOCKET;
- if(SSL_connect(hConnection)<1)
- throw NetworkError=(DWORD)ESSL_CONNECT;
- ConEstablished=TRUE;
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"</connect>\n");
-#endif
- SSL_DebugLog("%s to %s:%d %s.",SSLconnstr,servername,port,"established");
- return;
- }
- catch(...)
- {
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<error></connect>\n");
-#endif
- SSL_DebugLog("%s to %s:%d %s.",SSLconnstr,servername,port,"failed");
- throw;
- }
-}
-
-void CSSLClient::SSLify() throw(DWORD)
-{
- SSL_DebugLog("Hmm... Trying to start TLS in SSL... This should be a bug.");
-}
-
-//Performs a simple query
-// query- command to send
-void CSSLClient::Send(const char *query) throw(DWORD)
-{
- unsigned int Sent;
-
- if(NULL==query)
- return;
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<send SSL>%s",query);
-#endif
- try
- {
- if(!ConEstablished)
- throw NetworkError=(DWORD)ESSL_SEND;
- SSL_DebugLog("SSL send %s",query);
- Sent=SSL_write(hConnection,(PVOID)query,strlen(query));
- if(Sent!=strlen(query))
- {
- SystemError=SSL_get_error(hConnection,Sent);
- throw NetworkError=(DWORD)ESSL_SEND;
- }
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"</send>\n");
-#endif
- }
- catch(...)
- {
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<error></send>\n");
-#endif
- if (ConEstablished) SSL_DebugLog("SSL send %s","failed");
- throw;
- }
-}
-
-//Reads data from SSL socket
-// buf- buffer where to store max. buflen of received characters
-// if buf is NULL, creates buffer of buflen size
-// buf is NULL by default
-//You need free() returned buffer, which can be allocated in this function
-//if not success, exception is throwed
-char* CSSLClient::Recv(char *buf,int buflen) throw(DWORD)
-{
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<reading>");
-#endif
- try
- {
- if(!ConEstablished)
- throw NetworkError=(DWORD)ESSL_RECV;
- if(buf==NULL)
- buf=(char *)malloc(sizeof(char)*(buflen+1));
- if(buf==NULL)
- throw NetworkError=(DWORD)ESSL_RECVALLOC;
- ZeroMemory(buf,buflen);
- if (hConnection){
- Rcv=SSL_read(hConnection,buf,buflen);
- } else {
- Rcv=0;
- SSL_DebugLog("SSL connection is lost");
- }
- if(Rcv<1)
- {
- SystemError=SSL_get_error(hConnection,Rcv);
- throw NetworkError=(DWORD)ESSL_RECV;
- }
-#ifdef DEBUG_COMM
- *(buf+Rcv)=0; //end the buffer to write it to file
- DebugLog(CommFile,"%s",buf);
- DebugLog(CommFile,"</reading>\n");
-#endif
- SSL_DebugLog("SSL recv %s",buf);
- return(buf);
- }
- catch(...)
- {
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<error></reading>\n");
-#endif
- if (ConEstablished) SSL_DebugLog("SSL recv %s","failed.");
- throw;
- }
-}
-
-//Closes SSL connection
-void CSSLClient::Disconnect()
-{
-#ifdef SSLTHRUNETLIB
- if((HANDLE)NULL!=hNLConn)
- Netlib_CloseHandle(hNLConn);
- else
-#endif
- if(INVALID_SOCKET!=sock)
- closesocket(sock);
-
- if(hConnection!=(HANDLE)NULL)
- SSL_free(hConnection);
- hConnection=(HANDLE)NULL;
- sock=INVALID_SOCKET;
- hNLConn=(HANDLE)NULL;
- if (ConEstablished) SSL_DebugLog("%s %s.",SSLconnstr,"closed");
- ConEstablished=FALSE;
-}
-
-void UnregisterSSL()
-{
- if(SSLLoaded)
- {
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"<Unregister SSL support>");
-#endif
- SSL_CTX_free(SSLCtx);
- if (TLSCtx) SSL_CTX_free(TLSCtx);
- FreeLibrary(hSSLLibrary);
- hSSLLibrary=(HINSTANCE)NULL;
-#ifdef DEBUG_COMM
- DebugLog(CommFile,"</Unregister SSL support>\n");
-#endif
- SSL_DebugLog("%s unregistered.",SSLstr);
- }
-}
diff --git a/yamn/proto/ssl.h b/yamn/proto/ssl.h deleted file mode 100644 index 2a61551..0000000 --- a/yamn/proto/ssl.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef __SSL_H
-#define __SSL_H
-
-#include "netclient.h"
-
-#pragma warning( disable : 4290 )
-#define SSLTHRUNETLIB //performs netlib connection before normal winsock connection
-
-
-typedef int (*PFN_SSL_int_void)(void);
-typedef PVOID (*PFN_SSL_pvoid_void)(void);
-typedef PVOID (*PFN_SSL_pvoid_pvoid)(PVOID);
-typedef void (*PFN_SSL_void_pvoid)(PVOID);
-typedef int (*PFN_SSL_int_pvoid_int)(PVOID, int);
-typedef int (*PFN_SSL_int_pvoid)(PVOID);
-typedef int (*PFN_SSL_int_pvoid_pvoid_int)(PVOID, PVOID, int);
-
-class CSSLClient: public CNetClient
-{
-public:
- CSSLClient(): hConnection(NULL), sock(INVALID_SOCKET), ConEstablished(FALSE) {}
- void Connect(const char* servername,const int port) throw(DWORD);
- void Send(const char *query) throw(DWORD);
- char* Recv(char *buf=NULL,int buflen=65536) throw(DWORD);
- void Disconnect();
- void SSLify()throw(DWORD);
-
- inline BOOL Connected() {return ConEstablished;}
-
- //static BOOL SSLLoaded;
- //static HINSTANCE hSSLLibrary;
- //static PVOID SSLCtx;
-protected:
- HANDLE hConnection;
-#ifdef SSLTHRUNETLIB
- HANDLE hNLConn;
-#endif
-
- int sock;
- struct hostent *server;
- struct sockaddr_in connection;
-
- BOOL ConEstablished;
-};
-
-enum
-{
- ESSL_NOTLOADED=1, //OpenSSL is not loaded
- ESSL_WINSOCKINIT, //WinSock 2.0 init failed
- ESSL_GETHOSTBYNAME, //DNS error
- ESSL_CREATESOCKET, //error creating socket
- ESSL_SOCKETCONNECT, //error connecting with socket
- ESSL_CREATESSL, //error creating SSL session structure
- ESSL_SETSOCKET, //error connect socket with SSL session for bidirect I/O space
- ESSL_CONNECT, //cannot connect to server
- ESSL_SEND, //cannot send data
- ESSL_RECV, //cannot receive data
- ESSL_RECVALLOC, //cannot allocate memory for received data
-};
-
-#endif
|