/* libzzinet
*
* This program is distributed under the GNU General Public License, version 2.
* A copy of this license is included with this source.
*
* Copyright 2000-2006, Toni Thomsson <toni@tonjac.org>
*/
#ifndef zz_http_session_h
#define zz_http_session_h
#include <config.h>
#include <ne_ssl.h>
#include <ne_session.h>
#include <ne_request.h>
#include <ne_basic.h>
#include <ne_uri.h>
#include <ne_socket.h>
#include <ne_utils.h>
#include <zz_log.h>
typedef CzzString (*ZZ_PROMPT_FOR_PASSWORD)(void);
/**
HTTP session
Toni Thomsson, toni@tonjac.org
*/
class ZZ_API CzzHttpSession
{
public:
//* Construction
CzzHttpSession( const char* proto, const char* host, int port,
const char* proxy, int proxy_port );
virtual ~CzzHttpSession();
CzzString getHostName( void );
ne_session* getHandle( void );
virtual int onValidateCertificate( int fs, const ne_ssl_certificate *cert );
void setClientCertificate( const char* path, ZZ_PROMPT_FOR_PASSWORD pwdfn );
static CzzString promptForPassword( void );
protected:
static int validate( void *userdata, int fs, const ne_ssl_certificate *cert );
private:
ne_session* m_Handle;
CzzString m_HostName;
CzzLog m_Log;
};
#endif // zz_http_session_h